Subject: Re: NetBSD/xen network problems (need help)
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Mike M. Volokhov <mishka@intostroy.com>
List: port-xen
Date: 01/24/2006 16:38:48
On Mon, 23 Jan 2006 22:44:29 +0100
Manuel Bouyer <bouyer@antioche.eu.org> wrote:

> On Mon, Jan 23, 2006 at 03:09:08PM +0200, Mike M. Volokhov wrote:
> > This may be beacuse of xennet/bridge tandem. ``The problem occurs when a
> > new (unlearnt) mac address is seen by bridge which passes to all
> > if_xennetS. Then all those doms send the packet back to the bridge ttl
> > - 1 using their src mac, which presumably the bridge learns then.'' See
> > also private mail from me.
> 
> OK, can you try the attached patch (for netbsd-3) ?
> If should cause xennet and xvif to drop the packet if it's not for their
> mac address when not in promiscous mode.
> 

Well, behaviour has been changed. I've rebuilt all kernels and
restarted the system. After that all worked fine for some time, and
after a hour or so the whole system (including dom0) has been frozen
again. Network stats:

Name     Address              Ipkts Ierrs    Opkts Oerrs Colls
bge0     00:30:48:84:cf:98    31867  3714    24943     0     0
bge1     00:30:48:84:cf:99    23117   989    28967     0     0
lo0                             206     0      206     0     0
bridge0                       56841     0    58398  1312     0
bridge1                       52077     0    52074     0     0
xvif1.0  aa:00:00:17:e9:7f      532    28     1444     0     0
xvif2.0  aa:00:00:51:08:e4    24353     0    29746     0     0
xvif2.1  aa:00:00:51:08:e5    28960     0    22879     0     0
xvif3.0  aa:00:00:08:e9:d2       90     0     1055     0     0
xvif4.0  aa:00:00:49:06:01        4     0      954     0     0


Heh, and with this patch I've another panic for dom2 (that one with two
xennet interfaces):

panic: kernel diagnostic assertion "((pa ^ (pa + m->m_pkthdr.len)) & PG_FRAME) == 0" failed: file "../../../../arch/xen/xen/if_xennet.c", line 1036
Stopped at      netbsd:cpu_Debugger+0x4:        leave
cpu_Debugger(c03f8aa8,ffffffff,c06a0e00,c06a0f38,c06a0f00) at netbsd:cpu_Debugger+0x4
panic(c033c760,c03097c7,c0338e60,c0338c40,40c) at netbsd:panic+0x121
__main(c03097c7,c0338c40,40c,c0338e60,1) at netbsd:__main
xennet_start(c072d038,c03f89cc,c072d038,2,c03f8a18) at netbsd:xennet_start+0x55a
ether_output(c072d038,c06a0e00,c036e2d8,c06ac420,c06a0e00) at netbsd:ether_output+0x38b
ip_output(c06a0e00,0,c036e2d4,1,0) at netbsd:ip_output+0x547
ip_forward(c06a0e00,1,c072f038,1,c072f038) at netbsd:ip_forward+0x176
ip_input(c06a0e00,c02c2f23,c072f038,c06a0c00,0) at netbsd:ip_input+0x29a
ipintr(fffffffe,20,5,1,c03f8e10) at netbsd:ipintr+0xad
DDB lost frame for netbsd:Xsoftnet+0x4f, trying 0xc03f8dd0
Xsoftnet() at netbsd:Xsoftnet+0x4f
--- interrupt ---
emul_freebsd_object(c03f8e4c,0,3b9a0000,ca00) at 0xc03fe000
Bad frame pointer: 0xc02ad0fc
ds          0x11
es          0x11
fs          0x31
gs          0x11
edi         0x1
esi         0x100
ebp         0xc03f88d8  emul_freebsd_object+0x6fd44
ebx         0x1
edx         0xc03fe000  emul_freebsd_object+0x7546c
ecx         0xffffffc0
eax         0xa6b
eip         0xc02ab1b0  cpu_Debugger+0x4
cs          0x9
eflags      0x202
esp         0xc03f88d8  emul_freebsd_object+0x6fd44
ss          0x11
netbsd:cpu_Debugger+0x4:        leave
Stopped at      netbsd:cpu_Debugger+0x4:        leave
db> reboot
syncing disks... panic: m_makewritable: length changed
Stopped at      netbsd:cpu_Debugger+0x4:        leave
db> 

--
Mishka.