J. Aaron Pendergrass
2007-May-18 19:11 UTC
[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@lists.xensource.com lists.xensource.com/xen-devel