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

[Xen-devel] mach_mpspec.h, mach_apicdef.h & xenbus_mkdir



Hello list,
I'm trying to build a linux kernel module that uses xenstore to report
on the modules loaded into a DomU's kernel.  When building against
the current unstable (changeset 15080:089696e0c603) I'm getting build
errors about not being able to find mach_mpspec.h and mach_apicdef.h

make -C /root/xen-unstable.hg/linux-2.6.18-xen O=/root/xen- unstable.hg/build-linux-2.6.18-xen_x86_32 modules
  CC [M]  /root/lkim-old/kernel_modules/modreporter.o
In file included from include2/asm/mach-xen/asm/smp.h:17,
from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/smp.h:18, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/sched.h:63, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/module.h:9,
                 from /root/modreporter/modreporter.c:22:
include2/asm/mpspec.h:6:25: error: mach_mpspec.h: No such file or directory
In file included from include2/asm/mach-xen/asm/smp.h:17,
from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/smp.h:18, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/sched.h:63, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/module.h:9,
                 from /root/modreporter/modreporter.c:22:
include2/asm/mpspec.h:8: error: ‘MAX_MP_BUSSES’ undeclared here (not in a function) include2/asm/mpspec.h:22: error: ‘MAX_IRQ_SOURCES’ undeclared here (not in a function) In file included from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/smp.h:18, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/sched.h:63, from /root/xen-unstable.hg/linux-2.6.18-xen/include/ linux/module.h:9,
                 from /root/modreporter/modreporter.c:22:
include2/asm/mach-xen/asm/smp.h:75:26: error: mach_apicdef.h: No such file or directory

Copying these files from mach-generic or mach-default allows the build to proceed. But on loading the module it receives an error trying to call xenbus_mkdir.

Specifically it calls:
        if((ret = xenbus_mkdir(t,"modules" , ""))){
printk(KERN_ERROR "modreporter: Error making \"modules\" directory: %d.\n", ret);
        }

It hits the error condition with error value -22 (-EINVAL).

I used xenstore's trace option, and a number of printk's in the xenbus_mkdir path and determined that the problem seems to be that xenbus_mkdir is not receiving the string "modules" as it's argument (it receives a NULL pointer which gets fed throughout the system until the xenstored in dom0 refuses
to make the NULL directory).

Are these errors related?

I've tried building the same module on a non-SMP machine with xen- unstable changeset . On this machine it doesn't hit the errors about mach_mpspec.h and mach_apicdef.h, and is able to create
the xenstore directory.

Thanks,
-aaron
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.