All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: Christoph Hellwig <hch@infradead.org>
Cc: dougg@torque.net, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 3/5] make sg always send scatterlists take 2
Date: Fri, 16 Sep 2005 14:28:39 -0500	[thread overview]
Message-ID: <432B1CE7.6010005@cs.wisc.edu> (raw)
In-Reply-To: <432AE22C.4060702@cs.wisc.edu>

Mike Christie wrote:
> Christoph Hellwig wrote:
> 
>> On Thu, Sep 15, 2005 at 11:39:53PM -0500, Mike Christie wrote:
>>
>>> Convert sg to always use scatterlists.
>>>
>>> I made the scsi api take scatterlists now so HighMem is supported
>>> for DIO.
>>
>>
>>
>> Looks pretty nice.  There's lots of page_address() calls left, two
> 
> 
> yeah I was going to change them to kmaps for Doug and Kai, but thought I 
> should do that in another patch in case I mees up. I thought in the 
> paths they use page_address are the indirect or mmap paths which 
> allocate the pages from GFP_KERNEL or GFP_DMA.
> 

Oh so I guess using kmap makes no sense with these patches. For direct 
IO we never do a page_address on a page so that is why we get to support 
highmem for free (block layer bounces the buffer for us), but for the 
non-direct IO (sg's indirect and mmap paths) we have to allocate blocks 
of contigous pages with alloc_pages/__get_free_pages so that we can 
build those really large segments and and large requessts (same for st's 
large requests).

In my first patches where I broke a bunch of stuff but ripped out a lot 
of duplicated code, I converted sg to use the block layer 
blk_rq_map_user* functions (but just killed mmap support since there was 
no blk_rq_map* helper) which do single bio requests and only perform 
alloc_page (a bio_vec maps to just one page) so requests from those 
functions were too small and normally limited by the BIO_MAX_PAGES limit 
or one of the queues segment limits (doing alloc_page a bunch of times 
typically did not get enough contigous pages to make large segments like 
when we just do alloc_pages).

      reply	other threads:[~2005-09-16 21:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-16  4:39 [PATCH 3/5] make sg always send scatterlists take 2 Mike Christie
2005-09-16 11:10 ` Christoph Hellwig
2005-09-16 15:18   ` Mike Christie
2005-09-16 19:28     ` Mike Christie [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=432B1CE7.6010005@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=dougg@torque.net \
    --cc=hch@infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    /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.