Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Apr 2009 20:56:24 +0200
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        Bakul Shah <bakul@bitblocks.com>
Cc:        jtidwell <necanthrope@gmail.com>, freebsd-emulation@freebsd.org
Subject:   Re: cannot get kqemu to load with kldload
Message-ID:  <20090412185624.GB65339@triton.kn-bremen.de>
In-Reply-To: <20090412182939.E23F15B23@mail.bitblocks.com>
References:  <22999502.post@talk.nabble.com> <22999521.post@talk.nabble.com> <200904121415.n3CEFDCf025538@triton.kn-bremen.de> <20090412182939.E23F15B23@mail.bitblocks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 12, 2009 at 11:29:39AM -0700, Bakul Shah wrote:
> On Sun, 12 Apr 2009 16:15:13 +0200 Juergen Lock <nox@jelal.kn-bremen.de>  wrote:
> > In article <20090411192326.GA73059@freebsd.org> you write:
> > >On Sat, Apr 11, 2009 at 02:43:52AM -0700, jtidwell wrote:
> > >> 
> > >> 
> > >> 
> > >> jtidwell wrote:
> > >> > 
> > >> > Greetings, qemu folk :)
> > >> > 
> > >> > I've recently upgraded my FreeBSD box from 6.2 to 7.2.  I'm trying to
> > >> > install qemo, but I keep getting stuck at the point where I load kqemu
> > >> > with kldload.  The module file exists in /boot/modules, but I get this
> > >> > error every time I try to load:
> > >> > 
> > >> > # kldload kqemu
> > >> > kldload: can't load kqemu: No such file or directory
> 
> This is a confusing message when kldload can't find a symbol.
> 
> > >> > 
> > >> > # ls /boot/modules
> > >> > kqemu.ko        linker.hints    rt2500_sys.ko   rt61_sys.ko
> > >> > 
> > >> > 
> > >> 
> > >> I forgot to add, I get this error message on the console when i try to loa
> > d
> > >> the module:
> > >> 
> > >> link_elf : symbol sched_lock undefined
> > >
> > >you use ULE, right? try switching to 4BSD... the .ko uses 4BSD specific thin
> > gs,
> > >no idea why
> 
> In kqemu-kmod-devel, kqemu-freebsd.c uses sched_lock() in
> kqemu_schedule() if __FreeBSD_version is < 700044 & > 500000.
> 7.0 has __FreeBSD_version defined to be 700055.
> 7.1 has __FreeBSD_version defined to be 701000.
> 
> So the OP shouldn't have had the problem he is seeing if he
> has indeed updated to 7.x and is getting the right kqemu.ko.
> 
> I suggest he do pkg_delete /var/db/pkg/kqemu-kmod*, ensure
> that /boot/module/kqemu.ko is gone and then rebuild and
> install kqemu-kmod-devel.
> 
> But this brings up another problem with kqemu: if you are
> using SCHED_4BSD with 7.x or current, kqemu is not guaranteed
> to work.

Oh, so the code it then uses in kqemu_schedule() is ule only?
Does the old scheduler still use sched_lock?

    [...]
    struct thread *td = curthread;
    thread_lock(td);
    mi_switch(SW_VOL, NULL);
    thread_unlock(td);
    [...]

 Wondering...
	Juergen



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