Restore request-based mode to xen-blkfront for AWS kernels
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
linux (Ubuntu) | ||||||
Trusty |
Fix Committed
|
Undecided
|
Unassigned | |||
Xenial |
Fix Committed
|
Undecided
|
Unassigned | |||
Bionic |
Fix Committed
|
Undecided
|
Unassigned | |||
Cosmic |
Fix Committed
|
Undecided
|
Unassigned | |||
Disco |
Won't Fix
|
Undecided
|
Unassigned | |||
linux-aws (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | |||
Trusty |
Fix Released
|
Undecided
|
Unassigned | |||
Xenial |
Fix Released
|
Undecided
|
Unassigned | |||
Bionic |
Fix Released
|
Undecided
|
Unassigned | |||
Cosmic |
Fix Released
|
Undecided
|
Unassigned | |||
Disco |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In current Ubuntu kernels, PV blkfront drivers have blk-mq enabled by default and cannot use the old I/O scheduler.
[Impact]
blk-mq is not as fast as the old request-based scheduler for some workloads on HDD disks.
[Fix]
Amazon Linux has a commit which reintroduces the request-based mode. It disables blk-mq by default but allows it to be switched back on with a kernel parameter.
For X this needs a small patch from upstream for error handling.
For B/C this patchset is bigger as it includes the suspend/resume patches already in X, and a new fixup. These are desirable as the request mode patch assumes their presence.
[Regression Potential]
Could potentially break xen based disks on AWS.
For B/C, the patches also add some code to the xen core around suspend and resume, this code is much smaller and also mirrors code already in Xenial.
[Tests]
Tested by AWS for Xenial, and their kernel engineers vetted the patches. I tested the Bionic and Cosmic patchsets with fio, the system appears stable and the IOPS promised for EBS Provisioned IOPS disks were met in my testing. I did an apt update/upgrade and everything worked (no hash-sum mismatches).
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Disco): | |
status: | Fix Committed → Triaged |
Changed in linux (Ubuntu Cosmic): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Xenial): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Trusty): | |
status: | New → In Progress |
Changed in linux (Ubuntu Trusty): | |
status: | In Progress → Fix Committed |
no longer affects: | linux (Ubuntu) |
Changed in linux-aws (Ubuntu Trusty): | |
status: | New → Fix Released |
Changed in linux-aws (Ubuntu Xenial): | |
status: | New → Fix Released |
Changed in linux-aws (Ubuntu Bionic): | |
status: | New → Fix Released |
Changed in linux-aws (Ubuntu Cosmic): | |
status: | New → Fix Released |
Changed in linux-aws (Ubuntu Disco): | |
status: | New → Fix Released |
Changed in linux (Ubuntu Disco): | |
status: | Triaged → Won't Fix |
I've checked that the proposed Xenial AWS kernel works - it boots successfully and uses the deadline scheduler by default on a t2.micro instance.
Regards,
Daniel