Bug 492817

Summary: Unable to set anticipatory as default IO scheduler for kernel parameters
Product: [Fedora] Fedora Reporter: Dmitriy Pomerantsev <pda2>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: jmoyer, kernel-maint, quintela
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-31 12:28:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
dmesg log none

Description Dmitriy Pomerantsev 2009-03-30 00:40:13 UTC
Created attachment 337187 [details]
dmesg log

Description of problem:
I'm trying to make an anticipatory as my default IO scheduler, but I have nothing when trying to add an option to the kernel boot parameters in the grub.conf. After reboot I see two message "I/O scheduler anticipatory not found" and finally "I/O scheduler anticipatory not found". But it's too late, my hard disk is already initialized and I have cfq as IO scheduler into /sys/block/sda/queue/scheduler


Version-Release number of selected component (if applicable):
kernel-2.6.29-16.fc11.i586

How reproducible:
Just add "elevator=anticipatory" the the kernel commandline in the /boot/grub/grub.conf

Steps to Reproduce:
1. Add "elevator=anticipatory" the the kernel commandline in the /boot/grub/grub.conf.
2. Reboot your computer.
3. Checkout the dmesg output or /sys/block/sda/queue/scheduler.
  
Actual results:
The cfq is IO current scheduler.

Expected results:
The current IO scheduler must be anticipatory.

Comment 1 Dmitriy Pomerantsev 2009-03-30 00:44:49 UTC
Oops, I want to write "and finally ***"io scheduler anticipatory registered (default)"***. But it's too late"...

Comment 2 Jeff Moyer 2009-03-30 19:26:32 UTC
It looks like the anticipatory scheduler is built as a module, for some reason:

CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=m
CONFIG_IOSCHED_CFQ=y

I'm not sure what the rationale is behind this.  You can probably work around the problem by including this module in your initrd.

We can take one of two approaches, as I see it:

1) build in all of the I/O schedulers
2) change mkinitrd to always include the I/O schedulers

I don't see a big problem with doing 1 above, and neither does Dave Jones.  So, expect this to be fixed in rawhide.

Thanks for the report!

Comment 3 Dmitriy Pomerantsev 2009-03-31 12:28:48 UTC
> I don't see a big problem with doing 1 above, and neither does Dave Jones.

Yes, I think so. I dont like to change a kernel or modify an initrd because it can brake the system after update, but I still can change the scheduler via /sys interface from /etc/rc.d/rc.local.