Re: [GIT PULL] Block fixes for 4.5-final

From: Jens Axboe
Date: Thu Mar 03 2016 - 16:28:58 EST


On 03/03/2016 02:20 PM, Linus Torvalds wrote:
On Thu, Mar 3, 2016 at 1:11 PM, Jens Axboe <axboe@xxxxxx> wrote:

It does fix a regression - the change is that NVMe now uses the block layer
for these types of requests, and they don't have to adhere to the regular fs
limits of sizing. Hence we broke real use cases, of (for instance) pulling
logs off devices. Both of the referenced commits were added yesterday, not
today. And they should have been folded, but I had already committed the
first one. I don't think that should preclude doing it much cleaner than the
first one.

Why does this affect only NVMe, and not all the other drivers that
have been around forever? What is that magical case that breaks?
Details, please.

Development around NVMe is a lot more active than any other driver. And that tends to drive a lot more testing, and find a lot of other bugs. That, and the fact that NVMe is still fairly young. On top of that, NVMe has been driving/utilizing some parts of blk-mq, and exercising things like surprise hot removal that haven't seen a ton of testing.

Fair enough, I can boil it down somewhat. But honestly, the only stuff I'd
feel comfortable pulling out now would be the lightnvm changes which aren't
that critical due to the user base, though that's also why it would be fine
to shove it in now. And the cgroup writeback enable, which can wait. The two
commits referenced above could be folded, but they'd still be in the new
pull request.

So let me know if you want that, or we can proceed with the current branch,
because most of it should really go in as-is.

I basically want for every commit an explanation of why it's so
critical by now. I want to make you have to *think* and explain before
you send stuff at this stage, and I want to understand why each commit
is so important.

Because really, this has been going on far too long, and this pull
request looked singularly pointless.

No way do I want things like cgroup writeback changes outside the
merge window, for example, unless it's a major performance regression
(with numbers) or something like that.

No way do I want any lightnvm stuff.

No way do I want big "cleanup" patches.

I'll boil it down.

--
Jens Axboe