Re: [Lsf-pc] [LSF/MM ATTEND] block: multipage bvecs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/28/2016 06:08 PM, Christoph Hellwig wrote:
> On Sun, Feb 28, 2016 at 01:17:43PM +0200, Boaz Harrosh wrote:
>> 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 will break in all kinds of places.  Also you really should
> never just setup bvecs yourself, please always use bio_add_page!
> 

Guys when did you ever stop playing and became so serious? Of course
I never do that in submitted code. But I do like to experiment from
time to time and play around, I like it when my VM crashes ;-)

That said when did you last look at bio_add_page() it will just work
as well. (Specially lately since the limits are checked later ever
since bios can split)

So if you have a real hard stair you'll see that we consider bv_len
everywhere and the PAGE_SIZE assumption is more when allocating array
sizes and things like that. Again it will break on SW drivers like
brd and scsi_debug. But will currently work on anything going through
sg-lists and DMA mapping.

This is not the first time in the kernel that a page* and large
size denotes a set of contiguous pages, BTW

Cheers
Boaz

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux