All of lore.kernel.org
 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 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.