2017-08-14 09:27:16

by Oleksandr Natalenko

[permalink] [raw]
Subject: [RFC] block: deprecate choosing elevator via boot param

Setting I/O scheduler via kernel command line is not flexible enough
anymore. Different schedulers might be desirable for different types
of devices (SSDs and HDDs, for instance). Moreover, setting elevator
while using blk-mq framework does not work in this way already.

This commit enables warning if user specifies "elevator" boot param.
Removing this option at all might be considered in some future.

Signed-off-by: Oleksandr Natalenko <[email protected]>
---
block/elevator.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/block/elevator.c b/block/elevator.c
index 4bb2f0c93fa6..9ade7e12e417 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -130,6 +130,9 @@ static int __init elevator_setup(char *str)
* Be backwards-compatible with previous kernels, so users
* won't get the wrong elevator.
*/
+ printk(KERN_WARNING
+ "Setting I/O scheduler via kernel command line " \
+ "is deprecated. Use udev rule instead.");
strncpy(chosen_elevator, str, sizeof(chosen_elevator) - 1);
return 1;
}
--
2.14.1


2017-08-30 06:19:01

by Oleksandr Natalenko

[permalink] [raw]
Subject: Re: [RFC] block: deprecate choosing elevator via boot param

Jens,

any thoughts about this?

On Mon, Aug 14, 2017 at 11:27 AM, Oleksandr Natalenko
<[email protected]> wrote:
> Setting I/O scheduler via kernel command line is not flexible enough
> anymore. Different schedulers might be desirable for different types
> of devices (SSDs and HDDs, for instance). Moreover, setting elevator
> while using blk-mq framework does not work in this way already.
>
> This commit enables warning if user specifies "elevator" boot param.
> Removing this option at all might be considered in some future.
>
> Signed-off-by: Oleksandr Natalenko <[email protected]>
> ---
> block/elevator.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/block/elevator.c b/block/elevator.c
> index 4bb2f0c93fa6..9ade7e12e417 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -130,6 +130,9 @@ static int __init elevator_setup(char *str)
> * Be backwards-compatible with previous kernels, so users
> * won't get the wrong elevator.
> */
> + printk(KERN_WARNING
> + "Setting I/O scheduler via kernel command line " \
> + "is deprecated. Use udev rule instead.");
> strncpy(chosen_elevator, str, sizeof(chosen_elevator) - 1);
> return 1;
> }
> --
> 2.14.1
>



--
Best regards,
Oleksandr Natalenko (post-factum)
Software Maintenance Engineer

2017-08-30 14:24:34

by Jens Axboe

[permalink] [raw]
Subject: Re: [RFC] block: deprecate choosing elevator via boot param

On 08/14/2017 03:27 AM, Oleksandr Natalenko wrote:
> Setting I/O scheduler via kernel command line is not flexible enough
> anymore. Different schedulers might be desirable for different types
> of devices (SSDs and HDDs, for instance). Moreover, setting elevator
> while using blk-mq framework does not work in this way already.
>
> This commit enables warning if user specifies "elevator" boot param.
> Removing this option at all might be considered in some future.

Not a huge fan of doing it like this, it'll just add a bunch of noise to
the dmesg output that people will ignore. It doesn't bring us closer to
being able to remove the option.

I think we should just let it die over time. This will happen naturally
since the blk-mq scheduling framework does not support it. Once we have
everything converted, the option will end up doing nothing. Then we can
eventually kill it.

--
Jens Axboe