Subject: Re: crashes in ipfilter on i386
To: Greg Troxel <gdt@ir.bbn.com>
From: Darren Reed <darrenr@netbsd.org>
List: tech-net
Date: 09/14/2007 02:02:43
Greg Troxel wrote:
>   So you're saying that doesn't work?!
>
> That fixes the alignment crash on sparc64, and my sparc64 machine runs
> fine.  It is not stressed normally.
>
>   What assembly got generated as the result of the above?
>
> It's really hard to follow (a maze of twisty inlines), but it looks ok.
> My best guess is that under low-memory conditions there's a packet in an
> mbuf at the edge of memory or a page and there is not enough data pulled
> up.  But I can't figure out what sizes are supposed to be there.
> Perhaps we should add a KASSERT that the mbuf has enough before the
> IP6_NEQ.
>
> My i386 box has 2 GB of RAM, but it is often very busy (builds, 20G of
> backups to tape).

Ok, that sound similar to a problem I ran into last night - an IPv6
packet where the ICMPV6 header seems to sit on the edge of a page.
I'm somewhat puzzled as to why the pullup doesn't fix this.  And yes,
my experience was similar - after inlining, it is almost impossible
to work out what line of code is executing where.  I had to -g it to
make sense of it (just removing the "inline" was not enough.)

Darren