Subject: Re: Strange VM behaviour
To: Chuck Silvers <chuq@chuq.com>
From: Lennart Augustsson <lennart@mail.augustsson.net>
List: tech-kern
Date: 02/17/2001 10:12:50
I finally looked into my problem where the machine goes catatonic when
a process does exit().  Here's what I found.
To reproduce the bug I had a process that was somewhat larger (15M)
than the availabe physical memory, and I had it access memory in a region
that sweeps across the addresses over and over, so I get some swap activity.
When this process does exit() the system is dead for a while, BUT I can get
into DDB.  So I entered DDB about 10 times, and the trace was the same
every time:
extent_free
uvm_swap_free
uvm_anon_dropswap
uvm_anfree
amap_wipeout
amap_unref
uvm_unmap_detach
uvm_unmap
uvm_deallocate
exit1
sigexit

So it seems that we have a severe algorithmic problem in extent_free
(or just a plain bug?).  I didn't look much more at it, but it looks to me
like removing all entries from an extent map is quadratic, so if the map
grows large this could be a problem.

    -- Lennart


Chuck Silvers wrote:

> sorry, I missed the part about no disk activity.
> this sounds a bit different from problems I've heard of.
>
> -Chuck
>
> On Sun, Feb 04, 2001 at 03:20:28PM -0500, Lennart Augustsson wrote:
> > Yes, my tree is very up-todate.  I've had this problem ever since UBC was
> > integrated.  It's not the same as the problem Jason fixed.  Jason's fix makes
> > interactive response better under heavly load.  Note that when my machine
> > freezes there is NO disk activity.
> >
> >     -- Lennart