Date: Fri, 21 Sep 2012 12:22:36 +0300 From: Mikolaj Golub <trociny@FreeBSD.org> To: Anuranjan Shukla <anshukla@juniper.net> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: Proposal for changes to network device drivers and network stack (RFC) Message-ID: <20120921092235.GC66984@gmail.com> In-Reply-To: <CC6EF6B2.1917A%anshukla@juniper.net> References: <5F3C03B6-01D0-42DE-BE9E-323DBDC90C8E@neville-neil.com> <CC6EF6B2.1917A%anshukla@juniper.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 07, 2012 at 01:28:16AM -0700, Anuranjan Shukla wrote: > Hi George, > Thanks for taking a look. Some answers/comments below. > > > > >> Building FreeBSD without the network stack (network stack as a module) > >> ---------------------------------------------------------------------- > >> > >This would be interesting for many reasons, and I think it would be a good > >contribution. Does the work you've done in this area handle the VNET > >stuff that is in the stack as well? That is, how well does the network > >stack > >as a module play with the vnet architecture? > > I'll follow up on this one separately. FYI, there is at least this issue with virtualized global variables in modules: http://lists.freebsd.org/pipermail/freebsd-virtualization/2011-July/000737.html On archs that use link_elf.c (i.e. all except amd64, which uses link_elf_obj.c) virtualized global variables in modules can not be accessed from another modules, because link_elf on a module load does relocation only for VNET variables defined in this module. As it was pointed by Marko Zec, the same issue is with DPCPU. The latest patch I have (both for VNET and DPCPU): http://people.freebsd.org/~trociny/link_elf.c.pcpu_vnet.patch The fix is to make the linker on a module load recognize "external" VNET/DPCPU variables defined in the previously loaded modules and relocate them accordingly. For this set_pcpu_list and set_vnet_list are used, where the addresses of modules 'set_pcpu' and 'set_vnet' linker sets are stored in. -- Mikolaj Golub
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120921092235.GC66984>