All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jens Axboe <axboe@kernel.dk>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/5] [PATCH 2/5] revert: "blk-mq: blk-mq should free bios in pass through case"
Date: Sat, 05 Oct 2013 15:20:05 -0500	[thread overview]
Message-ID: <52507475.3050305@cs.wisc.edu> (raw)
In-Reply-To: <20131005105008.GA19022@infradead.org>

On 10/05/2013 05:50 AM, Christoph Hellwig wrote:
> On Fri, Oct 04, 2013 at 12:39:33PM -0500, Mike Christie wrote:
>> Sorry, messed up function name. I meant blk_end_request*.
>>
>> For blk_execute_rq_nowait/blk_execute_rq and normal request use, the
>> lower levels free the bios as they are completed by one of the
>> blk_finish_request* calls. The caller of of
>> blk_execute_rq_nowait/blk_execute_rq does not have to worry about
>> freeing bios. It just frees the request when it is done with it.
> 
> Are you talking about bios or requests?  All these functions deal with
> requests, so the talk of bios really confuses me.

The functions take in requests as the argument, but they end up
operating on bios too. The scsi layer does
scsi_io_completion->scsi_end_request-> blk_end_request ->
blk_end_bidi_request -> blk_update_bidi_request -> blk_update_request.
That function will then complete bios on the request passed in. It does
not matter if the request is a REQ_TYPE_FS or REQ_TYPE_BLOCK_PC.

With my patch I was trying to make the block layer do the same for mq
REQ_TYPE_BLOCK_PC requests inserted into the queue with
blk_execute_rq_nowait (Nick's patch had support for something like that)
by having the block mq layer call blk_mq_finish_request instead of
making the code that calls blk_execute_rq_nowait do it.


> 
> That beeing said the old ones all require the caller to free the
> request, and complicate that with the useless refcounting that my patch
> 3 removes.  Take a look at the other patches how all the calling
> conventions can be nicely unified.

I agree. I like them. I am saying though it could be better because even
with your patches the rq->end_io functions need to have the mq_ops check
like the flush_end_io does. If my patch worked as intended we would have
your improvements and we would not need the rq->end_io functions to have
that check and call blk_mq_finish_request because the blk mq layer was
doing it for them.

That is all I am saying. I would like to be able to remove that check
and blk_mq_finish_request call from the rq->end_io callouts.

  reply	other threads:[~2013-10-05 20:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-04 13:49 [PATCH 0/5] blk-mq fixes and improvements Christoph Hellwig
2013-10-04 13:49 ` [PATCH 1/5] [PATCH 1/5] percpu_counter: fix irq restore in __percpu_counter_add Christoph Hellwig
2013-10-04 13:49 ` [PATCH 2/5] [PATCH 2/5] revert: "blk-mq: blk-mq should free bios in pass through case" Christoph Hellwig
2013-10-04 17:39   ` Mike Christie
2013-10-05 10:50     ` Christoph Hellwig
2013-10-05 20:20       ` Mike Christie [this message]
2013-10-06 15:02         ` Christoph Hellwig
2013-10-04 13:49 ` [PATCH 3/5] [PATCH 3/5] block: remove request ref_count Christoph Hellwig
2013-10-04 13:49 ` [PATCH 4/5] [PATCH 4/5] block: make blk_get/put_request work for blk-mq drivers Christoph Hellwig
2013-10-04 13:49 ` [PATCH 5/5] [PATCH 5/5] block: use blk-exec.c infrastructure for blk-mq Christoph Hellwig
2013-10-04 21:19 ` [PATCH 0/5] blk-mq fixes and improvements Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52507475.3050305@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.