All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <boaz@plexistor.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>,
	Ming Lei <tom.leiming@gmail.com>,
	lsf-pc@lists.linuxfoundation.org
Cc: linux-block@vger.kernel.org,
	Linux FS Devel <linux-fsdevel@vger.kernel.org>
Subject: Re: [Lsf-pc] [LSF/MM ATTEND] block: multipage bvecs
Date: Mon, 29 Feb 2016 11:41:27 +0200	[thread overview]
Message-ID: <56D41247.9040402@plexistor.com> (raw)
In-Reply-To: <1456675282.2324.2.camel@HansenPartnership.com>

On 02/28/2016 06:01 PM, James Bottomley wrote:
> On Sun, 2016-02-28 at 13:17 +0200, Boaz Harrosh wrote:
>> On 02/26/2016 06:33 PM, Ming Lei wrote:
>>> Hi,
>>>
>>> I'd like to participate in LSF/MM and discuss multipage bvecs.
>>>
>>> Kent posted the idea[1] before, but never pushed out.
>>> I have studied multipage bvecs for a while, and think
>>> it is a good idea to improve block subsystem.
>>>
>>> Multipage bvecs means that one 'struct bio_bvec' can hold
>>> multiple pages which are physically contiguous instead
>>> of one single page used in current kernel.
>>>
>>
>> Hi Ming Lei
>>
>> This is an interesting talk for me.
>>
>> I don't know if you ever tried it but I did. If I take a regular
>> SSD disk or a PCIE flash card that I have in my machine and
>> I stick a pointer to a page and bv_len = PAGE_SIZE * 8 and call
>> submit_bio, I get 8 pages worth of IO with a single bvec and it
>> all just works.
> 
> No it wouldn't.  There's no check anywhere that a single bv entry is
> under the queue max segment size because the assumption is bv_len <=
> page size.  If you start sending multi-page single bio vec entries,
> you'll violate those assumptions and eventually get an unmappable bio.
> 

I thought so too. Imagine my surprise. But it just works. Limits aside
for a second. I followed the code path and everywhere we are using bv_len.
so does the sg_map DMA code. And all comes out just fine. So if I'm not
crossing any boundaries it works.

I'd imagine that any SW driver that actually accesses the page as a page*
for say kmap() yes would crash terribly. But the virtual-to-phisical mapping
does work (tested 64bit only) . I know big surprise 

Thanks
Boaz

> James
> 
> 


  reply	other threads:[~2016-02-29  9:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-26 16:33 [LSF/MM ATTEND] block: multipage bvecs Ming Lei
2016-02-28 11:17 ` Boaz Harrosh
2016-02-28 14:34   ` Ming Lei
2016-02-28 14:41     ` Ming Lei
2016-02-28 16:01   ` [Lsf-pc] " James Bottomley
2016-02-29  9:41     ` Boaz Harrosh [this message]
2016-02-28 16:08   ` Christoph Hellwig
2016-02-29 10:16     ` Boaz Harrosh
2016-02-29 15:46       ` James Bottomley
2016-02-28 16:07 ` Christoph Hellwig
2016-02-28 16:26   ` James Bottomley
2016-02-28 16:29     ` Christoph Hellwig
2016-02-28 16:45       ` James Bottomley
2016-02-28 16:59         ` Ming Lei
2016-02-28 17:09           ` James Bottomley
2016-02-28 18:49             ` Ming Lei
2016-03-03  8:58 ` Christoph Hellwig
2016-03-03 11:04   ` Ming Lei
2016-03-03 12:11     ` Christoph Hellwig
2016-03-03 23:49       ` Ming Lin
2016-03-07  8:44       ` Ming Lei
2016-03-21 15:55         ` Christoph Hellwig
2016-03-22  0:12           ` Ming Lei
2016-03-05  8:35 ` Ming Lei

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=56D41247.9040402@plexistor.com \
    --to=boaz@plexistor.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=lsf-pc@lists.linuxfoundation.org \
    --cc=tom.leiming@gmail.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.