Skip to content

kernel: Enable support for block device writeback throttling#14797

Merged
rlmenge merged 2 commits into3.0-devfrom
rlmenge/kernel/config_blk_wbt_pr
Oct 29, 2025
Merged

kernel: Enable support for block device writeback throttling#14797
rlmenge merged 2 commits into3.0-devfrom
rlmenge/kernel/config_blk_wbt_pr

Conversation

@rlmenge
Copy link
Contributor

@rlmenge rlmenge commented Oct 3, 2025

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

Performance improvement. This PR enables CONFIG_BLK_WBT (Writeback Throttling) and CONFIG_BLK_WBT_MQ (Writeback Throttling for Multi-Queue Block Layer) in the kernel configuration.

  • CONFIG_BLK_WBT introduces the Writeback Throttling mechanism for block devices. WBT helps prevent excessive IO latency spikes caused by uncontrolled writeback activity, especially on storage devices with limited bandwidth or high latency. By throttling background writeback, WBT ensures smoother and more predictable IO performance, particularly under heavy load or when multiple IO streams are competing for device bandwidth.

  • CONFIG_BLK_WBT_MQ extends WBT support to the multi-queue block subsystem (blk-mq), which is used by modern storage stacks and NVMe devices. Enabling this ensures that WBT's benefits are available for devices managed by blk-mq, providing improved latency control and fairness across all supported block devices.

  • torvalds/linux@87760e5

  • blk-mq subsystem documentation

Change Log
  • Enable support for block device writeback throttling
Does this affect the toolchain?

YES

Associated issues

https://microsoft.visualstudio.com/OS/_workitems/edit/59676754/

Test Methodology
  • Test kernel provided

@rlmenge rlmenge requested review from a team as code owners October 3, 2025 22:05
@microsoft-github-policy-service microsoft-github-policy-service bot added Packaging specs-extended PR to fix SPECS-EXTENDED 3.0-dev PRs Destined for AzureLinux 3.0 labels Oct 3, 2025
@CBL-Mariner-Bot
Copy link
Collaborator

🚨 PR Check Failed - Critical Issues Found

Found 3 critical/error issue(s) that must be fixed.

🔍 Critical Issues Detected:

  1. Missing Patch File (ERROR)
    • Patch file '0001-add-mstflint-kernel-%{mstflintver}.patch' is referenced in the spec but not found in the directory
    • 💡 Fix: Add the missing patch file or update the Patch reference
  2. Missing Patch File (ERROR)
    • Patch file '0001-add-mstflint-kernel-%{mstflintver}.patch' is referenced in the spec but not found in the directory
    • 💡 Fix: Add the missing patch file or update the Patch reference
  3. Missing Patch File (ERROR)
    • Patch file '0001-add-mstflint-kernel-%{mstflintver}.patch' is referenced in the spec but not found in the directory
    • 💡 Fix: Add the missing patch file or update the Patch reference

🤖 AI Analysis Summary:

Brief Analysis: The changes primarily bump the release version and enable additional block device writeback controls while retaining the single patch for mstflint kernel support. Everything appears consistent with our packaging practices.
Critical Issues Found:
• No critical security issues detected; the only patch (“0001-add-mstflint-kernel-4.28.0.patch”) is present and resolves the defined variable.
Recommended Actions:
• Verify that the new CONFIG_BLK_WBT and CONFIG_BLK_WBT_MQ settings have been properly tested for any side effects.
• Double‐check that the release bump does not inadvertently affect dependency matching.
• Confirm that the patch application method via %autosetup (implying %patch usage) meets our best practices.


📋 For detailed analysis and recommendations, check the Azure DevOps pipeline logs.

@rlmenge rlmenge force-pushed the rlmenge/kernel/config_blk_wbt_pr branch from a1e97b4 to da909db Compare October 28, 2025 18:28
Copy link
Contributor Author

@rlmenge rlmenge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have rerun the smoke tests following the rebase
BB: https://dev.azure.com/mariner-org/mariner/_build/results?buildId=966212&view=results

Arm64

*** Smoke Testing Kernel 6.6.112.1-2.azl3 (est. < 1 min) ***
OS Version: NAME="Microsoft Azure Linux"
VERSION="3.0.20251021"
ID=azurelinux
VERSION_ID="3.0"
PRETTY_NAME="Microsoft Azure Linux 3.0"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/azurelinux"
BUG_REPORT_URL="https://aka.ms/azurelinux"
SUPPORT_URL="https://aka.ms/azurelinux"
PASS: Kernel version matches the running kernel version.
PASS: eth0 interface is up.
PASS: iptables service is running.
Boot times:
Startup finished in 1.294s (kernel) + 1.336s (initrd) + 6.370s (userspace) = 9.000s 
graphical.target reached after 6.094s in userspace.
Kernel size:
-rw------- 1 root root 48781824 Oct 28 19:07 /boot/vmlinuz-6.6.112.1-2.azl3
56744	/lib/modules/6.6.112.1-2.azl3
kernel memory:
MemTotal:       32797724 kB
MemFree:        32290336 kB
MemAvailable:   32128356 kB
Total memory:
               total        used        free      shared  buff/cache   available
Mem:           32029         653       31533           0         143       31375
Swap:              0           0           0

x86

*** Smoke Testing Kernel 6.6.112.1-2.azl3 (est. < 1 min) ***
OS Version: NAME="Microsoft Azure Linux"
VERSION="3.0.20251021"
ID=azurelinux
VERSION_ID="3.0"
PRETTY_NAME="Microsoft Azure Linux 3.0"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/azurelinux"
BUG_REPORT_URL="https://aka.ms/azurelinux"
SUPPORT_URL="https://aka.ms/azurelinux"
PASS: Kernel version matches the running kernel version.
PASS: eth0 interface is up.
PASS: iptables service is running.
Boot times:
Startup finished in 3.153s (kernel) + 1.954s (initrd) + 8.462s (userspace) = 13.570s 
graphical.target reached after 8.101s in userspace.
Kernel size:
-rw------- 1 root root 15126528 Oct 28 18:57 /boot/vmlinuz-6.6.112.1-2.azl3
34872	/lib/modules/6.6.112.1-2.azl3
kernel memory:
MemTotal:       65951304 kB
MemFree:        65351896 kB
MemAvailable:   65101828 kB
Total memory:
               total        used        free      shared  buff/cache   available
Mem:           64405         829       63820           0         145       63576
Swap:              0           0           0

@rlmenge rlmenge merged commit 696854a into 3.0-dev Oct 29, 2025
25 of 28 checks passed
@rlmenge rlmenge deleted the rlmenge/kernel/config_blk_wbt_pr branch October 29, 2025 00:41
Kanishk-Bansal pushed a commit to azurelinux-security/azurelinux that referenced this pull request Dec 1, 2025
…ft#14797)

Enables CONFIG_BLK_WBT (Writeback Throttling) and CONFIG_BLK_WBT_MQ (Writeback Throttling for Multi-Queue Block Layer) in the kernel configuration.

CONFIG_BLK_WBT introduces the Writeback Throttling mechanism for block devices. WBT helps prevent excessive IO latency spikes caused by uncontrolled writeback activity, especially on storage devices with limited bandwidth or high latency. By throttling background writeback, WBT ensures smoother and more predictable IO performance, particularly under heavy load or when multiple IO streams are competing for device bandwidth.

CONFIG_BLK_WBT_MQ extends WBT support to the multi-queue block subsystem (blk-mq), which is used by modern storage stacks and NVMe devices. Enabling this ensures that WBT's benefits are available for devices managed by blk-mq, providing improved latency control and fairness across all supported block devices.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.0-dev PRs Destined for AzureLinux 3.0 Packaging specs-extended PR to fix SPECS-EXTENDED

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants