Interesting. Would it be possible to get more details on this
problem?
We can shuffle pages around on the LRU from interrupts at present.
But not the address_space lists and buffer stuff.
We could remove the address_space lists and page->list altogether
with a bit of radix tree work. I started in on that but got distracted.
mapping->clean_pages is actually obsolete now - we never walk it. It
could be replaced with list_del_init() everywhere.
> > In fact I also don't know where the whole AIO thing sits at
> > present. Is it all done and finished? Is there more to come,
> > and if so, what??
>
> There's more to come. The bits I'm working on are running in kernel
> context mainly to simplify the copy_*_user case since we don't have
> full zero copy semantics available and coping with pinned pages is
> a challenge in a multiuser system, plus it makes reusing the existing
> networking code a lot easier. Basically, anything that involves a
> copy of data is likely to be better implemented running in a task to
> get the priority of execution correct, whereas anything involving
> zero copy io is going to want completion from irq or bottom half
> context and hence dirty pages. Does that make sense?
OK, thanks. So I guess we make those locks irq-safe. I don't
expect that would be feasible in 2.4 because of the hold times in
truncate - it should be OK in 2.5. I'll do the patch.
-
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/