[lkml]   [2002]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] O_DIRECT with hardware blocksize alignment
On Tue, Jan 15, 2002 at 01:20:26PM +0100, Andrea Arcangeli wrote:
> > How so? All I/O is at the computed blocksize. In every
> > request, the size of each I/O in the kiovec is the same. The
> in the kiovec yes, but in the same request queue there will be also the
> concurrent requests from the filesystem, and they will have different
> b_size, see Jens's mail about different b_size merged in the same
> request.

Ok, I've read over Badri's latest patch, and it would seem he
assumes that the kiovec coming into brw_kiovec has buffer_heads of
512bytes (as raw.c would prepare). He then submits the I/O in differing
chunks (eg 2048 + 4096 + 4096 + 2048 for a 2048-aligned buffer).
Correct me if I am wrong (I can't see anything in raw.c that would
change the sizes in the kiovec).
For O_DIRECT, the fallback is s_blocksize, not the hardware
minimum of 512. So the kiovec would be coming into brw_kiovec with a
b_size of 4096 or so. My patch lets b_size be anything between 512 and
To work with Badri's code, would not the O_DIRECT path want to
submit a kiovec that is entirely b_size = 512 and let brw_kiovec handle
expanding it to larger sizes? This makes my patch simpler, but I wonder
what issues that presents.



"When choosing between two evils, I always like to try the one
I've never tried before."
- Mae West
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

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