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/