Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-08 Thread Christoph Hellwig
What we really nee to do is to always set the NOWAIT flag (we have a reserved tag for connect anyway), and thus never trigger the code deep down in bt_get that might switch to a different hctx. Below is the version that I've tested together with the NVMe change to use the NOWAIT flag: --- >From 2

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-08 Thread Christoph Hellwig
On Tue, Jun 07, 2016 at 10:49:22PM -0600, Jens Axboe wrote: > Why are we duplicating this code here? If NOWAIT isn't set, then we'll > always return a request. bt_get() will run the queue for us, if it needs > to. blk_mq_alloc_request() does this too, and I'm guessing that code was > just copied. I

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-07 Thread Ming Lin
On Tue, 2016-06-07 at 22:49 -0600, Jens Axboe wrote: > On 06/06/2016 03:21 PM, Christoph Hellwig wrote: > > From: Ming Lin > > > > For some protocols like NVMe over Fabrics we need to be able to > > send > > initialization commands to a specific queue. > > > > Based on an earlier patch from Chri

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-07 Thread Jens Axboe
On 06/06/2016 03:21 PM, Christoph Hellwig wrote: From: Ming Lin For some protocols like NVMe over Fabrics we need to be able to send initialization commands to a specific queue. Based on an earlier patch from Christoph Hellwig . Signed-off-by: Ming Lin Signed-off-by: Christoph Hellwig ---

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-07 Thread Ming Lin
On Tue, Jun 7, 2016 at 8:27 AM, Ming Lin wrote: > On Tue, Jun 7, 2016 at 7:57 AM, Keith Busch wrote: >> On Mon, Jun 06, 2016 at 11:21:52PM +0200, Christoph Hellwig wrote: >>> +struct request *blk_mq_alloc_request_hctx(struct request_queue *q, int rw, >>> + unsigned int flags, unsigned

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-07 Thread Ming Lin
On Tue, Jun 7, 2016 at 7:57 AM, Keith Busch wrote: > On Mon, Jun 06, 2016 at 11:21:52PM +0200, Christoph Hellwig wrote: >> +struct request *blk_mq_alloc_request_hctx(struct request_queue *q, int rw, >> + unsigned int flags, unsigned int hctx_idx) >> +{ >> + struct blk_mq_hw_ctx *hc

Re: [PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-07 Thread Keith Busch
On Mon, Jun 06, 2016 at 11:21:52PM +0200, Christoph Hellwig wrote: > +struct request *blk_mq_alloc_request_hctx(struct request_queue *q, int rw, > + unsigned int flags, unsigned int hctx_idx) > +{ > + struct blk_mq_hw_ctx *hctx; > + struct blk_mq_ctx *ctx; > + struct request

[PATCH 1/8] blk-mq: add blk_mq_alloc_request_hctx

2016-06-06 Thread Christoph Hellwig
From: Ming Lin For some protocols like NVMe over Fabrics we need to be able to send initialization commands to a specific queue. Based on an earlier patch from Christoph Hellwig . Signed-off-by: Ming Lin Signed-off-by: Christoph Hellwig --- block/blk-mq.c | 33 +++