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