Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Oct 1998 12:38:38 -0500
From:      Zach Heilig <zach@gaffaneys.com>
To:        "Kenneth D. Merry" <ken@plutotech.com>, Zach Heil{g <zach@gaffaneys.com>
Cc:        FreeBSD-current@FreeBSD.ORG, dg@root.com
Subject:   Re: cdda2wav == panic (/sys/vm/vm_page.c:516)
Message-ID:  <19981022123838.A5174@znh.org>
In-Reply-To: <199810221653.KAA16575@panzer.plutotech.com>; from Kenneth D. Merry on Thu, Oct 22, 1998 at 10:53:15AM -0600
References:  <19981021224539.A10190@znh.org> <199810221653.KAA16575@panzer.plutotech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 22, 1998 at 10:53:15AM -0600, Kenneth D. Merry wrote:
> It looks like your panic is somewhat different from the one I saw.
> 
> Daniel O'Conner was able to work around this by hacking cdda2wav so it
> didn't remove shared memory segments.  However, he got the same panic later
> when he tried to remove the shared memory segments by hand.  From your
> later mail, it looks like you've found other ways to work around it.

I tried to get rid of shared memory all together to see if that was the
problem (it has #if's to use pipes instead), but that just dumps core.

> If I knew what the problem was, I would have probably fixed it by now. :)
> I think it will take someone knowledgeable about the VM system to fix this,
> so I'm CCing this to David.  :)
> 
> The CAM passthrough driver uses vmapbuf() and vunmapbuf() (via
> cam_periph_mapmem()) to map data segments into and out of kernel virtual
> memory.  My guess is that this, in combination with cdda2wav's shared
> memory usage, exposes some VM bug.
> 
> Anyway, hopefully someone can shed some light on this.

I hope so...

After making it use only 1 sector, I did notice that the 55 2352 byte sectors
it writes (with a single call to a file opened with O_NONBLOCK) happens to be
the most sectors that fit in under 128K (coincidence?).  If I set the number
of sectors it writes (-n option) to 22, it does not crash, even after trying
it several times (this is just over 50K.. I should have tried 27 and 28
sectors, the sector counts on each side 64K.. will be trying that later).

My guess is the shared memory segment is getting ripped out from under the
write() syscall.  I did get a 'vm_page_cache: caching a dirty page, pindex:'
panic first few times I tried it (before updating to Oct 22... I don't recall
the exact message, that one is from /sys/vm/vm_page.c -- it's the only message
that mostly resembles those first few panic's).

-- 
Zach Heilig <zach@gaffaneys.com>
If it looks like a duck, and quacks like a duck, we have to at least consider
the possibility that we have a small aquatic bird of the family Anatidę on
our hands (Douglas Adams -- Dirk Gently's Holistic Detective Agency)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981022123838.A5174>