Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Xen modules



     As some of you may seen from my post to tech-kern, I've been
working on getting modules to work with Xen.  At this point, I have
build.sh building and installing Xen specific modules.  I also have
kernels finding the appropriate modules.  amd64 fails to load
modules due to an issue with module_map.  So, I figured I would
work on i386 first.  This is panicing due to a failed call to
hypervisor function.  The panic message is:

# modload example
XXX: mapsize = 695
panic: xpq_flush_cache, err -22
cpu0: Begin traceback...
vpanic(c05023d3,d78f8ce0,d78f8cfc,c0466846,c05023d3,ffffffea,c,c1230d40,c122f140,c057f140)
 at netbsd:vpanic+0x117
panic(c05023d3,ffffffea,c,c1230d40,c122f140,c057f140,c046f260,0,d78f8d2c,c039ced2)
 at netbsd:panic+0x18
xpq_flush_cache(0,0,1,0,0,c057f1b0,0,c1233000,c039ce60,c1233000) at 
netbsd:xpq_flush_cache+0x66
xc_thread(c1233000,860000,c05dc200,0,c010007b,0,0,0,0,0) at 
netbsd:xc_thread+0x72
cpu0: End traceback...

And, the code where it panics is:

void
xpq_flush_cache(void)
{
        struct mmuext_op op;
        int s = splvm(), err;

        xpq_flush_queue();

        XENPRINTK2(("xpq_queue_flush_cache\n"));
        op.cmd = MMUEXT_FLUSH_CACHE;
        if ((err = HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF)) < 0) {
                panic("xpq_flush_cache, err %d", err);
        }
        splx(s); /* XXX: removeme */
}

As best I can tell, err -22 is EINVAL.  Anybody know what's up with this?


Home | Main Index | Thread Index | Old Index