On 5/30/18 9:06 AM, Jeff Moyer wrote: > Hi, Jens, > > Jens Axboe <axboe@xxxxxxxxx> writes: > >> On 5/30/18 2:49 AM, Christoph Hellwig wrote: >>> While I really don't want drivers to change the I/O schedule themselves >>> we have a class of devices (zoned) that don't work at all with certain >>> I/O schedulers. The kernel not chosing something sane and requiring >>> user workarounds is just silly. >> >> They work just fine for probing and reading purposes. There's absolutely >> no reason why we can't handle these special snowflakes with a udev rule. > > udev rules aren't shipped with the kernel, so it makes it hard to keep > them in sync. In this instance, I'm not sure anyone made an effort to > notify distributions that a udev rule was even necessary. (Is there a > way of notifying distributions about kernel changes that require new > udev rules, other than emailing each list individually?) > > From a technical standpoint, I totally agree with you, Jens. However, I > think the user experience sucks. 4.15 worked by default, 4.16 doesn't. > The result will be bug reports from users (to the drive vendors, > distribution bugzillas, here, etc.). I would imagine that most folks get their updates from a distro of some sort, in which case there's absolutely nothing stopping the distro from shipping updated rules for the 4.16 kernel update. But what's the regression? 4.15 had no zone write locking at all. > Moving on, assuming your mind is made up... > > I'm not sure how much logic should go into the udev rule. As mentioned, > this limitation was introduced in 4.16, and Damien has plans to lift the > restriction in future kernels. Because distributions tend to cherry > pick changes, making decisions on whether a feature exists based solely > on kernel version is usually not a great thing. My inclination would be > to just always force deadline for host-managed SMR drives. These drives > aren't that popular, after all. Any opinions on this? The problem is that it's tied to an IO scheduler, which ends up causing issues like this, since users are free to select a different scheduler. Then things break. Granted, in this case, some extraordinarily shitty hardware even broke. That is on the hardware, not the kernel, that kind of breakage should not occur. So now we're stuck with this temporary situation which needs a work-around. I don't think it's a terrible idea to have a rule that just sets deadline/mq-deadline for an SMR device regardless of what kernel it is running on. It'll probably never be a bad default. -- Jens Axboe