FreeBSD 11 Stable on a Xen :: bridge0 crashing server :: &ro

SK fbstable at
Fri Jan 20 18:13:07 UTC 2017

On 20/01/2017 16:44, Roger Pau Monné wrote:
> On Fri, Jan 20, 2017 at 07:20:15PM +0300, Andrey V. Elsukov wrote:
>> On 20.01.2017 18:57, Trond Endrestøl wrote:
>>>> Here is the situation:
>>>> I have a VPS server from a well reputed provider (and they deserve the
>>>> reputation), running FreeBSD 11 stable x64 under Xen Full Virtualization
>>>> (HVM). I have the xn0 interface which is working fine. I intend to use VIMAGE,
>>>> so I compiled the kernel, added cloned_interface="bridge0" and restarted the
>>>> server. But as soon as I am attaching the xn0 to bridge0, the kernel is
>>>> panicking and the server restarting.
>>>> Any suggestion/pointer/test-instruction is highly appreciated.
>>> The code crashes at line 427 of sys/netinet/if_ether.c:
>>>    ARPSTAT_INC(txrequests);
>>> See
>>> stable/11 has problems accounting the outgoing octets of any xn
>>> interface, although this isn't connected to your case.
>>> Just to rule out any uncertainty, try this patch:
>>> See PR 213439,
>>> Note, I'm not a developer nor a committer, just a humble sysadmin.
>> This problem is unrelated. ARP statistics is global and isn't related to
>> some specific interface. IMHO, the kernel panics due to missing VNET
>> context. As I see from the code in sys/dev/xen, it is not capable with
> I cannot really look into this right now due to lack of time, but I'm more than
> happy to review/apply patches in order to fix this.
> Roger.
Further to my previous, since the provider of the VPS confirmed that 
they could run FreeBSD 10 and use bridge without any issue, I thought 
I'd have a look. The section from my crash-debug
0xffffffff80c2dd93 is in arprequest (/usr/src/sys/netinet/if_ether.c:427).
422             ro.ro_flags = 0;
424             m->m_flags |= M_BCAST;
425             m_clrprotoflags(m);     /* Avoid confusing lower layers. */
426             (*ifp->if_output)(ifp, m, &sa, &ro);
427             ARPSTAT_INC(txrequests);
428     }

I compared the file (if_ether.c) from 10, and it seems that the line 426 
is different -- it contains NULL instead of &ro at the end. I did nto 
see any ro.* (right before this section) on the file in 10 either. Could 
this be significant?

Thanks and regards

More information about the freebsd-virtualization mailing list