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
https://svnweb.freebsd.org/base/stable/11/sys/netinet/if_ether.c?view=annotate#l427

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:

https://svnweb.freebsd.org/base?view=revision&revision=308126

See PR 213439,
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=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
VIMAGE.
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;
423
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     }
429
430

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
SK
_______________________________________________
freebsd-virtualization@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to 
"freebsd-virtualization-unsubscr...@freebsd.org"

Reply via email to