Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Feb 2011 09:11:51 -0800
From:      Julian Elischer <julian@freebsd.org>
To:        "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
Cc:        FreeBSD virtualization mailing list <freebsd-virtualization@freebsd.org>
Subject:   Re: simulating wireless device (if_alloc panic, VirtualBox, VIMAGE)
Message-ID:  <4D4AE1D7.9030106@freebsd.org>
In-Reply-To: <20110203105747.K80258@maildrop.int.zabbadoz.net>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2/3/11 2:59 AM, Bjoern A. Zeeb 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.
>
>
>>>> 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

that's excellent!

checkin?

>
>
> _______________________________________________
> freebsd-virtualization@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to "freebsd-virtualization-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D4AE1D7.9030106>