Date: Fri, 13 Jul 2007 22:46:04 +0200 From: Juergen Lock <nox@jelal.kn-bremen.de> To: Craig Boston <craig@yekse.gank.org>, attilio@freebsd.org, freebsd-emulation@freebsd.org, freebsd-ports@freebsd.org Cc: Allan Jude <freebsd@shellfusion.ca> Subject: Re: experimental qemu-devel port update, please test! Message-ID: <20070713204604.GA14827@saturn.kn-bremen.de> In-Reply-To: <20070712180750.GB77654@nowhere> References: <20070702203027.GA45302@saturn.kn-bremen.de> <46925324.9010908@freebsd.org> <3bbf2fe10707091140h6cdc7469nac5be03a8c8a60cb@mail.gmail.com> <200707092000.29768.dfr@rabson.org> <200707092149.l69LnXe9023835@saturn.kn-bremen.de> <20070712175252.GA77654@nowhere> <20070712180750.GB77654@nowhere>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jul 12, 2007 at 01:07:50PM -0500, Craig Boston wrote: > On Thu, Jul 12, 2007 at 12:52:52PM -0500, Craig Boston wrote: > > For some reason when the ioctl is issued, curproc points to a totally > > bogus proc structure. curthread seems to be sane as far as I can tell, > > but the process it claims to belong to is full of junk. > > Aha! The problem isn't that curproc is garbage, but rather that it's > being interpreted wrong. > > struct proc has some extra fields when KSE is #defined. KSE recently > became a kernel option and was put in the DEFAULTS file, so everyone's > kernel has it defined. But kqemu is being compiled without it. > > I compiled with -DKSE and now kqemu works! > Aaah-haah! Thanks for catching this one! :) > This seems like it would be a common problem for modules compiled > outside the kernel tree. Is there an established way to get the > standard configuration options? > Good q... > I'm thinking also about other options like SMP, that for instance > changes the way mutexes work. > > Craig Okay what do you guys think about the following patch for now: (the SMP thing might actually be the cause for ports/113430, can someone verify?) Index: Makefile =================================================================== RCS file: /home/pcvs/ports/emulators/kqemu-kmod/Makefile,v retrieving revision 1.17 diff -u -r1.17 Makefile --- Makefile 29 Jun 2007 15:57:16 -0000 1.17 +++ Makefile 13 Jul 2007 20:36:01 -0000 @@ -7,6 +7,7 @@ PORTNAME= kqemu PORTVERSION= 1.3.0.p11 +PORTREVISION= 1 CATEGORIES= emulators kld MASTER_SITES= http://qemu.org/ \ http://fabrice.bellard.free.fr/qemu/ \ @@ -54,6 +55,23 @@ IGNORE= kqemu requires kernel source to be installed .endif +.if ${OSVERSION} >= 700024 && !defined(NOKSE) +# XXX this is wrong if you have `nooption KSE' in your kernel config, +# please define NOKSE in that case +CFLAGS+= -DKSE +.endif + +# XXX the following is wrong if you run a custom SMP kernel on a +# singleprocessor machine (but it probably doesn't really matter) +KERNCONF!= ${UNAME} -v | ${SED} 's-.*/--' +NCPU!= ${SYSCTL} -n hw.ncpu 2>/dev/null +# we know 7.x GENERIC has SMP +.if ${KERNCONF} == "GENERIC" && ${OSVERSION} >= 700000 +CFLAGS+= -DSMP +.elif ${NCPU} > 1 +CFLAGS+= -DSMP +.endif + do-build: @(cd ${BUILD_WRKSRC}/common; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} Makefile ${MAKE_ARGS} ${ALL_TARGET}) @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${ALL_TARGET}) Index: pkg-descr =================================================================== RCS file: /home/pcvs/ports/emulators/kqemu-kmod/pkg-descr,v retrieving revision 1.2 diff -u -r1.2 pkg-descr --- pkg-descr 28 Aug 2006 22:52:42 -0000 1.2 +++ pkg-descr 2 Jul 2007 18:57:34 -0000 @@ -1,3 +1,3 @@ KQEMU is a qemu accelerator kernel module on x86/amd64. -WWW: http://qemu.org/qemu-accel.html +WWW: http://fabrice.bellard.free.fr/qemu/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070713204604.GA14827>