From owner-freebsd-sparc64@FreeBSD.ORG Wed Apr 27 19:53:06 2005 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AB9B216A4CE; Wed, 27 Apr 2005 19:53:06 +0000 (GMT) Received: from ford.blinkenlights.nl (ford.blinkenlights.nl [213.204.211.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5A2DE43D41; Wed, 27 Apr 2005 19:53:06 +0000 (GMT) (envelope-from sten@blinkenlights.nl) Received: from tea.blinkenlights.nl (tea.blinkenlights.nl [192.168.1.21]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ford.blinkenlights.nl (Postfix) with ESMTP id 58BF73F294; Wed, 27 Apr 2005 21:53:05 +0200 (CEST) Received: by tea.blinkenlights.nl (Postfix, from userid 101) id EC45718F; Wed, 27 Apr 2005 21:53:04 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by tea.blinkenlights.nl (Postfix) with ESMTP id D1EFD159; Wed, 27 Apr 2005 21:53:04 +0200 (CEST) Date: Wed, 27 Apr 2005 21:53:04 +0200 (CEST) From: Sten Spans To: Andrew Belashov In-Reply-To: <200504271552.j3RFqCgv077122@white.orel.ru> Message-ID: References: <200504271552.j3RFqCgv077122@white.orel.ru> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed cc: glebius@FreeBSD.org cc: freebsd-sparc64@FreeBSD.org Subject: Re: sparc64/80410: netgraph is causing crash with mpd on sparc64 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2005 19:53:06 -0000 On Wed, 27 Apr 2005, Andrew Belashov 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 -- Sten Spans "There is a crack in everything, that's how the light gets in." Leonard Cohen - Anthem