Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Apr 2005 19:29:41 -0700
From:      John-Mark Gurney <gurney_j@resnet.uoregon.edu>
To:        Sten Spans <sten@blinkenlights.nl>
Cc:        freebsd-sparc64@FreeBSD.org
Subject:   Re: sparc64/80410: netgraph is causing crash with mpd on sparc64
Message-ID:  <20050428022941.GN2670@funkthat.com>
In-Reply-To: <Pine.SOC.4.61.0504272349250.25081@tea.blinkenlights.nl>
References:  <200504271552.j3RFqCgv077122@white.orel.ru> <Pine.SOC.4.61.0504272139440.22696@tea.blinkenlights.nl> <Pine.SOC.4.61.0504272349250.25081@tea.blinkenlights.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
Sten Spans wrote this message on Wed, Apr 27, 2005 at 23:50 +0200:
> On Wed, 27 Apr 2005, Sten Spans wrote:
> 
> >>>Description:
> >>	mpd does not work on FreeBSD/sparc64. Kernel panic with "memory 
> >>address
> >>not aligned" trap message.
> >>
> >>>How-To-Repeat:
> >>	Configure and run mpd for VPN over pptp. After connect to VPN,
> >>start nmap scanner. Kernel right away crashed. I have coredump:
> >>
> >
> >Finding unaligned ( or rather not 64bit aligned ) mbufs is the
> >new cool thing, try if_em or if_tap for more fun and games :).
> >
> >On a more serious note, the main problem is that l3 protocols
> >( ip, ipv6, ipx ) expect their data to be aligned a certain way.
> >
> >But newer ethernet cards, complex headers, complex tunneling
> >tricks, etc often shift contents a few bytes. i386 has no alignment 
> >constraints ( a small speed hit though ) which means that these
> >problems are often overlooked.
> >
> >OpenBSD and NetBSD have quite a few dirty hacks in drivers to
> >fixup the mess for each driver. Some work has been done with
> >m_copyup in -CURRENT but the debate is still open on wether
> >this should be fixed in a general way in l3 protocols, or in
> >each "ethernet" driver, or even somewhere else entirely.
> >
> >HTH HAND
> 
> 
> http://mail-index.netbsd.org/source-changes/2002/07/01/0001.html
> 
> After some more thought, this would indeed seem to be the
> right direction. It would certainly make life for alpha
> and sparc64 users a lot less painfull.

Now bring it up on -net (I've cc'd them for you) and try to convince
the people over there...  I'm all for making the l3 align themselves
on arches that need it...  That way if someone writes an l3 protocol
that only needs to be short aligned, it doesn't have to take the huge
performance hit of coping packets around...  Though some thinks that
it's perfectly fine to hurt the performance of those, and even hurt the
bridging case too...

What would be useful would be for the l3's to register their required
alignment, and make this information available to the drivers.. some
cards can dma to arbitrary addresses, so it'd be good for the drivers
that can to do so...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



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