All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: James Smart <James.Smart@Emulex.Com>
Cc: Seokmann Ju <seokmann.ju@qlogic.com>,
	"futjita.tomonori@lab.ntt.co.jp" <futjita.tomonori@lab.ntt.co.jp>,
	Andrew Vasquez <andrew.vasquez@qlogic.com>,
	"sven@linux.vnet.ibm.com" <sven@linux.vnet.ibm.com>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: [RFC] FC pass thru - Rev V
Date: Sun, 08 Mar 2009 17:46:17 +0200	[thread overview]
Message-ID: <49B3E849.5040801@panasas.com> (raw)
In-Reply-To: <49B3DD77.3020600@emulex.com>

James Smart wrote:
>>> If you're getting multiple sg's, then either the buffer spans some
>>> condition that crosses a boundary that blk_rq_map_sg() enforces  
>>> (like a
>>> 4G boundary, but I doubt that's it), or - and more likely - your
>>> application has a buffer that spans 2 pages which look contiguous to  
>>> the
>>> app, but are actually virtual-memory mapped to 2 independent physical
>>> pages (thus the need for 2 sg's).  If your app knows the system page
>>> size, and was careful about buffer placement and length within page
>>> boundaries, it likely would never encounter this.  But, we would never
>>> want to force apps to be this smart, and this would be a good
>>> justification for supporting more than 1 sg.
>> OK. So the whole point that I brought up is implementation specific.
>> Thank you for the comment.
> 
> Yes, but I wouldn't be surprised to see it occur often enough to be a 
> pain.  What I would recommend is :  if your hardware wants only one 
> buffer descriptor for ELSs, and there's 2 BGs, that you double-buffer 
> it. Allocate a local buffer, transfer the users data into the buffer, 
> and then use the local buffer for the hardware. Same on the receive 
> path. A pain, yes, but this isn't time critical stuff, and it's much 
> better than just returning an error to the app based on it's buffer 
> alignment (which it probably doesn't even realize).
> 

Or force a block bounce buffers by setting the queue alignment requirements
(Can only work for max transfer of PAGE_SIZE/2 )

> The above works for ELS's (as its small), but I fully expect other 
> things, like CT requests, to not be small and require multiple buffers. 
> On those things, I hope the hardware supports multiple sg's as 
> double-buffering it is ugly.
> 

> -- james s


Boaz

      reply	other threads:[~2009-03-08 15:47 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-18 21:24 [RFC] FC pass thru - Rev IV James Smart
2008-11-24 15:46 ` Sven Schuetz
2008-11-24 16:29   ` James Smart
2008-11-25 15:08     ` Sven Schuetz
2008-11-25 15:56       ` James Smart
2008-11-24 20:37 ` Seokmann Ju
2008-11-24 21:03   ` James Smart
2008-11-25 14:38     ` Seokmann Ju
2008-11-25 15:47       ` James Smart
2008-12-01 21:49       ` Seokmann Ju
2008-12-01 22:09         ` James Smart
2008-11-26 18:25 ` Sven Schuetz
2008-11-26 18:58   ` James Smart
2008-11-27  7:03 ` FUJITA Tomonori
2008-11-27  8:58   ` Boaz Harrosh
2008-11-27  9:53     ` FUJITA Tomonori
2008-11-27 11:51       ` Boaz Harrosh
2008-11-28  1:52         ` FUJITA Tomonori
2008-11-30 10:56           ` Boaz Harrosh
2008-11-28  2:01       ` James Bottomley
2008-11-28  2:22         ` FUJITA Tomonori
2009-02-11 15:13 ` [RFC] FC pass thru - Rev V James Smart
2009-02-11 15:43   ` Seokmann Ju
2009-02-20  2:33     ` Seokmann Ju
2009-02-20 18:53       ` James Smart
2009-02-21  6:00       ` FUJITA Tomonori
2009-02-24 14:25         ` Seokmann Ju
2009-03-13 16:25     ` Seokmann Ju
2009-03-13 16:47       ` Sven Schuetz
2009-03-13 17:04         ` Seokmann Ju
2009-03-15  9:34         ` Boaz Harrosh
2009-03-15 13:14           ` James Smart
2009-03-15 14:03             ` Boaz Harrosh
2009-03-15 15:15               ` James Smart
2009-03-15 16:15                 ` Boaz Harrosh
2009-03-15 14:26             ` Boaz Harrosh
2009-03-19  1:57           ` FUJITA Tomonori
2009-03-14 22:16       ` James Smart
2009-03-16 11:36         ` Seokmann Ju
2009-03-25 12:58         ` Seokmann Ju
2009-03-15  9:30       ` Boaz Harrosh
2009-03-16 11:40         ` Seokmann Ju
2009-03-16 13:38           ` Boaz Harrosh
2009-03-16 15:37             ` Seokmann Ju
2009-02-11 16:15   ` Boaz Harrosh
2009-02-11 16:33     ` FUJITA Tomonori
2009-02-11 16:55       ` Boaz Harrosh
2009-02-11 17:14         ` FUJITA Tomonori
2009-02-11 18:16           ` Boaz Harrosh
2009-03-07 12:17   ` Seokmann Ju
2009-03-07 14:44     ` James Smart
2009-03-07 20:18       ` Seokmann Ju
2009-03-08 15:00         ` James Smart
2009-03-08 15:46           ` Boaz Harrosh [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=49B3E849.5040801@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=James.Smart@Emulex.Com \
    --cc=andrew.vasquez@qlogic.com \
    --cc=futjita.tomonori@lab.ntt.co.jp \
    --cc=linux-scsi@vger.kernel.org \
    --cc=seokmann.ju@qlogic.com \
    --cc=sven@linux.vnet.ibm.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.