From owner-freebsd-virtualization@FreeBSD.ORG Thu Feb 3 12:07:23 2011 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41D82106566B for ; Thu, 3 Feb 2011 12:07:23 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id BF8B88FC19 for ; Thu, 3 Feb 2011 12:07:20 +0000 (UTC) Received: by wwf26 with SMTP id 26so1039453wwf.31 for ; Thu, 03 Feb 2011 04:07:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Lw+hkzkjMFw3WtPGeLrA3yu7Su5IN5p8G/DUCsa7O1M=; b=TRJmr9FL7Llt/+0Yy1S4Q8FoaR3u9vfSNDC21cQewp30cgRBLYZ9TvTOWx/Svxoobz zoWwF72ECUcxVYJ4iYJrhzjhq9Se6vMjdv4h8kYScRXm6wr9tsMb97knrHk82XN8Ft+6 p9GDxcR6lWG8uEiO1Ar+tEQJoMx170tzZRNCc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=ZftEga3lzeEiqLtEUilSi+tJ90F+MZ8hsVJFZJ2WnWhvoZ8GYWXAB4sKNF6HnYLZQY o0HKAB7lJ8FYUpYR1mgJswUsWIJAzRCKsrKarvAc3/6oHjISxpR4Rki7aRpu0D6Xevkr idriK3uJ9w8Fc1c1p2tqlTsuNU4bNxxk250+U= MIME-Version: 1.0 Received: by 10.227.129.17 with SMTP id m17mr10504662wbs.79.1296734839486; Thu, 03 Feb 2011 04:07:19 -0800 (PST) Received: by 10.227.134.137 with HTTP; Thu, 3 Feb 2011 04:07:19 -0800 (PST) In-Reply-To: <20110203111206.S80258@maildrop.int.zabbadoz.net> References: <4D484213.6050100@freebsd.org> <4D486108.5060805@freebsd.org> <20110202164827.I80258@maildrop.int.zabbadoz.net> <4D4994CE.2090209@freebsd.org> <4D49AB29.7070909@freebsd.org> <20110203095019.N80258@maildrop.int.zabbadoz.net> <20110203105747.K80258@maildrop.int.zabbadoz.net> <20110203111206.S80258@maildrop.int.zabbadoz.net> Date: Thu, 3 Feb 2011 13:07:19 +0100 Message-ID: From: Monthadar Al Jaberi To: "Bjoern A. Zeeb" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: FreeBSD virtualization mailing list Subject: Re: simulating wireless device (if_alloc panic, VirtualBox, VIMAGE) X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Feb 2011 12:07:23 -0000 On Thu, Feb 3, 2011 at 12:18 PM, Bjoern A. Zeeb wrote: > On Thu, 3 Feb 2011, Monthadar Al Jaberi wrote: > >> On Thu, Feb 3, 2011 at 11: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 =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 pan= ic >>>> 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. =A0If 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 =A0 =A0=3D =A0wtap >> ... >> SRCS =A0 =A0=3D =A0if_wtap_module.c if_wtap.c if_medium.c hal.c >> >> .include > > Right but are you building your module along with the kernel or > outside the tree? =A0In the latter case you may want to add soemthing > like > > SRCS+=3D =A0 =A0 =A0 =A0 =A0opt_global.h > > .if defined(KERNBUILDDIR) > MKDEP=3D =A0 =A0 =A0 =A0 =A0-include ${KERNBUILDDIR}/opt_global.h > .else > CFLAGS+=3D =A0 =A0 =A0 =A0-include opt_global.h > MKDEP=3D =A0 =A0 =A0 =A0 =A0-include opt_global.h > > opt_global.h: > =A0 =A0 =A0 =A0echo "#define VIMAGE 1" > ${.TARGET} > .endif > > and/or point KERNBUILDDIR to where you built your kernels. Thanks it works now.. > > >>> >>> >>>>>> 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 >> >> weired compiler complains about that there is no , I >> include maybe old documentation? > > it's net/vnet.h. =A0Documentation bug from a local transisiton time to > the general framework. =A0Thanks for catching;) =A0net/vnet.h will > obviously stay. > > -- > Bjoern A. Zeeb =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 You have to have visions! > =A0 =A0 =A0 =A0 Going to jail sucks -- All my daemons like it! > =A0http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html --=20 //Monthadar Al Jaberi