Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3
From: Zach Brown
Date: Thu Feb 22 2007 - 16:46:15 EST
direct-io.c is evil. Ridiculously.
You will have a hard time finding someone to defend it, I predict :).
There is good news on that front, too. Chris (Mason) is making
progress on getting rid of the worst of the Magical Locking that
makes buffered races with O_DIRECT ops so awful.
I'm not holding my breath for a page cache so fine grained that it
could pin and reference 512B granular user regions and build bios
from them, though that sure would be nice :).
As an experiment, I'm working on backing the sys_io_*() calls with
syslets. It's looking very promising so far.
Great, I'd love to see the comparisons.
I'm out for data. If it sucks, well, we'll know just how much. I'm
pretty hopeful that it won't :).
One other implementation to consider is actually using kernel threads
compared to how syslets perform. Direct IO for one always blocks, so
there shouldn't be much of a performance difference compared to
syslets,
with the bonus that no arch specific code is needed.
Yeah, I'm starting with raw kernel threads so we can get some numbers
before moving to syslets.
One of the benefits syslets bring is the ability to start processing
the next pending request the moment current request processing
blocks. In the concurrent O_DIRECT write case that avoids releasing
a ton of kernel threads which all just run to serialize on i_mutex
(potentially bouncing it around cache domains) as the O_DIRECT ops
are built and sent.
-z
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/