bug-hurd
[Top][All Lists]
Advanced

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

Re: Mach's in-kernel scheduling


From: Igor Khavkine
Subject: Re: Mach's in-kernel scheduling
Date: Tue, 21 Aug 2001 13:51:36 -0400
User-agent: Mutt/1.3.20i

On Mon, Aug 20, 2001 at 04:45:31PM -0700, Thomas Bushnell, BSG wrote:
> Igor Khavkine <i_khavki@alcor.concordia.ca> writes:
> 
> > "Thomas Bushnell, BSG" wrote:

> > I see, that makes sense. I guess thread_block() is like a yield statement.
> 
> That's exactly what it is.
> 
> > My primary concern here is whether or not the pageout thread is called
> > or not when there is a shortage or resources. For example I dont see
> > any indication that the pageout thread is invoked when zalloc is unable
> > to allocate any more memory for some zone, although it is possible
> > that some kernel resources will be freed once the zone garbage collector
> > has run. 
> > Is there something I'm missing, or is there a valid reason
> > for panicing when virtual memory is exhausted instead of trying to free
> > up some which is unused?
> 
> The pageout demon doesn't really free up VM, it has the job of freeing
> up physical memory.  It does get automatically tickled when free
> physical memory runs low.
> 
> The pageout thread is given the task of calling consider_zone_gc,
> which (in the case of pageable zones) might be an important way to
> release virtual memory.  But the pageout thread only wakes up when
> *physical* memory runs out.
> 
> It might be indeed that zone fillup should also trigger the pageout
> thread.  This would be true if it were possible for zone fillup to
> happen without any pageout ever being necessary.  I suppose that might
> actually happen.  This suggests that something in zalloc.c should
> wakeup vm_page_free_wanted.

I'm thinking of different ways of tracing the kernel's memory consumption
to see where pathological resource consumption occurs. I think ti would
be fruitful to list all the data structures describing the state of
resource allocation. It is simple enough to list all the zones being
used in the kernel, but is there any memory allocated that is not recorded
in some zone? and if so, which data structures is it recorded in?

Igor



reply via email to

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