Re: [v6 0/4] mpt3sas: Hot-Plug Surprise removal support on IOC.

2018-10-29 Thread Suganath Prabu Subramani
Any update on this ? In V6, I have posted has only defect fixes (Other than HBA Hot-Plug Surprise remove support). We are reworking and incorporating the suggestions from Bjorn. And after covering tests, we ll post Hot-Plug Surprise removal patches. Thanks, Suganath Prabu On Tue, Oct 23, 2018 at

[v1 1/2] mpt3sas: Update MPI headers to support Aero controllers.

2018-10-29 Thread Suganath Prabu
Updating MPI headers to the latest version 2.6.7 to add support to the driver to detect the new 3816 and 3916 chip based controllers. Separate out firmware image data from mpi2_ioc.h to new file mpi2_image.h Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpi/mpi2.h | 17 +- driv

[v1 2/2] mpt3sas: Add support to Aero PCI IDs.

2018-10-29 Thread Suganath Prabu
Add support for Aero/Sea controllers and add warning for configurable secure type IOC. Signed-off-by: Suganath Prabu --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 30 -- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c

[v1 0/2] mpt3sas: Add support to Aero controllers.

2018-10-29 Thread Suganath Prabu
1) Updated MPI headers to the latest version 2.6.7. 2) Added support for Aero/Sea controllers. V1 changes: In Patch 2, ioc->name is populated later, so fixing ioc->name before using it in ioc_warn. Enable Warning message only for aero configurable controllers. Suganath Prabu (2): mpt3sas: Upd

Re: [PATCH v2] codafs: Fix build using bare-metal toolchain

2018-10-29 Thread Greg KH
On Mon, Oct 29, 2018 at 10:05:49PM +0200, Sam Protsenko wrote: > Hi Greg, > > On Mon, Oct 29, 2018 at 10:03 PM, Sam Protsenko > wrote: > > The kernel is self-contained project and can be built with bare-metal > > toolchain. But bare-metal toolchain doesn't define __linux__. Because of > > this u_

Re: [PATCH 6/7] qla2xxx: Make sure that qlafx00_ioctl_iosb_entry() initializes 'res'

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > Only one of the two code paths in qlafx00_ioctl_iosb_entry() initializes > the variable 'res'. Make sure that 'res' is initialized before > sp->done(sp, res) is called. > > Cc: Himanshu Madhani > Signed-off-by: Bart

Re: [PATCH 3/7] qla2xxx: Declare local functions 'static'

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > This patch avoids that the compiler complains about missing declarations > when building with W=1. > > Cc: Himanshu Madhani > Signed-off-by: Bart Van Assche > --- > drivers/scsi/qla2xxx/qla_init.c | 5 +++-- > 1 fil

Re: [PATCH 4/7] qla2xxx: Make qla2x00_sysfs_write_nvram() easier to analyze

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > Modify the unlock statement such that it becomes easier for static > analyzers to analyze it. This patch does not change any functionality. > > Cc: Himanshu Madhani > Signed-off-by: Bart Van Assche > --- > drivers/

Re: [PATCH 5/7] qla2xxx: Remove a set-but-not-used variable

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > This patch does not change any functionality. > > Cc: Himanshu Madhani > Signed-off-by: Bart Van Assche > --- > drivers/scsi/qla2xxx/qla_os.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff -

Re: [PATCH 7/7] qla2xxx: Remove two arguments from qlafx00_error_entry()

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > Move a debug statement from qlafx00_error_entry() into its caller. Remove > one unused argument from that function. This patch does not change the > behavior of the qla2xxx driver. > > Cc: Himanshu Madhani > Signed-

Re: [PATCH 2/7] qla2xxx: Improve several kernel-doc headers

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > This patch avoids that complaints about kernel-doc headers are reported > when building with W=1. > > Cc: Himanshu Madhani > Signed-off-by: Bart Van Assche > --- > drivers/scsi/qla2xxx/qla_iocb.c | 4 ++-- > drive

Re: [PATCH 1/7] qla2xxx: Modify fall-through annotations

2018-10-29 Thread Madhani, Himanshu
> On Oct 18, 2018, at 3:45 PM, Bart Van Assche wrote: > > External Email > > This patch avoids that the compiler complains about missing fall-through > annotations when building with W=1. > > Cc: Himanshu Madhani > Signed-off-by: Bart Van Assche > --- > drivers/scsi/qla2xxx/qla_init.c | 2

Re: [RFC PATCH 0/3] target: remove some unused stats

2018-10-29 Thread David Disseldorp
On Wed, 17 Oct 2018 17:48:17 +0200, David Disseldorp wrote: > This patchset removes a couple of unused error stat counters and a > redundant cumulative counter. > I've tagged this patchset RFC, as it may be considered a kernel<->user > (configfs) API change. Ping, any thoughts on this patchset?

Re: [PATCH 2/2] scsi: remove the SCSI OSD library

2018-10-29 Thread Bart Van Assche
On Sat, 2018-10-27 at 10:20 +0200, Christoph Hellwig wrote: > Now that all the users are gone the SCSI OSD library can be removed > as well. Reviewed-by: Bart Van Assche

Re: remove exofs and the T10 OSD code V2

2018-10-29 Thread Jens Axboe
On 10/27/18 2:20 AM, Christoph Hellwig wrote: > The only real user of the T10 OSD protocol, the pNFS object layout > driver never went to the point of having shipping products, and we > removed it 1.5 years ago. Exofs is just a simple example without > real life users. > > The code has been mostl

Re: [PATCH 1/2] fs: remove exofs

2018-10-29 Thread Bart Van Assche
On Sat, 2018-10-27 at 10:20 +0200, Christoph Hellwig wrote: > This was an example for using the SCSI OSD protocol, which we're trying > to remove. Reviewed-by: Bart Van Assche

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Jens Axboe
On 10/29/18 2:25 PM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 14:09 -0600, Jens Axboe wrote: >> hctx->type will be set to the value of the first type. This is all driver >> private, blk-mq could not care less what the value of the type means. >> >> As to the other question, it works just fine

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 14:09 -0600, Jens Axboe wrote: > hctx->type will be set to the value of the first type. This is all driver > private, blk-mq could not care less what the value of the type means. > > As to the other question, it works just fine since that is the queue > that is being accessed

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Jens Axboe
On 10/29/18 2:00 PM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 13:53 -0600, Jens Axboe wrote: >> On 10/29/18 1:40 PM, Bart Van Assche wrote: >>> On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: -static int cpu_to_queue_index(unsigned int nr_queues, const int cpu) +static int cpu_

Re: [PATCH v2] codafs: Fix build using bare-metal toolchain

2018-10-29 Thread Andy Shevchenko
Cc: Arnd, I guess it might be useful for kernel-ci activity as well. On Mon, Oct 29, 2018 at 10:05 PM Sam Protsenko wrote: > > Hi Greg, > > On Mon, Oct 29, 2018 at 10:03 PM, Sam Protsenko > wrote: > > The kernel is self-contained project and can be built with bare-metal > > toolchain. But bare-m

Re: [PATCH v2] codafs: Fix build using bare-metal toolchain

2018-10-29 Thread Sam Protsenko
Hi Greg, On Mon, Oct 29, 2018 at 10:03 PM, Sam Protsenko wrote: > The kernel is self-contained project and can be built with bare-metal > toolchain. But bare-metal toolchain doesn't define __linux__. Because of > this u_quad_t type is not defined when using bare-metal toolchain and > codafs build

[PATCH v2] codafs: Fix build using bare-metal toolchain

2018-10-29 Thread Sam Protsenko
The kernel is self-contained project and can be built with bare-metal toolchain. But bare-metal toolchain doesn't define __linux__. Because of this u_quad_t type is not defined when using bare-metal toolchain and codafs build fails. This patch fixes it by defining u_quad_t type unconditionally. Si

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 13:53 -0600, Jens Axboe wrote: > On 10/29/18 1:40 PM, Bart Van Assche wrote: > > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > > > -static int cpu_to_queue_index(unsigned int nr_queues, const int cpu) > > > +static int cpu_to_queue_index(struct blk_mq_queue_map *qmap,

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Jens Axboe
On 10/29/18 1:40 PM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> -static int cpu_to_queue_index(unsigned int nr_queues, const int cpu) >> +static int cpu_to_queue_index(struct blk_mq_queue_map *qmap, >> + unsigned int nr_queues, const in

Re: [PATCH 09/14] blk-mq: ensure that plug lists don't straddle hardware queues

2018-10-29 Thread Jens Axboe
On 10/29/18 1:30 PM, Jens Axboe wrote: > On 10/29/18 1:27 PM, Bart Van Assche wrote: >> On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >>> void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) >>> { >>> struct blk_mq_ctx *this_ctx; >>> @@ -1628,7 +1649,7 @@ void blk_mq_

Re: [PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > -static int cpu_to_queue_index(unsigned int nr_queues, const int cpu) > +static int cpu_to_queue_index(struct blk_mq_queue_map *qmap, > + unsigned int nr_queues, const int cpu) > { > - return cpu % nr_queues; > +

Re: [PATCH 09/14] blk-mq: ensure that plug lists don't straddle hardware queues

2018-10-29 Thread Jens Axboe
On 10/29/18 1:27 PM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) >> { >> struct blk_mq_ctx *this_ctx; >> @@ -1628,7 +1649,7 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, >> bo

Re: [PATCH 09/14] blk-mq: ensure that plug lists don't straddle hardware queues

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) > { > struct blk_mq_ctx *this_ctx; > @@ -1628,7 +1649,7 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool > from_schedule) > struct request *rq; >

Re: [PATCH 07/14] blk-mq: support multiple hctx maps

2018-10-29 Thread Jens Axboe
On 10/29/18 12:15 PM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> -static inline struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue >> *q, >> - unsigned int flags, >> -

Re: [PATCH 02/14] blk-mq: abstract out queue map

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > struct blk_mq_tag_set { > - unsigned int*mq_map; > + struct blk_mq_queue_map map[HCTX_MAX_TYPES]; > const struct blk_mq_ops *ops; > unsigned intnr_hw_queues; > unsigned intqueue_dept

Re: [PATCH 08/14] blk-mq: separate number of hardware queues from nr_cpu_ids

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > With multiple maps, nr_cpu_ids is no longer the maximum number of > hardware queues we support on a given devices. The initializer of > the tag_set can have set ->nr_hw_queues larger than the available > number of CPUs, since we can exceed that

Re: [PATCH 07/14] blk-mq: support multiple hctx maps

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > -static inline struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *q, > - unsigned int flags, > - int cpu) > +static inline struct blk_mq

Re: [PATCH 06/14] blk-mq: add 'type' attribute to the sysfs hctx directory

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > It can be useful for a user to verify what type a given hardware > queue is, expose this information in sysfs. Reviewed-by: Bart Van Assche

Re: [PATCH 05/14] blk-mq: allow software queue to map to multiple hardware queues

2018-10-29 Thread Jens Axboe
On 10/29/18 11:34 AM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> The mapping used to be dependent on just the CPU location, but >> now it's a tuple of { type, cpu} instead. This is a prep patch >> for allowing a single software queue to map to multiple hardware

Re: [PATCH 05/14] blk-mq: allow software queue to map to multiple hardware queues

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > The mapping used to be dependent on just the CPU location, but > now it's a tuple of { type, cpu} instead. This is a prep patch > for allowing a single software queue to map to multiple hardware > queues. No functional changes in this patch. A

Re: [PATCH 04/14] blk-mq: pass in request/bio flags to queue mapping

2018-10-29 Thread Jens Axboe
On 10/29/18 11:30 AM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> @@ -400,9 +402,15 @@ void blk_mq_sched_insert_requests(struct request_queue >> *q, >>struct blk_mq_ctx *ctx, >>struct list_head *li

Re: [PATCH 04/14] blk-mq: pass in request/bio flags to queue mapping

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > @@ -400,9 +402,15 @@ void blk_mq_sched_insert_requests(struct request_queue > *q, > struct blk_mq_ctx *ctx, > struct list_head *list, bool run_queue_async) > { > - struct blk

Re: [PATCH 03/14] blk-mq: provide dummy blk_mq_map_queue_type() helper

2018-10-29 Thread Jens Axboe
On 10/29/18 11:22 AM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> diff --git a/block/blk-mq.h b/block/blk-mq.h >> index 889f0069dd80..79c300faa7ce 100644 >> --- a/block/blk-mq.h >> +++ b/block/blk-mq.h >> @@ -80,6 +80,12 @@ static inline struct blk_mq_hw_ctx >>

Re: [PATCH 03/14] blk-mq: provide dummy blk_mq_map_queue_type() helper

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > diff --git a/block/blk-mq.h b/block/blk-mq.h > index 889f0069dd80..79c300faa7ce 100644 > --- a/block/blk-mq.h > +++ b/block/blk-mq.h > @@ -80,6 +80,12 @@ static inline struct blk_mq_hw_ctx > *blk_mq_map_queue(struct request_queue *q, > r

Re: [PATCH 11/14] irq: add support for allocating (and affinitizing) sets of IRQs

2018-10-29 Thread Jens Axboe
On 10/29/18 11:08 AM, Thomas Gleixner wrote: > Jens, > > On Mon, 29 Oct 2018, Jens Axboe wrote: > >> A driver may have a need to allocate multiple sets of MSI/MSI-X >> interrupts, and have them appropriately affinitized. Add support for >> defining a number of sets in the irq_affinity structure,

Re: [PATCH 11/14] irq: add support for allocating (and affinitizing) sets of IRQs

2018-10-29 Thread Thomas Gleixner
Jens, On Mon, 29 Oct 2018, Jens Axboe wrote: > A driver may have a need to allocate multiple sets of MSI/MSI-X > interrupts, and have them appropriately affinitized. Add support for > defining a number of sets in the irq_affinity structure, of varying > sizes, and get each set affinitized correct

Re: [PATCH 10/12] lpfc: Implement GID_PT on Nameserver query to support faster failover

2018-10-29 Thread Hannes Reinecke
On 10/23/18 10:41 PM, James Smart wrote: The switches seem to respond faster to GID_PT vs GID_FT NameServer queries. Add support for GID_PT to be used over GID_FT to enable faster storage failover detection. Includes addition of new module parameter to select between GID_PT and GID_FT (GID_FT is

Re: [PATCH 24/29] bsg: move bsg-lib parts outside of request queue

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: Get rid of the special bsg job fn and timeout handler, move them into a private bsg_set instead. Mostly from Christoph, with fixes for error handling and cleanups. Signed-off-by: Jens Axboe --- block/bsg-lib.c | 43 ++

Re: [PATCH 14/29] bsg: convert to use blk-mq

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: Requires a few changes to the FC transport class as well. Cc: linux-scsi@vger.kernel.org Reviewed-by: Johannes Thumshirn Tested-by: Benjamin Block Signed-off-by: Jens Axboe --- block/bsg-lib.c | 123 +++ dr

Re: [PATCH 13/29] bsg: provide bsg_remove_queue() helper

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: All drivers do unregister + cleanup, provide a helper for that. Cc: linux-scsi@vger.kernel.org Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Tested-by: Benjamin Block Signed-off-by: Jens Axboe --- block/bsg-lib.c |

Re: [PATCH 10/29] block: remove q->lld_busy_fn()

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: Nobody is using the legacy path for blk_lld_busy() anymore, remove it. Signed-off-by: Jens Axboe --- block/blk-core.c | 2 -- block/blk-settings.c | 6 -- include/linux/blkdev.h | 3 --- 3 files changed, 11 deletions(-) Reviewed-by: Hann

Re: [PATCH 08/29] scsi: provide mq_ops->busy() hook

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: Only the SCSI legacy path provides a way to check if target is currently busy, provide the same for the MQ path. Cc: linux-scsi@vger.kernel.org Signed-off-by: Jens Axboe --- drivers/scsi/scsi_lib.c | 6 ++ 1 file changed, 6 insertions(+) Reviewed-

Re: [PATCH 07/29] blk-mq: provide mq_ops->busy() hook

2018-10-29 Thread Hannes Reinecke
On 10/29/18 5:34 PM, Jens Axboe wrote: We'll hook into this from blk_lld_busy(), allowing blk-mq to also return whether or not a given queue currently has requests in progress. Signed-off-by: Jens Axboe --- block/blk-core.c | 2 ++ include/linux/blk-mq.h | 6 ++ 2 files changed, 8

Re: [PATCH 01/14] blk-mq: kill q->mq_map

2018-10-29 Thread Jens Axboe
On 10/29/18 10:46 AM, Bart Van Assche wrote: > On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: >> It's just a pointer to set->mq_map, use that instead. > > Please clarify in the patch description that the q->tag_set assignment > has been moved because this patch makes it necessary to have tha

Re: [PATCH 01/14] blk-mq: kill q->mq_map

2018-10-29 Thread Bart Van Assche
On Mon, 2018-10-29 at 10:37 -0600, Jens Axboe wrote: > It's just a pointer to set->mq_map, use that instead. Please clarify in the patch description that the q->tag_set assignment has been moved because this patch makes it necessary to have that pointer available earlier such that it is clear that

[PATCHSET v2 0/14] blk-mq: Add support for multiple queue maps

2018-10-29 Thread Jens Axboe
This series adds support for multiple queue maps for blk-mq. Since blk-mq was introduced, it's only support a single queue map. This means you can have 1 set of queues, and the mapping purely depends on what CPU an IO originated from. With this patch set, drivers can implement mappings that depend

[PATCH 03/14] blk-mq: provide dummy blk_mq_map_queue_type() helper

2018-10-29 Thread Jens Axboe
Doesn't do anything right now, but it's needed as a prep patch to get the interfaces right. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.h | 6 ++ 1 file changed, 6 insertions(+) diff --git a/block/blk-mq.h b/block/blk-mq.h index 889f0069dd80..79c300faa7ce 100644

[PATCH 02/14] blk-mq: abstract out queue map

2018-10-29 Thread Jens Axboe
This is in preparation for allowing multiple sets of maps per queue, if so desired. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq-cpumap.c | 10 block/blk-mq-pci.c| 10 block/blk-mq-rdma.c | 4 ++-

[PATCH 04/14] blk-mq: pass in request/bio flags to queue mapping

2018-10-29 Thread Jens Axboe
Prep patch for being able to place request based not just on CPU location, but also on the type of request. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-flush.c | 7 +++--- block/blk-mq-debugfs.c | 4 +++- block/blk-mq-sched.c | 16 ++ block/blk-mq-t

[PATCH 06/14] blk-mq: add 'type' attribute to the sysfs hctx directory

2018-10-29 Thread Jens Axboe
It can be useful for a user to verify what type a given hardware queue is, expose this information in sysfs. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq-sysfs.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/block/blk-mq-sysfs.c b/block/blk-mq-sysfs.

[PATCH 11/14] irq: add support for allocating (and affinitizing) sets of IRQs

2018-10-29 Thread Jens Axboe
A driver may have a need to allocate multiple sets of MSI/MSI-X interrupts, and have them appropriately affinitized. Add support for defining a number of sets in the irq_affinity structure, of varying sizes, and get each set affinitized correctly across the machine. Cc: Thomas Gleixner Cc: linux-

[PATCH 10/14] blk-mq: initial support for multiple queue maps

2018-10-29 Thread Jens Axboe
Add a queue offset to the tag map. This enables users to map iteratively, for each queue map type they support. Bump maximum number of supported maps to 2, we're now fully able to support more than 1 map. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq-cpumap.c | 9 +++

[PATCH 09/14] blk-mq: ensure that plug lists don't straddle hardware queues

2018-10-29 Thread Jens Axboe
Since we insert per hardware queue, we have to ensure that every request on the plug list being inserted belongs to the same hardware queue. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.c | 27 +-- 1 file changed, 25 insertions(+), 2 deletions(

[PATCH 07/14] blk-mq: support multiple hctx maps

2018-10-29 Thread Jens Axboe
Add support for the tag set carrying multiple queue maps, and for the driver to inform blk-mq how many it wishes to support through setting set->nr_maps. This adds an mq_ops helper for drivers that support more than 1 map, mq_ops->flags_to_type(). The function takes request/bio flags and CPU, and

[PATCH 05/14] blk-mq: allow software queue to map to multiple hardware queues

2018-10-29 Thread Jens Axboe
The mapping used to be dependent on just the CPU location, but now it's a tuple of { type, cpu} instead. This is a prep patch for allowing a single software queue to map to multiple hardware queues. No functional changes in this patch. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe ---

[PATCH 13/14] block: add REQ_HIPRI and inherit it from IOCB_HIPRI

2018-10-29 Thread Jens Axboe
We use IOCB_HIPRI to poll for IO in the caller instead of scheduling. This information is not available for (or after) IO submission. The driver may make different queue choices based on the type of IO, so make the fact that we will poll for this IO known to the lower layers as well. Reviewed-by:

[PATCH 12/14] nvme: utilize two queue maps, one for reads and one for writes

2018-10-29 Thread Jens Axboe
NVMe does round-robin between queues by default, which means that sharing a queue map for both reads and writes can be problematic in terms of read servicing. It's much easier to flood the queue with writes and reduce the read servicing. Implement two queue maps, one for reads and one for writes.

[PATCH 14/14] nvme: add separate poll queue map

2018-10-29 Thread Jens Axboe
Adds support for defining a variable number of poll queues, currently configurable with the 'poll_queues' module parameter. Defaults to a single poll queue. And now we finally have poll support without triggering interrupts! Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- drivers/nv

[PATCH 08/14] blk-mq: separate number of hardware queues from nr_cpu_ids

2018-10-29 Thread Jens Axboe
With multiple maps, nr_cpu_ids is no longer the maximum number of hardware queues we support on a given devices. The initializer of the tag_set can have set ->nr_hw_queues larger than the available number of CPUs, since we can exceed that with multiple queue maps. Reviewed-by: Hannes Reinecke Sig

[PATCH 01/14] blk-mq: kill q->mq_map

2018-10-29 Thread Jens Axboe
It's just a pointer to set->mq_map, use that instead. Reviewed-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.c | 13 - block/blk-mq.h | 4 +++- include/linux/blkdev.h | 2 -- 3 files changed, 7 insertions(+), 12 dele

[PATCH 24/29] bsg: move bsg-lib parts outside of request queue

2018-10-29 Thread Jens Axboe
Get rid of the special bsg job fn and timeout handler, move them into a private bsg_set instead. Mostly from Christoph, with fixes for error handling and cleanups. Signed-off-by: Jens Axboe --- block/bsg-lib.c | 43 ++--- include/linux/blkdev.h | 5

[PATCH 27/29] block: remove req_no_special_merge() from merging code

2018-10-29 Thread Jens Axboe
It'll always be false at this point, just remove it. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-merge.c | 25 +++-- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/block/blk-merge.c b/block/blk-merge.c index 7fedc0391610..3561dcce2260

[PATCH 26/29] block: kill request slab cache

2018-10-29 Thread Jens Axboe
Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-core.c | 8 block/blk.h | 1 - 2 files changed, 9 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c index 0678ec4b1169..951e8cf082e1 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -57,11 +57,

[PATCH 09/29] scsi: kill off the legacy IO path

2018-10-29 Thread Jens Axboe
Cc: linux-scsi@vger.kernel.org Acked-by: Himanshu Madhani Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- Documentation/scsi/scsi-parameters.txt | 5 - drivers/scsi/Kconfig | 12 - drivers/scsi/cxlflash/main.c | 6 - drivers/scsi/hosts.c

[PATCH 25/29] block: remove request_list code

2018-10-29 Thread Jens Axboe
It's now dead code, nobody uses it. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-cgroup.c | 47 block/blk-core.c | 75 -- block/blk-mq.c | 4 -- block/blk.h| 3 -- include/linux/

[PATCH 21/29] block: remove dead elevator code

2018-10-29 Thread Jens Axboe
This removes a bunch of core and elevator related code. On the core front, we remove anything related to queue running, draining, initialization, plugging, and congestions. We also kill anything related to request allocation, merging, retrieval, and completion. Remove any checking for single queue

[PATCH 19/29] block: remove non mq parts from the flush code

2018-10-29 Thread Jens Axboe
Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-flush.c | 154 +- block/blk.h | 4 +- 2 files changed, 31 insertions(+), 127 deletions(-) diff --git a/block/blk-flush.c b/block/blk-flush.c index 8b44b86779da..9baa9a119447

[PATCH 04/29] ide: convert to blk-mq

2018-10-29 Thread Jens Axboe
ide-disk and ide-cd tested as working just fine, ide-tape and ide-floppy haven't. But the latter don't require changes, so they should work without issue. Add helper function to insert a request from a work queue, since we cannot invoke the blk-mq request insertion from IRQ context. Cc: David Mil

[PATCH 18/29] block: remove legacy rq tagging

2018-10-29 Thread Jens Axboe
It's now unused, kill it. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- Documentation/block/biodoc.txt | 88 block/Makefile | 2 +- block/blk-core.c | 6 - block/blk-mq-debugfs.c | 2 - block/blk-mq-tag.c | 6 +- b

[PATCH 23/29] block: kill legacy parts of timeout handling

2018-10-29 Thread Jens Axboe
The only user of legacy timing now is BSG, which is invoked from the mq timeout handler. Kill the legacy code, and rename the q->rq_timed_out_fn to q->bsg_job_timeout_fn. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-core.c | 1 - block/blk-settings.c | 7 --- b

[PATCH 29/29] block: get rid of blk_queued_rq()

2018-10-29 Thread Jens Axboe
No point in hiding what this does, just open code it in the one spot where we are still using it. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.c | 2 +- include/linux/blkdev.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/block/blk-mq.c

[PATCH 05/29] blk-mq: remove the request_list usage

2018-10-29 Thread Jens Axboe
We don't do anything with it, that's just the legacy path. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.c | 5 - 1 file changed, 5 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 3f91c6e5b17a..4c82dc44d4d8 100644 --- a/block/blk-mq.c +++ b/block/b

[PATCH 28/29] blk-merge: kill dead queue lock held check

2018-10-29 Thread Jens Axboe
This is dead code, any queue reaching this part has mq_ops attached. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-merge.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/block/blk-merge.c b/block/blk-merge.c index 3561dcce2260..0128284bded4 100644 --- a/block/blk-m

[PATCH 10/29] block: remove q->lld_busy_fn()

2018-10-29 Thread Jens Axboe
Nobody is using the legacy path for blk_lld_busy() anymore, remove it. Signed-off-by: Jens Axboe --- block/blk-core.c | 2 -- block/blk-settings.c | 6 -- include/linux/blkdev.h | 3 --- 3 files changed, 11 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c index c99088d0

[PATCH 06/29] blk-mq: remove legacy check in queue blk_freeze_queue()

2018-10-29 Thread Jens Axboe
Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-mq.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 4c82dc44d4d8..a58d2d953876 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -177,8 +177,6 @@ void blk_freeze_queue(struct reques

[PATCH 07/29] blk-mq: provide mq_ops->busy() hook

2018-10-29 Thread Jens Axboe
We'll hook into this from blk_lld_busy(), allowing blk-mq to also return whether or not a given queue currently has requests in progress. Signed-off-by: Jens Axboe --- block/blk-core.c | 2 ++ include/linux/blk-mq.h | 6 ++ 2 files changed, 8 insertions(+) diff --git a/block/blk-core.

[PATCH 22/29] block: remove __blk_put_request()

2018-10-29 Thread Jens Axboe
Now there's no difference between blk_put_request() and __blk_put_request() anymore, get rid of the underscore version and convert the few callers. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-core.c | 9 - block/blk-merge.c | 2

[PATCH 08/29] scsi: provide mq_ops->busy() hook

2018-10-29 Thread Jens Axboe
Only the SCSI legacy path provides a way to check if target is currently busy, provide the same for the MQ path. Cc: linux-scsi@vger.kernel.org Signed-off-by: Jens Axboe --- drivers/scsi/scsi_lib.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/s

[PATCH 12/29] bsg: pass in desired timeout handler

2018-10-29 Thread Jens Axboe
This will ease in the conversion to blk-mq, where we can't set a timeout handler after queue init. Cc: Johannes Thumshirn Cc: linux-scsi@vger.kernel.org Reviewed-by: Hannes Reinecke Tested-by: Benjamin Block Signed-off-by: Jens Axboe --- block/bsg-lib.c | 3 ++- drivers/sc

[PATCH 16/29] blk-wbt: kill check for legacy queue type

2018-10-29 Thread Jens Axboe
Everything is blk-mq at this point, so it doesn't make any sense to have this option available as it does nothing. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/Kconfig | 6 -- block/blk-wbt.c | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/block/

[PATCH 15/29] block: remove blk_complete_request()

2018-10-29 Thread Jens Axboe
It's now unused. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-softirq.c| 20 include/linux/blkdev.h | 1 - 2 files changed, 21 deletions(-) diff --git a/block/blk-softirq.c b/block/blk-softirq.c index e47a2f751884..8ca0f6caf174 100644 --- a/blo

[PATCH 11/29] dasd: remove dead code

2018-10-29 Thread Jens Axboe
Since e443343e509a we haven't had a request_fn attached to this driver, hence any code inside an if (q->request_fn) is unreachable. Fixes: e443343e509a ("s390/dasd: blk-mq conversion") [sth: Keep and fix the dasd_info->chanq_len counter.] Reviewed-by: Hannes Reinecke Reviewed-by: Jan Hoeppner Si

[PATCH 13/29] bsg: provide bsg_remove_queue() helper

2018-10-29 Thread Jens Axboe
All drivers do unregister + cleanup, provide a helper for that. Cc: linux-scsi@vger.kernel.org Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Tested-by: Benjamin Block Signed-off-by: Jens Axboe --- block/bsg-lib.c | 9 + drivers/scsi/scsi_transport_

[PATCH 17/29] blk-cgroup: remove legacy queue bypassing

2018-10-29 Thread Jens Axboe
We only support mq devices now. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- block/blk-cgroup.c | 8 1 file changed, 8 deletions(-) diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 992da5592c6e..5f10d755ec52 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgrou

[PATCH 14/29] bsg: convert to use blk-mq

2018-10-29 Thread Jens Axboe
Requires a few changes to the FC transport class as well. Cc: linux-scsi@vger.kernel.org Reviewed-by: Johannes Thumshirn Tested-by: Benjamin Block Signed-off-by: Jens Axboe --- block/bsg-lib.c | 123 +++ drivers/scsi/scsi_transport_fc.c | 59 ++

[PATCH 02/29] ms_block: convert to blk-mq

2018-10-29 Thread Jens Axboe
Straight forward conversion, room for optimization in how everything is punted to a work queue. Also looks plenty racy all over the map, with the state changes. I fixed a bunch of them up while doing the conversion, but there are surely more. Cc: Maxim Levitsky Reviewed-by: Hannes Reinecke Signe

[PATCHSET v2 0/29] blk-mq driver conversions and legacy path removal

2018-10-29 Thread Jens Axboe
Elements of the previous series went into mainline, this is a v2 posting with those killed, series reshuffled, bugs fixed, etc. his patch series converts the remaining drivers to blk-mq. SCSI supports both paths, this removes the legacy IO path from SCSI. At the end, legacy IO code and schedulers

[PATCH 03/29] mspro_block: convert to blk-mq

2018-10-29 Thread Jens Axboe
Straight forward conversion, there's room for improvement. Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- drivers/memstick/core/mspro_block.c | 121 +++- 1 file changed, 66 insertions(+), 55 deletions(-) diff --git a/drivers/memstick/core/mspro_block.c b/dr

[PATCH 01/29] sunvdc: convert to blk-mq

2018-10-29 Thread Jens Axboe
Convert from the old request_fn style driver to blk-mq. Cc: David Miller Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe --- drivers/block/sunvdc.c | 149 +++-- 1 file changed, 98 insertions(+), 51 deletions(-) diff --git a/drivers/block/sunvdc.c b/d

Re: [PATCH 23/28] block: kill lld busy

2018-10-29 Thread Jens Axboe
On 10/29/18 9:51 AM, Mike Snitzer wrote: > On Mon, Oct 29 2018 at 10:25am -0400, > Jens Axboe wrote: > >> On 10/29/18 1:10 AM, Hannes Reinecke wrote: >>> On 10/25/18 11:10 PM, Jens Axboe wrote: Nobody sets the helper, so we always return 0. Kill it. Signed-off-by: Jens Axboe

Re: [PATCH 23/28] block: kill lld busy

2018-10-29 Thread Mike Snitzer
On Mon, Oct 29 2018 at 10:25am -0400, Jens Axboe wrote: > On 10/29/18 1:10 AM, Hannes Reinecke wrote: > > On 10/25/18 11:10 PM, Jens Axboe wrote: > >> Nobody sets the helper, so we always return 0. Kill it. > >> > >> Signed-off-by: Jens Axboe > >> --- > >> block/blk-core.c | 28 -

Re: [PATCHSET 0/28] blk-mq driver conversions and legacy path removal

2018-10-29 Thread Ming Lei
On Mon, Oct 29, 2018 at 08:50:25AM -0600, Jens Axboe wrote: > On 10/29/18 6:00 AM, Ming Lei wrote: > > On Thu, Oct 25, 2018 at 03:10:11PM -0600, Jens Axboe wrote: > >> The first round of this went into 4.20-rc, but we've still some of > >> them pending. This patch series converts the remaining driv

Re: [PATCHSET 0/28] blk-mq driver conversions and legacy path removal

2018-10-29 Thread Jens Axboe
On 10/29/18 8:50 AM, Jens Axboe wrote: > On 10/29/18 6:00 AM, Ming Lei wrote: >> On Thu, Oct 25, 2018 at 03:10:11PM -0600, Jens Axboe wrote: >>> The first round of this went into 4.20-rc, but we've still some of >>> them pending. This patch series converts the remaining drivers to >>> blk-mq. The o

Re: [PATCH 16/28] blk-cgroup: remove legacy queue bypassing

2018-10-29 Thread Jens Axboe
On 10/29/18 8:25 AM, Johannes Thumshirn wrote: > On 29/10/18 15:23, Jens Axboe wrote: >> On 10/29/18 5:00 AM, Johannes Thumshirn wrote: >>> Hi Jens, >>> >>> On 25/10/18 23:10, Jens Axboe wrote: >>> [...] @@ -1487,8 +1485,6 @@ int blkcg_activate_policy(struct request_queue *q, out_bypass_

Re: [PATCHSET 0/28] blk-mq driver conversions and legacy path removal

2018-10-29 Thread Jens Axboe
On 10/29/18 6:00 AM, Ming Lei wrote: > On Thu, Oct 25, 2018 at 03:10:11PM -0600, Jens Axboe wrote: >> The first round of this went into 4.20-rc, but we've still some of >> them pending. This patch series converts the remaining drivers to >> blk-mq. The ones that support dual paths (like SCSI and DM

  1   2   >