All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: Alex Dubov <oakad@yahoo.com>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: can block drivers get non-fs requests?
Date: Thu, 14 Aug 2008 13:42:09 +0200	[thread overview]
Message-ID: <20080814114209.GB20055@kernel.dk> (raw)
In-Reply-To: <20080814133810.746751cf@mjolnir.drzeus.cx>

On Thu, Aug 14 2008, Pierre Ossman wrote:
> Hi Jens,
> 
> There is one part of the block layer I'm having trouble completely
> understanding (well there are loads really, but right now there's one in
> particular :)):
> 
> Do block drivers need to watch out for requests that aren't "normal"
> reads and writes? The MMC block driver has a funky prepare function
> that checks for FS and PC requests and discards anything else. I
> believe this is wrong in two regards:

You should check in the driver whether the request type is supported. So
if you can only handle fs requests, you should do a check for
!blk_fs_request() after elv_next_request() and call
end_(de)queued_request() appropriately.

> a) PC requests seem to be prepared SCSI cmds, and the MMC driver just
> expects normal transfer requests. Therefore, such requests should not
> be accepted by this driver.

Yes, that is correct. A PC request is essentially a SCSI command sent
directly.

> b) The block layer won't throw weird stuff at us unless explicitly told
> so. I.e. a normal block queue will only produce normal FS requests.

Normal IO activity will only produce fs requests. However, if someone
uses eg SG_IO on your block device, you will be sent pc requests. There
are no checks for this, it is left to the driver.

-- 
Jens Axboe


  reply	other threads:[~2008-08-14 11:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-14 11:38 can block drivers get non-fs requests? Pierre Ossman
2008-08-14 11:42 ` Jens Axboe [this message]
2008-08-14 12:39   ` Pierre Ossman
2008-08-14 14:06     ` 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=20080814114209.GB20055@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=drzeus-list@drzeus.cx \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oakad@yahoo.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.