[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: providing memory objects to users

From: Thomas Bushnell, BSG
Subject: Re: providing memory objects to users
Date: 12 Jun 2002 10:42:59 -0700
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Marcus Brinkmann <marcus@gnu.org> writes:

> On Wed, Jun 12, 2002 at 10:32:21AM -0700, Thomas Bushnell, BSG wrote:
> > Map a big region, start modifying pages.  Eventually you will trigger
> > pageout.  The kernel will now proceed to start paging things out: all
> > at once.
> Ok, I see.  How about throtteling the creation of new service threads in
> libpager's ports_manage_multithreaded (eg make it an option to
> libports).  I wouldn't want to make it a fixed limit as this can always
> potentially lead to a deadlock, but we could limit the number of threads
> we create in one second.  

Quite right; deadlock is the worry here.

However, we know that it's fine to process the messages one at a time,
as long as you do it in order (according to seqno).  So there are
probably simpler solutions.  Note that the parallelism is pretty much
all fake: the requests aren't entirely serialized, but still, the disk
can only do so much.

Handling them one at a time would solve that problem, but be bad too.
In general, we want to get all the requests to the device as soon as
possible, because devices might be capable of re-ordering and other
nifty optimizations.  

> It seems to me that this would sanitize the situation, as it would
> give the first couple of dozens pager_write_page threads a chance to
> run and return to the pool before the next couple hundreds are
> created.

Yes, I think this is a good suggestion.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]