Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-12 Thread Tejun Heo
Hello, On Thu, Sep 11, 2014 at 02:42:49PM +0200, Alexander Gordeev wrote: > As conversion of libata to blk mq has long done I tried the change Hmmm? You mean scsi-mq? > against the recent version and the results still appear worthwhile. > > The numbers are taken by running 'dd if=/dev/sd{a,b}

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-12 Thread Tejun Heo
Hello, On Thu, Sep 11, 2014 at 02:42:49PM +0200, Alexander Gordeev wrote: As conversion of libata to blk mq has long done I tried the change Hmmm? You mean scsi-mq? against the recent version and the results still appear worthwhile. The numbers are taken by running 'dd if=/dev/sd{a,b}

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-11 Thread Bartlomiej Zolnierkiewicz
Hi, On Thursday, September 11, 2014 02:42:49 PM Alexander Gordeev wrote: > The numbers are taken by running 'dd if=/dev/sd{a,b} of=/dev/null' > in parallel. All time values are in us. > > Before this update host lock average holdtime was 2.45 and > average waittime was 1.24. After the update

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-11 Thread Alexander Gordeev
On Wed, May 22, 2013 at 08:50:03AM +0900, Tejun Heo wrote: > Hmm. I'd normally apply this patch but block layer is just > growing multi-queue support and libata is likely to be converted to mq > in foreseeable future, so I'm a bit hesitant to make irq handling more > sophiscated right now.

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-11 Thread Alexander Gordeev
On Wed, May 22, 2013 at 08:50:03AM +0900, Tejun Heo wrote: Hmm. I'd normally apply this patch but block layer is just growing multi-queue support and libata is likely to be converted to mq in foreseeable future, so I'm a bit hesitant to make irq handling more sophiscated right now.

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2014-09-11 Thread Bartlomiej Zolnierkiewicz
Hi, On Thursday, September 11, 2014 02:42:49 PM Alexander Gordeev wrote: The numbers are taken by running 'dd if=/dev/sd{a,b} of=/dev/null' in parallel. All time values are in us. Before this update host lock average holdtime was 2.45 and average waittime was 1.24. After the update

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-10-07 Thread Alexander Gordeev
On Thu, Oct 03, 2013 at 04:06:51AM -0700, Christoph Hellwig wrote: > On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: > > What about the attached only compile tested patch. The patch has the mq > > block code work like the non mq code for bio cleanups. > > > > > > > blk-mq: blk-mq

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-10-07 Thread Alexander Gordeev
On Thu, Oct 03, 2013 at 04:06:51AM -0700, Christoph Hellwig wrote: On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: What about the attached only compile tested patch. The patch has the mq block code work like the non mq code for bio cleanups. blk-mq: blk-mq should free

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-10-03 Thread Christoph Hellwig
On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: > What about the attached only compile tested patch. The patch has the mq > block code work like the non mq code for bio cleanups. > > > blk-mq: blk-mq should free bios in pass through case > > For non mq calls, the block layer

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-10-03 Thread Christoph Hellwig
On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: What about the attached only compile tested patch. The patch has the mq block code work like the non mq code for bio cleanups. blk-mq: blk-mq should free bios in pass through case For non mq calls, the block layer will free

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-09-20 Thread Nicholas A. Bellinger
Hi Alexander! Apologies for the long delay on this follow-up.. Comments below. On Fri, 2013-09-20 at 17:19 +0200, Alexander Gordeev wrote: > On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: > > Ok, here's a bit better idea of what is going on now.. > > > > The problem is

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-09-20 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: > Ok, here's a bit better idea of what is going on now.. > > The problem is that blkdev_issue_flush() -> blk_mq_make_request() -> > __blk_mq_alloc_request() allocates the first tag, which calls > blk_insert_flush() ->

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-09-20 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: Ok, here's a bit better idea of what is going on now.. The problem is that blkdev_issue_flush() - blk_mq_make_request() - __blk_mq_alloc_request() allocates the first tag, which calls blk_insert_flush() -

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-09-20 Thread Nicholas A. Bellinger
Hi Alexander! Apologies for the long delay on this follow-up.. Comments below. On Fri, 2013-09-20 at 17:19 +0200, Alexander Gordeev wrote: On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: Ok, here's a bit better idea of what is going on now.. The problem is that

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-28 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: > Anyways, before digging further into reserved tags logic, Jens, what are > your thoughts for addressing this special queue_depth=1 case for libata > + the like..? Hi Jens, Have some comments? -- Regards, Alexander Gordeev

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-28 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: Anyways, before digging further into reserved tags logic, Jens, what are your thoughts for addressing this special queue_depth=1 case for libata + the like..? Hi Jens, Have some comments? -- Regards, Alexander Gordeev

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-16 Thread Nicholas A. Bellinger
On Fri, 2013-08-16 at 18:41 +0200, Alexander Gordeev wrote: > On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: > > I'm playing with a patch to do this, but am currently getting hung-up on > > what appear to be some separate blk-mq reserved_tags > 0 bugs, the first > > of

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-16 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: > I'm playing with a patch to do this, but am currently getting hung-up on > what appear to be some separate blk-mq reserved_tags > 0 bugs, the first > of which is passing queue_depth=1 + reserved_tags=1 is broken, and >

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-16 Thread Alexander Gordeev
On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: I'm playing with a patch to do this, but am currently getting hung-up on what appear to be some separate blk-mq reserved_tags 0 bugs, the first of which is passing queue_depth=1 + reserved_tags=1 is broken, and results in

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-16 Thread Nicholas A. Bellinger
On Fri, 2013-08-16 at 18:41 +0200, Alexander Gordeev wrote: On Thu, Aug 15, 2013 at 07:19:29PM -0700, Nicholas A. Bellinger wrote: I'm playing with a patch to do this, but am currently getting hung-up on what appear to be some separate blk-mq reserved_tags 0 bugs, the first of which is

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-15 Thread Nicholas A. Bellinger
On Thu, 2013-08-15 at 18:23 +0200, Alexander Gordeev wrote: > On Fri, Aug 09, 2013 at 01:17:37PM -0700, Nicholas A. Bellinger wrote: > > On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: > > Mmmm, I'm able to reproduce over here with ahci + scsi-mq, and it > > appears to be a bug related

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-15 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 01:17:37PM -0700, Nicholas A. Bellinger wrote: > On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: > Mmmm, I'm able to reproduce over here with ahci + scsi-mq, and it > appears to be a bug related with using sdev->sdev_md_req.queue_depth=1, > that ends up causing

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-15 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 01:17:37PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: Mmmm, I'm able to reproduce over here with ahci + scsi-mq, and it appears to be a bug related with using sdev-sdev_md_req.queue_depth=1, that ends up causing the

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-15 Thread Nicholas A. Bellinger
On Thu, 2013-08-15 at 18:23 +0200, Alexander Gordeev wrote: On Fri, Aug 09, 2013 at 01:17:37PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: Mmmm, I'm able to reproduce over here with ahci + scsi-mq, and it appears to be a bug related with

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-12 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 11:07:37AM -0600, Jens Axboe wrote: > You don't have to resubmit, I'll get it reviewed and applied today. Hi Jens, I limited the minimal queue depth to 4, which is apparently wrong in case of libata. I will post a new series. > -- > Jens Axboe > -- Regards, Alexander

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-12 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 11:07:37AM -0600, Jens Axboe wrote: You don't have to resubmit, I'll get it reviewed and applied today. Hi Jens, I limited the minimal queue depth to 4, which is apparently wrong in case of libata. I will post a new series. -- Jens Axboe -- Regards, Alexander

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Nicholas A. Bellinger
On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: > On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: > > What about the attached only compile tested patch. The patch has the mq > > block code work like the non mq code for bio cleanups. > > Not sure if it is related to the

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: > What about the attached only compile tested patch. The patch has the mq > block code work like the non mq code for bio cleanups. Not sure if it is related to the patch or not, but it never returns from wait_for_completion_io() in

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 10:46 AM, Alexander Gordeev wrote: > On Fri, Aug 09, 2013 at 09:52:19AM -0600, Jens Axboe wrote: >> On 08/09/2013 09:07 AM, Alexander Gordeev wrote: >>> diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c >>> index dcbc2a4..b131a48 100644 >>> --- a/block/blk-mq-tag.c >>> +++

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 09:52:19AM -0600, Jens Axboe wrote: > On 08/09/2013 09:07 AM, Alexander Gordeev wrote: > > diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c > > index dcbc2a4..b131a48 100644 > > --- a/block/blk-mq-tag.c > > +++ b/block/blk-mq-tag.c > > @@ -468,10 +468,9 @@ struct

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 09:07 AM, Alexander Gordeev wrote: > On Fri, Aug 09, 2013 at 08:24:38AM -0600, Jens Axboe wrote: >> On 08/09/2013 02:23 AM, Alexander Gordeev wrote: >>> + ap->qc_tags = blk_mq_init_tags(ATA_MAX_QUEUE, 1, NUMA_NO_NODE); >>> + if (!ap->qc_tags) { >>> + kfree(ap); >>> +

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 08:24:38AM -0600, Jens Axboe wrote: > On 08/09/2013 02:23 AM, Alexander Gordeev wrote: > > + ap->qc_tags = blk_mq_init_tags(ATA_MAX_QUEUE, 1, NUMA_NO_NODE); > > + if (!ap->qc_tags) { > > + kfree(ap); > > + return NULL; > > + } > > This should be

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 02:23 AM, Alexander Gordeev wrote: > On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: >> One thing which would probably be worthwhile tho is getting rid of the >> bitmap based qc tag allocator in libata. That one is just borderline >> stupid to keep around on any setup

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Tejun Heo
On Fri, Aug 09, 2013 at 10:23:35AM +0200, Alexander Gordeev wrote: > On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: > > One thing which would probably be worthwhile tho is getting rid of the > > bitmap based qc tag allocator in libata. That one is just borderline > > stupid to keep

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: > One thing which would probably be worthwhile tho is getting rid of the > bitmap based qc tag allocator in libata. That one is just borderline > stupid to keep around on any setup which is supposed to be scalable. Hi Tejun, How about

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: One thing which would probably be worthwhile tho is getting rid of the bitmap based qc tag allocator in libata. That one is just borderline stupid to keep around on any setup which is supposed to be scalable. Hi Tejun, How about this

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Tejun Heo
On Fri, Aug 09, 2013 at 10:23:35AM +0200, Alexander Gordeev wrote: On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: One thing which would probably be worthwhile tho is getting rid of the bitmap based qc tag allocator in libata. That one is just borderline stupid to keep around on

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 02:23 AM, Alexander Gordeev wrote: On Mon, Jul 29, 2013 at 07:46:53AM -0400, Tejun Heo wrote: One thing which would probably be worthwhile tho is getting rid of the bitmap based qc tag allocator in libata. That one is just borderline stupid to keep around on any setup which is

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 08:24:38AM -0600, Jens Axboe wrote: On 08/09/2013 02:23 AM, Alexander Gordeev wrote: + ap-qc_tags = blk_mq_init_tags(ATA_MAX_QUEUE, 1, NUMA_NO_NODE); + if (!ap-qc_tags) { + kfree(ap); + return NULL; + } This should be

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 09:07 AM, Alexander Gordeev wrote: On Fri, Aug 09, 2013 at 08:24:38AM -0600, Jens Axboe wrote: On 08/09/2013 02:23 AM, Alexander Gordeev wrote: + ap-qc_tags = blk_mq_init_tags(ATA_MAX_QUEUE, 1, NUMA_NO_NODE); + if (!ap-qc_tags) { + kfree(ap); + return

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Fri, Aug 09, 2013 at 09:52:19AM -0600, Jens Axboe wrote: On 08/09/2013 09:07 AM, Alexander Gordeev wrote: diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index dcbc2a4..b131a48 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -468,10 +468,9 @@ struct blk_mq_tags

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Jens Axboe
On 08/09/2013 10:46 AM, Alexander Gordeev wrote: On Fri, Aug 09, 2013 at 09:52:19AM -0600, Jens Axboe wrote: On 08/09/2013 09:07 AM, Alexander Gordeev wrote: diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index dcbc2a4..b131a48 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Alexander Gordeev
On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: What about the attached only compile tested patch. The patch has the mq block code work like the non mq code for bio cleanups. Not sure if it is related to the patch or not, but it never returns from wait_for_completion_io(wait) in

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-08-09 Thread Nicholas A. Bellinger
On Fri, 2013-08-09 at 21:15 +0200, Alexander Gordeev wrote: On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote: What about the attached only compile tested patch. The patch has the mq block code work like the non mq code for bio cleanups. Not sure if it is related to the patch

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-31 Thread Alexander Gordeev
On Thu, Jul 25, 2013 at 12:16:41PM +0200, Alexander Gordeev wrote: > On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: > > Np. FYI, you'll want to use the latest commit e7827b351 HEAD from > > target-pending/scsi-mq, which now has functioning scsi-generic support. > >

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-31 Thread Tejun Heo
Hello, On Tue, Jul 30, 2013 at 09:16:02PM -0700, Marc C wrote: > >> One thing which would probably be worthwhile tho is getting rid of the > >> bitmap based qc tag allocator in libata. That one is just borderline > >> stupid to keep around on any setup which is supposed to be scalable. > > Your

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-31 Thread Tejun Heo
Hello, On Tue, Jul 30, 2013 at 09:16:02PM -0700, Marc C wrote: One thing which would probably be worthwhile tho is getting rid of the bitmap based qc tag allocator in libata. That one is just borderline stupid to keep around on any setup which is supposed to be scalable. Your border

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-31 Thread Alexander Gordeev
On Thu, Jul 25, 2013 at 12:16:41PM +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD from target-pending/scsi-mq, which now has functioning scsi-generic support. Survives a

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-30 Thread Marc C
>> One thing which would probably be worthwhile tho is getting rid of the >> bitmap based qc tag allocator in libata. That one is just borderline >> stupid to keep around on any setup which is supposed to be scalable. > Your border might be wider than mine :-). Yes, the bitmap should > definitely

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-30 Thread Marc C
One thing which would probably be worthwhile tho is getting rid of the bitmap based qc tag allocator in libata. That one is just borderline stupid to keep around on any setup which is supposed to be scalable. Your border might be wider than mine :-). Yes, the bitmap should definitely go. A

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Nicholas A. Bellinger
On Mon, 2013-07-29 at 13:18 +0200, Alexander Gordeev wrote: > On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: > > On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: > I also tried to make a "quick" conversion and hit the same issue(s) as you. > Generally, I

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Nicholas A. Bellinger
On Mon, 2013-07-29 at 07:50 -0400, Tejun Heo wrote: > Yo, > > On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: > > Considering there can be more than a single ata_device hanging off each > > ata_port, the '*sdev = ap->link.device[0].sdev' in __ata_qc_from_tag() > > is

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Jens Axboe
On 07/29/2013 05:18 AM, Alexander Gordeev wrote: >> -static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap) >> +static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap, >> +struct scsi_cmnd *sc) >> { >> struct ata_queued_cmd *qc = NULL;

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Jens Axboe
On 07/29/2013 05:46 AM, Tejun Heo wrote: > Hello, > > On Fri, Jul 26, 2013 at 02:14:36PM -0700, Nicholas A. Bellinger wrote: >> So I don't think (completely) getting rid of ata_port->qcmds[] will be >> possible, and just converting the ata_scsi_queuecmd() path to use the >> extra SHT->cmd_size

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Tejun Heo
Yo, On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: > Considering there can be more than a single ata_device hanging off each > ata_port, the '*sdev = ap->link.device[0].sdev' in __ata_qc_from_tag() > is definitely bogus, but I'm not sure how else to correlate >

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Tejun Heo
Hello, On Fri, Jul 26, 2013 at 02:14:36PM -0700, Nicholas A. Bellinger wrote: > So I don't think (completely) getting rid of ata_port->qcmds[] will be > possible, and just converting the ata_scsi_queuecmd() path to use the > extra SHT->cmd_size pre-allocation for *ata_queued_cmd might end up >

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Alexander Gordeev
On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: > On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: > > On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: > > > On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: > > > > On Thu, 2013-07-25 at 12:16 +0200,

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Hannes Reinecke
On 07/26/2013 04:09 AM, Jens Axboe wrote: > On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: >> On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: >>> On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Hannes Reinecke
On 07/26/2013 04:09 AM, Jens Axboe wrote: On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD from

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Alexander Gordeev
On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 12:16 +0200, Alexander

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Tejun Heo
Hello, On Fri, Jul 26, 2013 at 02:14:36PM -0700, Nicholas A. Bellinger wrote: So I don't think (completely) getting rid of ata_port-qcmds[] will be possible, and just converting the ata_scsi_queuecmd() path to use the extra SHT-cmd_size pre-allocation for *ata_queued_cmd might end up being

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Tejun Heo
Yo, On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: Considering there can be more than a single ata_device hanging off each ata_port, the '*sdev = ap-link.device[0].sdev' in __ata_qc_from_tag() is definitely bogus, but I'm not sure how else to correlate blk-mq/scsi-mq

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Jens Axboe
On 07/29/2013 05:46 AM, Tejun Heo wrote: Hello, On Fri, Jul 26, 2013 at 02:14:36PM -0700, Nicholas A. Bellinger wrote: So I don't think (completely) getting rid of ata_port-qcmds[] will be possible, and just converting the ata_scsi_queuecmd() path to use the extra SHT-cmd_size

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Jens Axboe
On 07/29/2013 05:18 AM, Alexander Gordeev wrote: -static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap) +static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap, +struct scsi_cmnd *sc) { struct ata_queued_cmd *qc = NULL; -

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Nicholas A. Bellinger
On Mon, 2013-07-29 at 07:50 -0400, Tejun Heo wrote: Yo, On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: Considering there can be more than a single ata_device hanging off each ata_port, the '*sdev = ap-link.device[0].sdev' in __ata_qc_from_tag() is definitely

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-29 Thread Nicholas A. Bellinger
On Mon, 2013-07-29 at 13:18 +0200, Alexander Gordeev wrote: On Fri, Jul 26, 2013 at 05:43:13PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: SNIP I also tried to make a quick conversion and hit the same issue(s) as you. Generally, I am

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-26 Thread Nicholas A. Bellinger
On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: > On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: > > On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: > > > On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: > > > > On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-26 Thread Nicholas A. Bellinger
On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: > On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: > > On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: > > > On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: > > > > Np. FYI, you'll want to use the latest

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-26 Thread Nicholas A. Bellinger
On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-26 Thread Nicholas A. Bellinger
On Fri, 2013-07-26 at 14:14 -0700, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 20:09 -0600, Jens Axboe wrote: On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A.

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Jens Axboe
On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: > On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: > > On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: > > > Np. FYI, you'll want to use the latest commit e7827b351 HEAD from > > > target-pending/scsi-mq, which

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Nicholas A. Bellinger
On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: > On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: > > Np. FYI, you'll want to use the latest commit e7827b351 HEAD from > > target-pending/scsi-mq, which now has functioning scsi-generic support. > > Survives a

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Alexander Gordeev
On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: > Np. FYI, you'll want to use the latest commit e7827b351 HEAD from > target-pending/scsi-mq, which now has functioning scsi-generic support. Survives a boot, a kernel build and the build's result :) -- Regards, Alexander

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Alexander Gordeev
On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD from target-pending/scsi-mq, which now has functioning scsi-generic support. Survives a boot, a kernel build and the build's result :) -- Regards, Alexander

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Nicholas A. Bellinger
On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD from target-pending/scsi-mq, which now has functioning scsi-generic support. Survives a boot, a

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-25 Thread Jens Axboe
On Thu, Jul 25 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-25 at 12:16 +0200, Alexander Gordeev wrote: On Mon, Jul 22, 2013 at 02:10:36PM -0700, Nicholas A. Bellinger wrote: Np. FYI, you'll want to use the latest commit e7827b351 HEAD from target-pending/scsi-mq, which now has

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-22 Thread Nicholas A. Bellinger
On Mon, 2013-07-22 at 17:03 +0200, Alexander Gordeev wrote: > On Fri, Jul 19, 2013 at 09:56:02PM -0700, Nicholas A. Bellinger wrote: > > On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: > > OK, after further investigation the root cause is a actually a missing > > bio->bio_end_io()

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-22 Thread Alexander Gordeev
On Fri, Jul 19, 2013 at 09:56:02PM -0700, Nicholas A. Bellinger wrote: > On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: > OK, after further investigation the root cause is a actually a missing > bio->bio_end_io() -> bio_copy_kern_endio() -> bio_put() from the > blk_end_sync_rq()

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-22 Thread Alexander Gordeev
On Fri, Jul 19, 2013 at 09:56:02PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: OK, after further investigation the root cause is a actually a missing bio-bio_end_io() - bio_copy_kern_endio() - bio_put() from the blk_end_sync_rq() callback

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-22 Thread Nicholas A. Bellinger
On Mon, 2013-07-22 at 17:03 +0200, Alexander Gordeev wrote: On Fri, Jul 19, 2013 at 09:56:02PM -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: OK, after further investigation the root cause is a actually a missing bio-bio_end_io() -

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Jens Axboe
On Sat, Jul 20 2013, Mike Christie wrote: > blk-mq: blk-mq should free bios in pass through case > > For non mq calls, the block layer will free the bios when > blk_finish_request is called. > > For mq calls, the blk mq code wants the caller to do this. > > This patch has the blk mq code work

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Nicholas A. Bellinger
On Sat, 2013-07-20 at 09:48 -0500, Mike Christie wrote: > On 07/19/2013 11:56 PM, Nicholas A. Bellinger wrote: > > On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: > >> On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: > >> > >> Indeed. Looking into the bio_copy_kern()

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Mike Christie
On 07/19/2013 11:56 PM, Nicholas A. Bellinger wrote: > On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: >> On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: >>> On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: diff --git a/drivers/ata/libata-scsi.c

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Mike Christie
On 07/19/2013 11:56 PM, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: diff --git a/drivers/ata/libata-scsi.c

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Nicholas A. Bellinger
On Sat, 2013-07-20 at 09:48 -0500, Mike Christie wrote: On 07/19/2013 11:56 PM, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: SNIP Indeed. Looking into the bio_copy_kern() breakage

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-20 Thread Jens Axboe
On Sat, Jul 20 2013, Mike Christie wrote: blk-mq: blk-mq should free bios in pass through case For non mq calls, the block layer will free the bios when blk_finish_request is called. For mq calls, the blk mq code wants the caller to do this. This patch has the blk mq code work like the

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: > On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: > > On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: > > > diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c > > > index 0101af5..191bc15

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: > On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: > > diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c > > index 0101af5..191bc15 100644 > > --- a/drivers/ata/libata-scsi.c > > +++

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 09:58 -0600, Mike Christie wrote: > On 07/18/2013 06:23 PM, Nicholas A. Bellinger wrote: > >> Just saw this while trying out iscsi with the scsi-mq stuff :) > >> > > > Took at stab at this a while back, but ended getting distracted on other > > items. Do you have an initial

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Mike Christie
On 07/18/2013 06:23 PM, Nicholas A. Bellinger wrote: >> Just saw this while trying out iscsi with the scsi-mq stuff :) >> > > Took at stab at this a while back, but ended getting distracted on other > items. Do you have an initial conversion running yet..? Not running well :) Have a patch but I

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread James Bottomley
On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: > diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c > index 0101af5..191bc15 100644 > --- a/drivers/ata/libata-scsi.c > +++ b/drivers/ata/libata-scsi.c > @@ -1144,7 +1144,11 @@ static int ata_scsi_dev_config(struct

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Thu, 2013-07-18 at 18:03 -0700, Nicholas A. Bellinger wrote: > On Thu, 2013-07-18 at 18:30 -0600, Jens Axboe wrote: > > On Thu, Jul 18 2013, Nicholas A. Bellinger wrote: > > > On Thu, 2013-07-18 at 13:12 -0600, Mike Christie wrote: > > > > On 07/18/2013 12:51 PM, Nicholas A. Bellinger wrote:

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Thu, 2013-07-18 at 18:03 -0700, Nicholas A. Bellinger wrote: On Thu, 2013-07-18 at 18:30 -0600, Jens Axboe wrote: On Thu, Jul 18 2013, Nicholas A. Bellinger wrote: On Thu, 2013-07-18 at 13:12 -0600, Mike Christie wrote: On 07/18/2013 12:51 PM, Nicholas A. Bellinger wrote: SNIP

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread James Bottomley
On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 0101af5..191bc15 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@ -1144,7 +1144,11 @@ static int ata_scsi_dev_config(struct

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Mike Christie
On 07/18/2013 06:23 PM, Nicholas A. Bellinger wrote: Just saw this while trying out iscsi with the scsi-mq stuff :) Took at stab at this a while back, but ended getting distracted on other items. Do you have an initial conversion running yet..? Not running well :) Have a patch but I am

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 09:58 -0600, Mike Christie wrote: On 07/18/2013 06:23 PM, Nicholas A. Bellinger wrote: Just saw this while trying out iscsi with the scsi-mq stuff :) Took at stab at this a while back, but ended getting distracted on other items. Do you have an initial conversion

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 0101af5..191bc15 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c @@

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-19 Thread Nicholas A. Bellinger
On Fri, 2013-07-19 at 14:01 -0700, Nicholas A. Bellinger wrote: On Fri, 2013-07-19 at 08:33 -0700, James Bottomley wrote: On Thu, 2013-07-18 at 23:34 -0700, Nicholas A. Bellinger wrote: diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 0101af5..191bc15 100644 ---

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-18 Thread Nicholas A. Bellinger
On Thu, 2013-07-18 at 18:30 -0600, Jens Axboe wrote: > On Thu, Jul 18 2013, Nicholas A. Bellinger wrote: > > On Thu, 2013-07-18 at 13:12 -0600, Mike Christie wrote: > > > On 07/18/2013 12:51 PM, Nicholas A. Bellinger wrote: > > > > On Wed, 2013-07-17 at 18:19 +0200, Alexander Gordeev wrote: > > >

Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing

2013-07-18 Thread Jens Axboe
On Thu, Jul 18 2013, Nicholas A. Bellinger wrote: > On Thu, 2013-07-18 at 13:12 -0600, Mike Christie wrote: > > On 07/18/2013 12:51 PM, Nicholas A. Bellinger wrote: > > > On Wed, 2013-07-17 at 18:19 +0200, Alexander Gordeev wrote: > > >> On Tue, Jul 16, 2013 at 02:38:03PM -0700, Nicholas A.

  1   2   >