All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Tejun Heo <tj@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-ide@vger.kernel.org, rusty@rustcorp.com.au,
	James.Bottomley@HansenPartnership.com, mike.miller@hp.com,
	donari75@gmail.com, paul.clements@steeleye.com, tim@cyberelk.net,
	Geert.Uytterhoeven@sonycom.com, davem@davemloft.net,
	Laurent@lvivier.info, jgarzik@pobox.com, jeremy@xensource.com,
	grant.likely@secretlab.ca, adrian@mcmen.demon.co.uk,
	sfr@canb.auug.org.au, bzolnier@gmail.com,
	petkovbb@googlemail.com, sshtylyov@ru.mvista.com,
	oakad@yahoo.com, drzeus@drzeus.cx, dwmw2@infradead.org,
	Markus.Lidel@shadowconnect.com, wein@de.ibm.com,
	schwidefsky@de.ibm.com, zaitcev@redhat.com,
	fujita.tomonori@lab.ntt.co.jp
Subject: Re: [GIT PATCH] block: unify request processing model and implement peek/fetch
Date: Mon, 11 May 2009 09:52:53 +0200	[thread overview]
Message-ID: <20090511075253.GH4694@kernel.dk> (raw)
In-Reply-To: <1241751256-17435-1-git-send-email-tj@kernel.org>

On Fri, May 08 2009, Tejun Heo wrote:
> Hello,
> 
> Upon ack, please pull from the following git tree.
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git block-peek-fetch
> 
> Block layer has allowed two different models of request processing.
> elv_next_request() is used to peek at the top of the queue, after
> peeking, a LLD could start processing it immediately or dequeue and
> then start processing.
> 
> The non-dequeuing behavior is mostly useful for simpler device drivers
> (usually PIO based) which process requests on segment basis.  By using
> the block layer queue tip as the current request pointer, they don't
> have to care about request boundaries and just process things
> segment-by-segment.
> 
> However, this dual mode of operations complicates and ambiguates block
> layer API.  Block layer can't tell whether a request has begun
> processing or not in deterministic manner.  This makes accounting
> inaccurate and implementing high level features in block layer
> difficult.  For example, it isn't clear when a block layer timeout
> timer should be started or how queue queiscing for EH should be
> implemented.  Even when problems can be worked aroudn, it makes the
> implementation fragile.
> 
> Although allowing llds ignore request boundaries makes things simpler
> for certain drivers, the number of drivers benefit form it aren't too
> many and driver stacks which are even mildly complex have to deal with
> request boundaries anyway.  Also, the benefit itself isn't that
> significant.  In most cases, it is just another way of doing things
> rather than the definitively better way.  IOW, if there were no such
> alternative, nobody would have missed it.
> 
> This patchset converts all block layer llds to dequeuing model and
> then clean up API to simplify a bit and enforce dequeueing model.
> This patchset contains the following patches.

Glad this finally got completed, thanks a lot Tejun! Applied.

-- 
Jens Axboe


      parent reply	other threads:[~2009-05-11  7:52 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-08  2:53 [GIT PATCH] block: unify request processing model and implement peek/fetch Tejun Heo
2009-05-08  2:53 ` Tejun Heo
2009-05-08  2:53 ` [PATCH 01/18] ide: dequeue in-flight request Tejun Heo
2009-05-08  2:53   ` Tejun Heo
2009-05-09  6:56   ` Borislav Petkov
2009-05-09 15:58   ` Bartlomiej Zolnierkiewicz
2009-05-08  2:54 ` [PATCH 02/18] mg_disk: fix queue hang / infinite retry on !fs requests Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 03/18] mg_disk: dequeue and track in-flight request Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 04/18] hd: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 05/18] ataflop: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 06/18] swim3: dequeue " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 07/18] xsysace: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 08/18] paride: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 09/18] ps3disk: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 10/18] amiflop: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 11/18] swim: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-16 13:42   ` Sergei Shtylyov
2009-05-16 14:37     ` Tejun Heo
2009-05-16 19:56       ` Sergei Shtylyov
2009-05-16 22:18         ` Tejun Heo
2009-05-08  2:54 ` [PATCH 12/18] xd: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 13/18] mtd_blkdevs: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 14/18] jsflash: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 15/18] z2ram: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-16 12:54   ` Sergei Shtylyov
2009-05-16 19:58     ` Sergei Shtylyov
2009-05-08  2:54 ` [PATCH 16/18] gdrom: " Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08 19:53   ` Adrian McMenamin
2009-05-08 23:43     ` Tejun Heo
2009-05-08  2:54 ` [PATCH 17/18] block: convert to dequeueing model (easy ones) Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-08  2:54 ` [PATCH 18/18] block: implement and enforce request peek/start/fetch Tejun Heo
2009-05-08  2:54   ` Tejun Heo
2009-05-10 21:52   ` Bartlomiej Zolnierkiewicz
2009-05-10 11:28 ` [GIT PATCH] block: unify request processing model and implement peek/fetch Tejun Heo
2009-05-10 11:28   ` Tejun Heo
2009-05-11  7:52 ` Jens Axboe [this message]

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=20090511075253.GH4694@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=Geert.Uytterhoeven@sonycom.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=Laurent@lvivier.info \
    --cc=Markus.Lidel@shadowconnect.com \
    --cc=adrian@mcmen.demon.co.uk \
    --cc=bzolnier@gmail.com \
    --cc=davem@davemloft.net \
    --cc=donari75@gmail.com \
    --cc=drzeus@drzeus.cx \
    --cc=dwmw2@infradead.org \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=grant.likely@secretlab.ca \
    --cc=jeremy@xensource.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mike.miller@hp.com \
    --cc=oakad@yahoo.com \
    --cc=paul.clements@steeleye.com \
    --cc=petkovbb@googlemail.com \
    --cc=rusty@rustcorp.com.au \
    --cc=schwidefsky@de.ibm.com \
    --cc=sfr@canb.auug.org.au \
    --cc=sshtylyov@ru.mvista.com \
    --cc=tim@cyberelk.net \
    --cc=tj@kernel.org \
    --cc=wein@de.ibm.com \
    --cc=zaitcev@redhat.com \
    /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.