On 19/03/2008, Samuel Thibault <[EMAIL PROTECTED]> wrote: > > Yes, that's what I meant actually: the diskfs_sync_everything() function > is able to trigger a lot of thread creations. > > A way to have things work correctly would be by marking threads with a > "level", i.e. diskfs_sync_everything runs at level 0, threads that it > generates run at level 1, and threads that process their page faults run > at level 2, etc. Then we just need to limit the number of threads for a > given level. That should always permit termination of requests, while > still limiting the number of thread to a constant times the maximum > nesting of page faults. > How would you increase the level?
Would that mean that some initial process is level 1, login level 2, a user process started from top level shell level 3, from window manager level n >> 3? Or does the level increase only when the thread goes through some page fault port? How many levels can result from this? Thanks Michal