[Pvfs2-developers] Patches: (1) fixing incorrect small I/O
total_size, (2) processing multiple aiocbs at a time
Avery Ching
aching at ece.northwestern.edu
Thu May 18 19:06:04 EDT 2006
On Thu, 2006-05-18 at 17:26 -0500, Robert Latham wrote:
> Thanks for the patches. tracking down these bugs can be a big pain.
> good job, man. just a few questions.
>
> On Thu, May 18, 2006 at 03:44:28PM -0600, Avery Ching wrote:
> > small_io_total_bytes_fix.patch:
> >
> > Fixed an issue with the small I/O total size being passed to the
> > trove_bstream_write_list(). The uint32_t was being casted to
> > (TROVE_size *)&s_op->req->u.small_io.total_bytes on line 162 of
> > small_io.sm.
>
> If you are going to change the type of 'total_bytes', don't forget
> you'll have to change the encode_PVFS_servreq_small_io and
> decode_PVFS_servreq_small_io macros, too.
>
You're right that this might affect other stuff. I think I guess the
encode and decode functions will need to be changed. Okay, fixed. I've
attached another patch that does this and changes it to PVFS_size. I
think that's it hopefully...
> > process_multiple_aiocbs.patch:
> >
> > Fixed the dbpf_bstream_listio_convert() function to actually handle more
> > than a single aiocb at a time. This should boost noncontiguous I/O
> > performance quite a bit.
>
> Can you help me understand why your changes work? What is making the
> existing code return too early? I'm not saying you did it wrong, of
> course. it's just code i don't know very well.
>
In most cases (actually all that I know of) mem_count = 1. This means
that when it passes through the while loop it breaks out even if it
isn't finished since it is oom. Therefore it was only doing a single
aiocb at a time. By changing the break conditional and updating the
cur_mem_size and cur_stream_size, we can see where we really need to
break out of the while loop (when it is oos or oom AND there are no
bytes left in the current piece). Hope that helps!
> ==rob
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: small_io_total_bytes_fix2.patch
Type: text/x-patch
Size: 1282 bytes
Desc: not available
Url : http://www.beowulf-underground.org/pipermail/pvfs2-developers/attachments/20060518/9483f854/small_io_total_bytes_fix2.bin
More information about the Pvfs2-developers
mailing list