From: Jens Axboe <axboe@suse.de>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Patrick Mansfield <patmans@us.ibm.com>,
Douglas Gilbert <dougg@torque.net>,
James Bottomley <James.Bottomley@steeleye.com>,
Oliver Neukum <oliver@neukum.org>,
SCSI development list <linux-scsi@vger.kernel.org>,
USB development list <linux-usb-devel@lists.sourceforge.net>
Subject: Re: Unaligned scatter-gather buffers and usb-storage
Date: Wed, 19 Nov 2003 18:03:20 +0100 [thread overview]
Message-ID: <20031119170320.GP1106@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0311191147270.957-100000@ida.rowland.org>
On Wed, Nov 19 2003, Alan Stern wrote:
> On Wed, 19 Nov 2003, Jens Axboe wrote:
>
> > > any main code path, and it wouldn't get invoked by anything using the st
> > > or sg drivers. In fact, it looks like scsi_ioctl.c:scsi_cmd_ioctl() is
> > > only called from within the sd driver.
> >
> > It's invoked from user space. Don't mix block and scsi scsi_ioctl() up.
> > bio_map_user() would be used by a block layer sg driver too, for
> > instance.
>
> You've lost me. scsi_cmd_ioctl() and bio_map_user() are _not_ used by the
> sg driver -- did you mean that a hypothetical block layer sg driver would
> call them? That doesn't seem relevant to the point of this thread.
Well you brought up bio_map_user(), so I'm telling where it's used and
why. The block layer provides SG_IO functionality for non-scsi devices,
that is its current use.
> Although come to think of it, you probably never saw the start of the
> thread. Take a look at
>
> http://marc.theaimsgroup.com/?l=linux-usb-devel&m=106916943618090&w=2
>
> to understand my problem.
Ok I see. Then make sg/st return -EINVAL if the address isn't 512-byte
aligned would be the rigth fix, imo.
> > > So something needs to be fixed up. Is there some spot in the block layer
> > > that's supposed to be checking dma alignments but isn't doing so?
> >
> > The queue dma alignment was added to better cater to cdrecord, for
> > instance. We need better than 512b granularity there, or you cannot use
> > DMA on certain types of burns (lots of sector types are non-2kb aligned
> > there).
> >
> > If you can 512-byte align the data and transfer from user space, _that
> > is enough_. The program just needs to be aware of this, it's not an odd
> > restriction. There are just scenarious where you cannot do this, and
> > that is why I added the queue dma alignment attribute. To me, it doesn't
> > sound like your case applies.
>
> This isn't a userspace problem as such; it's a problem of enforcing dma
> alignment restrictions within the block layer or lower. I'm not working
> on a user program; I'm working on the usb-storage driver. It too needs
> 512-byte alignment, but under the right circumstances the st and sg
> drivers can submit scatter-gather buffers that aren't aligned. You said
> earlier that misaligned buffers would be caught in the block layer
> queueing code, but I don't see any place where that happens.
sg/st submissions would never pass through the block layer, even if they
use the queue as a transport between the scsi mid layer. They need to
impose this restrictions themselves. I still don't think this warrants
adding a host template attribute for this. 512-byte alignment is
perfectly fine.
--
Jens Axboe
next prev parent reply other threads:[~2003-11-19 17:03 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1068207145.3fab8c2988d43@webmail.netregistry.net>
2003-11-07 16:21 ` usb-storage and Sony Handycam Alan Stern
2003-11-07 17:29 ` Patrick Mansfield
2003-11-07 19:49 ` Alan Stern
2003-11-08 2:54 ` Dmitri Katchalov
2003-11-08 6:34 ` Patrick Mansfield
2003-11-08 13:29 ` Dmitri Katchalov
2003-11-08 16:28 ` Alan Stern
2003-11-08 20:37 ` Patrick Mansfield
2003-11-09 3:47 ` [linux-usb-devel] " Alan Stern
2003-11-09 8:45 ` Dmitri Katchalov
2003-11-10 20:45 ` Patrick Mansfield
2003-11-10 17:59 ` Patrick Mansfield
2003-11-10 18:46 ` Alan Stern
2003-11-10 19:04 ` [linux-usb-devel] " Patrick Mansfield
2003-11-10 19:57 ` Alan Stern
2003-11-10 22:46 ` Sancho Dauskardt
2003-11-18 15:20 ` Unaligned scatter-gather buffers and usb-storage Alan Stern
2003-11-18 22:37 ` Patrick Mansfield
2003-11-19 8:47 ` Jens Axboe
2003-11-19 13:01 ` [linux-usb-devel] " Oliver Neukum
2003-11-19 13:04 ` Jens Axboe
2003-11-19 14:37 ` James Bottomley
2003-11-19 14:39 ` Jens Axboe
2003-11-19 14:58 ` James Bottomley
2003-11-19 15:00 ` [linux-usb-devel] " Jens Axboe
2003-11-19 16:56 ` Kai Makisara
2003-11-19 20:19 ` Jens Axboe
2003-11-19 22:06 ` Kai Makisara
2003-11-20 6:53 ` Jens Axboe
2003-11-20 15:20 ` Alan Stern
2003-11-20 15:30 ` Jens Axboe
2003-11-20 16:09 ` Alan Stern
2003-11-20 16:24 ` Jens Axboe
2003-11-20 16:28 ` [linux-usb-devel] " Oliver Neukum
2003-11-20 19:23 ` Kai Makisara
2003-11-20 17:18 ` Kai Makisara
2003-11-20 19:18 ` [linux-usb-devel] " Kai Mäkisara
2003-11-21 18:03 ` PATCH: (as141) " Alan Stern
2003-11-21 20:07 ` Kai Makisara
2003-12-01 1:30 ` Matthew Dharm
2004-01-05 0:41 ` Matthew Dharm
2004-01-05 10:08 ` Jens Axboe
2004-01-05 21:58 ` PATCH: (as141b) " Alan Stern
2004-01-06 11:28 ` Oliver Neukum
2004-01-06 16:10 ` Alan Stern
2004-02-02 15:51 ` James Bottomley
2004-02-03 15:47 ` Alan Stern
2004-02-03 15:55 ` James Bottomley
2004-02-03 16:02 ` Matthew Wilcox
2003-11-19 15:44 ` Alan Stern
2003-11-19 15:49 ` Jens Axboe
2003-11-19 16:58 ` Alan Stern
2003-11-19 17:03 ` Jens Axboe [this message]
2003-11-07 22:09 ` usb-storage and Sony Handycam Alan Stern
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=20031119170320.GP1106@suse.de \
--to=axboe@suse.de \
--cc=James.Bottomley@steeleye.com \
--cc=dougg@torque.net \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=oliver@neukum.org \
--cc=patmans@us.ibm.com \
--cc=stern@rowland.harvard.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).