linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


  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).