Date: Thu, 3 Feb 2011 10:59:32 +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: <20110203105747.K80258@maildrop.int.zabbadoz.net> In-Reply-To: <AANLkTinY0AVSsEE5PZaJOqyuinsAN6wkUL9URAqYs0X4@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>
next in thread | previous in thread | raw e-mail | index | archive | help
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-100765273-1296730772=:80258 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE 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 wou= ld >>>> be >>>> on vnet0 >>>> in a vimage kernel. >>> >>> This is how my printf looks like: >>> struct thread *td =3D curthread; >>> struct vnet *v =3D TD_TO_VNET(td); >>> struct ucred *cred =3D CRED_TO_VNET(td->ucred); >>> struct vnet *td_vnet =3D td->td_vnet; >> >> here's your problem: >> >> strcut vnet *vnet =3D 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 =3D 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=3D%p, td->td_vnet=3D%p, td->td_ucred=3D%p, TD_TO_VNET=3D%p, >>> CRED_TO_VNET=3D%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 >>> =A0 =A0 =A0 =A0td2->td_vnet =3D NULL; >>> =A0 =A0 =A0 =A0td2->td_vnet_lpush =3D NULL; >>> #endif >> >> Nice try. =A0Want another search? =A0Hint: 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 --=20 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 --0-100765273-1296730772=:80258--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110203105747.K80258>