Messages in this thread | | | Date | Tue, 2 Jan 2001 00:00:21 -0500 (EST) | From | Alexander Viro <> | Subject | Re: [RFC] Generic deferred file writing |
| |
On Tue, 2 Jan 2001, Roman Zippel wrote:
> Block allocation is not my problem right now (and even directory handling > is not that difficult), but I will post somethings about this on fsdevel > later. > But one question is still open, I'd really like an answer for: > Is it possible to use a per-inode-indirect-block-semaphore?
Depends on a filesystem. Generally you don't want asynchronous operations to grab semaphores shared with something else. kswapd knows to skip the locked pages, but that's it - if writepage() is going to block on a semaphore you will not know what had hit you. And while buffer-cache operations will not trigger writepage() (grep for GFP_BUFFER and GFP_IO and you'll see) you have no such warranties for other sources of memory pressure. If one of them hits while you are holding such semaphore - you are toast.
We probably could pull it off for ext2_truncate() vs. ext2_get_block() but it would not do us any good. It would give excessive exclusion for operations that can be done in parallel just fine (example: we have a hole from 100Kb to 200Kb. Pageouts in that area can be trivially done i parallel - current code will not even try to do unrolls. With your locking they will be serialized for no good reason). What for?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |