Date: Fri, 09 Apr 2010 11:35:51 -0700 From: Julian Elischer <julian@elischer.org> To: Luigi Rizzo <rizzo@iet.unipi.it> Cc: virtualization@freebsd.org, anchie@freebsd.org, Anders Hagman <anders.hagman@halleforshunden.org> Subject: Re: dummynet and vnet kernel panic Message-ID: <4BBF7387.5010604@elischer.org> In-Reply-To: <20100409141722.GA53191@onelab2.iet.unipi.it> References: <4BBCE3EE.506@halleforshunden.org> <20100407203802.GA91356@onelab2.iet.unipi.it> <4BBCF17F.4000408@elischer.org> <20100409141722.GA53191@onelab2.iet.unipi.it>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4/9/10 7:17 AM, Luigi Rizzo wrote: > On Wed, Apr 07, 2010 at 01:56:31PM -0700, Julian Elischer wrote: >> On 4/7/10 1:38 PM, Luigi Rizzo wrote: >>> On Wed, Apr 07, 2010 at 09:58:38PM +0200, Anders Hagman wrote: Note: different To: list >>>> Hi >>>> >>>> When using dummynet inside a vnet node with a simple pipe the kernel >>>> panic on the first packet. >>>> >>>> I use 8.0-STABLE cvsuped at 7 Apr 15:28 >>>> The ipfw code with dummynet is largely changed and the patch in the url >>>> below will not work. >>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=143621 >>>> >>>> Is there a fix in the near future? >>> >>> haven't tried it myself, but adapting the patch seems >>> reasonably trivial. I'll see what i can do. >>> >>> Are there any vnet experts who can comment ? >> >> the change itself looks as if it makes sense >> but I have not really tested it or gone to great length. >> >> ----------- >> >> the following URL gives you the change that was made to make the OLD >> version of dummynet Vimage compatible. >> >> http://p4db.freebsd.org/fileLogView.cgi?FSPC=//depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c > > Question: > the change in PR 143621 just makes sure that curvnet > points to something sensible while a packet is reinjected > by dummynet_send(); > the code in P4 does something completely different, as it > remaps the global variables to the per-vimage ones, and does > not seem to touch dummynet_send() at all. > So how does the code in P4 make sure that curvnet is set properly ? I can't say becasue I didn't do it. But I believe after that change, dummynet was virtualized, but as I didn't do it I can't say what was tested. > >> does this still apply to 8.x? or did you redo the dummynet in 8? >> if you didn't it may be worth looking to see if these changes apply to >> 8.x real soon before it's frozen. > > former global variables are now mostly in a single struct, dn_cfg. > There are however 150 lines where the global variable is used, so > I am bit scared at renaming all of these occurrences from dn_cfg > to V_dn_cfg. I'd rather follow a different approach, i.e it woudl work but we avoided that way because we specifically wantet to be able to see at a glance whether virtualization is involved somewhere. The change of name is just a single vi command.. > > VNET_DEFINE(struct dn_cfg, _base_dn_cfg); > #define dn_cfg VNET(_base_dn_cfg) > > would this make sense to you ? > > cheers > luigi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BBF7387.5010604>