Subject: Re: Lockup with GENERIC-MP kernel (05-19-03)
To: Stephan Uphoff <ups@stups.com>
From: Matt Rickard <mjr318@psu.edu>
List: tech-kern
Date: 05/21/2003 00:31:36
That was the problem. Adding a simple_unlock(&namecache_slock); before
the return took care of it.
Thanks.
On Tue, 20 May 2003 20:36:49 -0400
Stephan Uphoff <ups@stups.com> wrote:
>
> vfs_cache.c:326 contains a return without the release of the lock.
>
> if (bufp) {
> bp = *bpp;
> bp -= ncp->nc_nlen;
> if (bp <= bufp) {
> *dvpp = NULL;
> return (ERANGE);
> ----------------------------------------^^^^^^^^^^^^^^^^
>
> I guess mi_switch was just not called for a while.
> ( And as such the backtrace not related to the problem)
>
> Stephan
>
>
> Frank van der Linden <fvdl@netbsd.org> wrote:
> > On Tue, May 20, 2003 at 06:20:01PM -0400, Matt Rickard wrote:
> > > checking if getcwd() calls popen() ...
> > >
> > > On the console that I am doing the build on, I am able to type (or
> > > at least echo characters to the screen), but the input is ignored.
> > > I can't ctrl-c to kill the task. I can switch to other virtual
> > > consoles, but cannot input anything at all.
> >
> > That spells 'locking problem', and indeed, a LOCKDEBUG kernel spews:
> >
> > switching with held simple_lock 0xc03d1f30 CPU 1
> > ../../../../kern/vfs_cache.c:301
> > simple_lock_switchcheck(e4dc0400,0,0,c0228144,e4dc0400) at
> > netbsd:simple_lock_sw itchcheck+0x18
> > mi_switch(e4dc0400,0,1cd,c023245f,0) at netbsd:mi_switch+0x48
> > ltsleep(c03d1180,204,c03717e8,0,c0406d1c) at netbsd:ltsleep+0x2ef
> > reaper(e4dc0400,0,0,0,c010030c) at netbsd:reaper+0x6c
> >
> > ..however, this doesn't make sense, since the lock taken at that
> > line is not held ever by the reaper, or can it ever be held
> > in any way when a process sleeps. So at first glance I can't
> > figure out what's going on there.
> >
> > - Frank
> >
> >
> > --
> > Frank van der Linden
> > fvdl@netbsd.org======================================================
> > ========================= NetBSD. Free, Unix-like OS. > 45 different
> > platforms. http://www.netbsd.org/
> >
>
>
>
>
>
>