Date: Thu, 3 Feb 2011 11:18:36 +0000 (UTC) From: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net> To: Monthadar Al Jaberi <monthadar@gmail.com> Cc: FreeBSD virtualization mailing list <freebsd-virtualization@freebsd.org> Subject: Re: simulating wireless device (if_alloc panic, VirtualBox, VIMAGE) Message-ID: <20110203111206.S80258@maildrop.int.zabbadoz.net> In-Reply-To: <AANLkTi==53twyjoHL3uc4EQJCkMWdxuc9cvTNJSVuDuy@mail.gmail.com> References: <AANLkTik8D_bLwcUKZdBT-kpkJdDXtPTLvAqfUe0cLoSz@mail.gmail.com> <4D484213.6050100@freebsd.org> <AANLkTikJKZLQVA5X2PQs0oT4iFsZYBw7K07kjQTc9iGD@mail.gmail.com> <4D486108.5060805@freebsd.org> <AANLkTi=mk2vfyXJBaK5mV2sBWEj0-RDZneLs%2BXq_c7sb@mail.gmail.com> <20110202164827.I80258@maildrop.int.zabbadoz.net> <4D4994CE.2090209@freebsd.org> <AANLkTimDZRefv57_nanxGUbHjP1wqeQ41iWHvpXogmvU@mail.gmail.com> <4D49AB29.7070909@freebsd.org> <AANLkTinONnLE9D=c57nQmGBFbWJgqJmeKiRViW3gga2a@mail.gmail.com> <20110203095019.N80258@maildrop.int.zabbadoz.net> <AANLkTinY0AVSsEE5PZaJOqyuinsAN6wkUL9URAqYs0X4@mail.gmail.com> <20110203105747.K80258@maildrop.int.zabbadoz.net> <AANLkTi==53twyjoHL3uc4EQJCkMWdxuc9cvTNJSVuDuy@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 3 Feb 2011, Monthadar Al Jaberi wrote:
> On Thu, Feb 3, 2011 at 11:59 AM, Bjoern A. Zeeb
> <bzeeb-lists@lists.zabbadoz.net> wrote:
>> On Thu, 3 Feb 2011, Monthadar Al Jaberi wrote:
>>
>>>>>> I don't understand why you saw a CRED_TO_VNET of 0
>>>>>> I was under the impression that every process/thread in the system
>>>>>> would
>>>>>> be
>>>>>> on vnet0
>>>>>> in a vimage kernel.
>>>>>
>>>>> This is how my printf looks like:
>>>>> struct thread *td = curthread;
>>>>> struct vnet *v = TD_TO_VNET(td);
>>>>> struct ucred *cred = CRED_TO_VNET(td->ucred);
>>>>> struct vnet *td_vnet = td->td_vnet;
>>>>
>>>> here's your problem:
>>>>
>>>> strcut vnet *vnet = cred->cr_prison->pr_vnet;
>>>
>>> When I add CURVNET_SET(CRED_TO_VNET(curthread->td_ucred)); I get a panic
>>> too...
>>> But your suggestion works if I do like this:
>>> curthread->td_vnet = curthread->td_ucred->cr_prison->pr_vnet;
>>>
>>> CRED_TO_VNET(curthread->td_ucred) returns NULL
>>
>> I wonder how you are building your module and if VIMAGE is properly
>> defined. If it's not that would explain a lot of things.
>
> I have put options VIMAGE, rebuild both world and kernel.
>
> I can create jails with vnet options...
>
> I build my module with the standard Makefile for modules:
> ...
> KMOD = wtap
> ...
> SRCS = if_wtap_module.c if_wtap.c if_medium.c hal.c
>
> .include <bsd.kmod.mk>
Right but are you building your module along with the kernel or
outside the tree? In the latter case you may want to add soemthing
like
SRCS+= opt_global.h
.if defined(KERNBUILDDIR)
MKDEP= -include ${KERNBUILDDIR}/opt_global.h
.else
CFLAGS+= -include opt_global.h
MKDEP= -include opt_global.h
opt_global.h:
echo "#define VIMAGE 1" > ${.TARGET}
.endif
and/or point KERNBUILDDIR to where you built your kernels.
>>
>>
>>>>> printf("td=%p, td->td_vnet=%p, td->td_ucred=%p, TD_TO_VNET=%p,
>>>>> CRED_TO_VNET=%p\n", td, td_vnet, td->td_ucred, v, cred);
>>>>>
>>>>> I made a fast search in /usr/src for "td_vnet" and found it was
>>>>> assigned only in
>>>>> int fork1(td, flags, pages, procp):
>>>>> #ifdef VIMAGE
>>>>> td2->td_vnet = NULL;
>>>>> td2->td_vnet_lpush = NULL;
>>>>> #endif
>>>>
>>>> Nice try. Want another search? Hint: there is this in vnet.h:
>>>>
>>>> #define curvnet curthread->td_vnet
>>>>
>>>> And then you'll, again, find the CURVNET_SET_* macros.
>>>
>>> Thank you
>>
>> Something you may find useful as well btw is:
>>
>> http://people.freebsd.org/~bz/20100530-02.vnet.9.html
>
> weired compiler complains about that there is no <sys/vnet.h>, I
> include <net/vnet.h> maybe old documentation?
it's net/vnet.h. Documentation bug from a local transisiton time to
the general framework. Thanks for catching;) net/vnet.h will
obviously stay.
--
Bjoern A. Zeeb You have to have visions!
<ks> Going to jail sucks -- <bz> All my daemons like it!
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110203111206.S80258>
