Subject: Problems with bridge(4) and vlan(4)
To: None <port-xen@netbsd.org>
From: Martti Kuparinen <martti.kuparinen@iki.fi>
List: port-xen
Date: 04/28/2005 15:40:10
Hi!

I'm having bridge and/or vlan problems with my Xen server. Here's
how things are configured on this NetBSD/xen 3.99.3 server:

wm0 is used only by the Xen domain0.

wm1 is connected to a switch and this port transports all VLANs
to /from the Xen server in tagged mode. I create the VLANs and
bridges withn these kind of /etc/ifconfig.vlanNNNN files:


create
vlan 1208 vlanif wm1
!ifconfig bridge1208 create
!brconfig bridge1208 add vlan1208 stp vlan1208 up


When I start the virtual machines each xvifN.M is connected to
one of the bridgeNNNN interfaces with

# brconfig bridgeNNNN add xvifN.M stp xvifN.M up
# ifconfig xvifN.M up

All is fine when only 3 VMs are running (in other words 4 entities
are connected to the bridge, i.e. vlanNNNN, xvif1.M, xvif2.M, xvif3.M).

When I start the 4th (or stop later any of the 4 the running VMs)
I see a 30 second stop in all network activity. Same thing happens
when I start more VMs, each start introduces 30 sec network stop.

To make things harder to analyze the 4th VM isn't always the
trouble maker, sometimes it's the 10th started VM which makes the
network to halt for a while.

Any ideas what's going on? Below is my kernel config diff against
the generic XEN0 kernel.

Martti




--- XEN0        2005-04-28 13:41:20.000000000 +0300
+++ DOMAIN0     2005-04-28 13:41:21.000000000 +0300
@@ -8,7 +8,8 @@
  #options       UVMHIST_PRINT
  #options       SYSCALL_DEBUG

-maxusers       32              # estimated number of users
+maxusers       128             # estimated number of users
+options        NMBCLUSTERS=16384 # max mbuf clusters (32M)

  #
  options        XEN
@@ -49,8 +50,8 @@
  options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions 
in kernel

  # Diagnostic/debugging support options
-options        DIAGNOSTIC      # expensive kernel consistency checks
-options        DEBUG           # expensive debugging checks/support
+#options       DIAGNOSTIC      # expensive kernel consistency checks
+#options       DEBUG           # expensive debugging checks/support
  options        KMEMSTATS       # kernel memory statistics (vmstat -m)
  options        DDB             # in-kernel debugger
  options        DDB_ONPANIC=1   # see also sysctl(8): `ddb.onpanic'
@@ -549,7 +550,7 @@
  # options      VINUMDEBUG

  pseudo-device  md              1       # memory disk device (ramdisk)
-pseudo-device  vnd             4       # disk-like interface to files
+pseudo-device  vnd             128     # disk-like interface to files

  # network pseudo-devices
  pseudo-device  bpfilter        8       # Berkeley packet filter