PERFORCE change 161232 for review
Marko Zec
zec at FreeBSD.org
Tue Apr 28 10:10:55 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=161232
Change 161232 by zec at zec_amdx2 on 2009/04/28 10:10:19
Set curvnet to the default vnet during system autoconfiguration,
and clear it before turning on SMP.
Merge from vimage branch a DDB command for listing vnets.
Affected files ...
.. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#20 edit
Differences ...
==== //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#20 (text+ko) ====
@@ -181,7 +181,8 @@
free(vml, M_VIMAGE);
}
-static int vnet_mod_constructor(struct vnet_modlink *vml)
+static int
+vnet_mod_constructor(struct vnet_modlink *vml)
{
const struct vnet_modinfo *vmi = vml->vml_modinfo;
@@ -300,7 +301,9 @@
if (vnet == NULL)
panic("vi_alloc: malloc failed");
LIST_INSERT_HEAD(&vnet_head, vnet, vnet_le);
+ vnet->vnet_magic_n = VNET_MAGIC_N;
+ /* We MUST clear curvnet in vi_init_done before going SMP. */
curvnet = LIST_FIRST(&vnet_head);
#endif
}
@@ -310,6 +313,10 @@
{
struct vnet_modlink *vml_iter;
+#ifdef VIMAGE
+ curvnet = NULL;
+#endif
+
if (TAILQ_EMPTY(&vnet_modpending_head))
return;
@@ -324,5 +331,36 @@
SYSINIT(vimage, SI_SUB_VIMAGE, SI_ORDER_FIRST, vi_init, NULL);
SYSINIT(vimage_done, SI_SUB_VIMAGE_DONE, SI_ORDER_FIRST, vi_init_done, NULL);
+#endif /* !VIMAGE_GLOBALS */
+
+#ifdef VIMAGE
+#ifdef DDB
+static void
+db_vnet_ptr(void *arg)
+{
+
+ if (arg)
+ db_printf(" %p", arg);
+ else
+ db_printf(" 0");
+}
+
+DB_SHOW_COMMAND(vnets, db_show_vnets)
+{
+ VNET_ITERATOR_DECL(vnet_iter);
-#endif /* !VIMAGE_GLOBALS */
+ db_printf(" vnet ifs socks");
+ db_printf(" net inet inet6 ipsec netgraph\n");
+ VNET_FOREACH(vnet_iter) {
+ db_printf("%p %3d %5d",
+ vnet_iter, vnet_iter->ifccnt, vnet_iter->sockcnt);
+ db_vnet_ptr(vnet_iter->mod_data[VNET_MOD_NET]);
+ db_vnet_ptr(vnet_iter->mod_data[VNET_MOD_INET]);
+ db_vnet_ptr(vnet_iter->mod_data[VNET_MOD_INET6]);
+ db_vnet_ptr(vnet_iter->mod_data[VNET_MOD_IPSEC]);
+ db_vnet_ptr(vnet_iter->mod_data[VNET_MOD_NETGRAPH]);
+ db_printf("\n");
+ }
+}
+#endif
+#endif /* VIMAGE */
More information about the p4-projects
mailing list