2016-03-18 17:33:14

by Jens Axboe

[permalink] [raw]
Subject: [GIT PULL] Block driver changes for 4.6-rc

Hi Linus,

This is the block driver pull request for this merge window. It sits on
top of for-4.6/core, that was just sent out.

With the amount of changes we ended up having after the merge window in
4.5, there's a non trivial amount of merging for this branch for NVMe.
Even with resolving them correctly, you need to know that NVMe requires
a symbol export (nvme_kill_queues()) in the merged result that doesn't
exist in either branch, its only needed when they are merged together.
I'm providing you two options here:

1) Pull for-4.6/drivers and do the merges yourself. This is the original
branch.

2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5
merged into it and the merges resolved cleanly.

Diffstat below shown for the regular branch, for-4.6/drivers. This pull
request contains:


- A set of fixes for lightnvm. One from Alan, fixing an overflow, and
the rest from the usual suspects, Javier and Matias.

- A set of fixes for nbd from Markus and Dan, and a fixup from Arnd for
correct usage of the signed 64-bit divider.

- A set of bug fixes for the Micron mtip32xx, from Asai.

- A fix for the brd discard handling from Bart.

- Update the maintainers entry for cciss, since that hardware has
transferred ownership.

- 3 bug fixes for bcache from Eric Wheeler.

- Set of fixes for xen-blk{back,front} from Jan and Konrad.

- Removal of the cpqarray driver. It has been disabled in Kconfig since
2013, and we were initially scheduled to remove it in 3.15.

- Various updates and fixes for NVMe, with the most important being:

- Removal of the per-device NVMe thread, replacing that with a
watchdog timer instead. From Christoph.

- Exposing the namespace WWID through sysfs, from Keith.

- Set of cleanups from Ming Lin.

- Logging the controller device name instead of the underlying
PCI device name, from Sagi.

- And a bunch of fixes and optimizations from the usual suspects
in this area.

Please pull!


git://git.kernel.dk/linux-block.git for-4.6/drivers


----------------------------------------------------------------
Alan (1):
lightnvm: fix up nonsensical configure overrun checking

Arnd Bergmann (1):
nbd: use correct div_s64 helper

Asai Thambi SP (9):
mtip32xx: Fix broken service thread handling
mtip32xx: Remove unwanted code from taskfile error handler
mtip32xx: Print exact time when an internal command is interrupted
mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild
mtip32xx: Fix for rmmod crash when drive is in FTL rebuild
mtip32xx: Handle safe removal during IO
mtip32xx: Handle FTL rebuild failure state during device initialization
mtip32xx: Implement timeout handler
mtip32xx: Cleanup queued requests after surprise removal

Bart Van Assche (1):
brd: Fix discard request processing

Christoph Hellwig (5):
nvme: fix drvdata setup for the nvme device
nvme: use a work item to submit async event requests
nvme: don't poll the CQ from the kthread
nvme: replace the kthread with a per-device watchdog timer
nvme: return the whole CQE through the request passthrough interface

Dan Streetman (1):
nbd: ratelimit error msgs after socket close

Don Brace (1):
cciss: update MAINTAINERS

Eric Wheeler (3):
bcache: fix race of writeback thread starting before complete initialization
bcache: cleaned up error handling around register_cache()
bcache: fix cache_set_flush() NULL pointer dereference on OOM

Jan Beulich (2):
xen-blkfront: rename indirect descriptor parameter
xen-blkback: advertise indirect segment support earlier

Javier Gonz?lez (2):
lightnvm: update closed list outside of intr context
lightnvm: generalize rrpc ppa calculations

Jens Axboe (3):
Merge tag 'nbd-for-4.6' of git://git.pengutronix.de/git/mpa/linux-nbd into for-4.6/drivers
mtip32xx: remove unneeded variable in mtip_cmd_timeout()
cpqarray: remove it from the kernel

Jon Derrick (1):
NVMe: Remove unused sq_head read in completion path

Keith Busch (3):
NVMe: Fix possible queue use after freed
NVMe: Create discard zero quirk white list
NVMe: Expose ns wwid through single sysfs entry

Konrad Rzeszutek Wilk (1):
xen/blback: Fit the important information of the thread in 17 characters

Markus Pargmann (6):
nbd: Fix debugfs error handling
nbd: Remove signal usage
nbd: Timeouts are not user requested disconnects
nbd: Cleanup reset of nbd and bdev after a disconnect
nbd: Move flag parsing to a function
nbd: Create size change events for userspace

Matias Bj?rling (3):
lightnvm: fold get bb tbl when using dual/quad plane mode
lightnvm: rename ->nr_pages to ->nr_sects
lightnvm: remove struct nvm_dev->total_blocks

Ming Lin (4):
nvme: move timeout variables to core.c
nvme: split dev_list_lock
nvme: split pci module out of core module
nvme: expose cntlid in sysfs

Sagi Grimberg (2):
nvme: Log the ctrl device name instead of the underlying pci device name
nvme/host: reference the fabric module for each bdev open callout

Valentin Rothberg (1):
drivers:block: cpqarray clean up

Documentation/blockdev/cpqarray.txt | 93 --
MAINTAINERS | 10 +-
drivers/block/Kconfig | 10 -
drivers/block/Makefile | 1 -
drivers/block/brd.c | 2 +-
drivers/block/cpqarray.c | 1820 -----------------------------------
drivers/block/cpqarray.h | 126 ---
drivers/block/ida_cmd.h | 349 -------
drivers/block/ida_ioctl.h | 87 --
drivers/block/mtip32xx/mtip32xx.c | 266 +++--
drivers/block/mtip32xx/mtip32xx.h | 11 +-
drivers/block/nbd.c | 334 +++----
drivers/block/xen-blkback/xenbus.c | 20 +-
drivers/block/xen-blkfront.c | 6 +-
drivers/lightnvm/core.c | 19 +-
drivers/lightnvm/gennvm.c | 7 +-
drivers/lightnvm/rrpc.c | 98 +-
drivers/lightnvm/rrpc.h | 15 +-
drivers/md/bcache/super.c | 46 +-
drivers/nvme/host/Kconfig | 6 +-
drivers/nvme/host/Makefile | 10 +-
drivers/nvme/host/core.c | 165 +++-
drivers/nvme/host/lightnvm.c | 46 +-
drivers/nvme/host/nvme.h | 14 +-
drivers/nvme/host/pci.c | 239 ++---
include/linux/lightnvm.h | 8 +-
26 files changed, 792 insertions(+), 3016 deletions(-)
delete mode 100644 Documentation/blockdev/cpqarray.txt
delete mode 100644 drivers/block/cpqarray.c
delete mode 100644 drivers/block/cpqarray.h
delete mode 100644 drivers/block/ida_cmd.h
delete mode 100644 drivers/block/ida_ioctl.h

--
Jens Axboe


2016-03-19 00:32:37

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] Block driver changes for 4.6-rc

On Fri, Mar 18, 2016 at 10:33 AM, Jens Axboe <[email protected]> wrote:
>
> 1) Pull for-4.6/drivers and do the merges yourself. This is the original
> branch.
>
> 2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5
> merged into it and the merges resolved cleanly.

I don't think your merge is correct.

I pushed out mine.

So the differences are (apart from purely newline changes):

- you kept the early "flush_work(&dev->reset_work)", so your merge
didn't take the changes from commit
ff23a2a15a2117245b4599c1352343c8b8fb4c43 properly, and you flush the
work twice.

I don't know that it matters, but it looks odd.

- Your merge dropped the nvme_dev_disable() from
nvme_remove_dead_ctrl(), added by commit
69d9a99c258eb1d6478fd9608a2070890797eed7

- Your merge kept the redundant dev_set_drvdata() in
nvme_init_ctrl(), removed by commit
f4f0f63e6f01055dfbdb7bc5e83935e1bdfa1980.

Anyway, since I got a different merge result than you did, you should
double-check, but I think I did the merge correctly.

But I don't know the code nor the hardware, so I'm just going by
reading the commits.

I also do have to ask: why the hell is nvme development done in that
insane way? Why the f*ck can people not work together? Why are these
two different groups messing with each others code?

Tell them to stop.

I'm not happy with how messy these block layer pulls are.

Linus

Linus

2016-03-19 01:09:03

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] Block driver changes for 4.6-rc

On 03/18/2016 05:32 PM, Linus Torvalds wrote:
> On Fri, Mar 18, 2016 at 10:33 AM, Jens Axboe <[email protected]> wrote:
>>
>> 1) Pull for-4.6/drivers and do the merges yourself. This is the original
>> branch.
>>
>> 2) Pull for-4.6/drivers-merged, which is the above branch, but with v4.5
>> merged into it and the merges resolved cleanly.
>
> I don't think your merge is correct.
>
> I pushed out mine.
>
> So the differences are (apart from purely newline changes):
>
> - you kept the early "flush_work(&dev->reset_work)", so your merge
> didn't take the changes from commit
> ff23a2a15a2117245b4599c1352343c8b8fb4c43 properly, and you flush the
> work twice.
>
> I don't know that it matters, but it looks odd.
>
> - Your merge dropped the nvme_dev_disable() from
> nvme_remove_dead_ctrl(), added by commit
> 69d9a99c258eb1d6478fd9608a2070890797eed7
>
> - Your merge kept the redundant dev_set_drvdata() in
> nvme_init_ctrl(), removed by commit
> f4f0f63e6f01055dfbdb7bc5e83935e1bdfa1980.
>
> Anyway, since I got a different merge result than you did, you should
> double-check, but I think I did the merge correctly.

I'll double check again, but from a quick look, looks like yours is the
better version.

> But I don't know the code nor the hardware, so I'm just going by
> reading the commits.
>
> I also do have to ask: why the hell is nvme development done in that
> insane way? Why the f*ck can people not work together? Why are these
> two different groups messing with each others code?

The reason it's messy is not the code in for-4.6/drivers branch, it's
the amount of activity in the post merge window time for the last
release. And that's why it was messy in the 4.5 merge window as well,
the post merge changes for NVMe, not the history of the patches in the
merge window. But you already know that. It's not two different groups
of people, it's the same people...

> Tell them to stop.
>
> I'm not happy with how messy these block layer pulls are.

Agree, it's not going to be an issue going forward.

--
Jens Axboe