lkml.org 
[lkml]   [2002]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: patch: aio + bio for raw io
Date
> 
> Quick message: this patch makes aio use bio directly for brw_kvec_async.
> This is against yesterday's patchset. Comments?
>
> -ben

Hi Ben,

I am looking at the 2.5 patch you sent out. I have few questions/comments:

1) brw_kvec_async() does not seem to split IO at BIO_MAX_SIZE. I thought
each bio can handle only BIO_MAX_SIZE (ll_rw_kio() is creating one bio
for each BIO_MAX_SIZE IO).

And also, currently BIO_MAX_SIZE is only 64K. Infact, if I try to issue
64K IO using submit_bio(), I get following BUG() on my QLOGIC controller.

kernel BUG at ll_rw_blk.c:1336

Code is: BUG_ON(bio_sectors(bio) > q->max_sectors);

bio_sectors(bio) is 128
q->max_sectors is 64 (for QLOGIC ISP)

Is this going to be fixed ? Can "bio" should be able to handle any
size IO ? Or we should issue create a new bio for each BIO_MAX_SIZE IO ?


2) Could you please make map_user_kvec() generic enough to handle mapping
of mutliple iovecs to single kvec (to handle readv/writev). I think
this is a very easy change:

* Add alloc_kvec() and take out the kmalloc() from map_user_kvec().
* Change map_user_kvec() to start mapping from kvec->veclet[kvec->nr]
instead of kvec->veclet[0]

This way allocation for kvec to hold all the iovecs can be done at higher
level and map_user_kvec() can be called in a loop once for each iovec.

Then we can add read/writev support for RAW IO very easily. I am looking
at making use of kvec for RAW IO and also add support for readv/writev.
(I already sent a patch to do this - but since you ported all your AIO
work to 2.5, we can work on your infrastructure :)

Please let me know what you think.

Thanks,
Badari
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:24    [W:0.065 / U:9.680 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site