I'm trying to build a Xen kernel for 8.1. Mostly everything is working so far (with the exception of the known bugs), which is great. :) I cry a little bit that FreeBSD cannot be dom0, but one step at a time. :)
I noticed "options PAE" in the provided example XEN kernel. I don't have a lot of experience with PAE, but I have heard it's a dirty hack for getting >4gb on i386 and that it was mostly used with XEN when i386 was the only viable dom0. We are using an amd64 Debian host and running only i386 PV guests with relatively small amounts of RAM. (<3gb). So I thought that may not be needed in our environment. Here's the config file I tried: ------------ START ---------------- include XEN ident XENEX #nooptions PAE nodevice atkbdc nodevice atkbd nodevice kbdmux nodevice psm ------------ END ----------------- With 8.1-STABLE r214066, building the above kernel succeeds. However, uncommenting the "nooptions PAE" gets the following errors: cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -Werror /usr/src/sys/i386/xen/xen_machdep.c /usr/src/sys/i386/xen/xen_machdep.c: In function 'initvalues': /usr/src/sys/i386/xen/xen_machdep.c:1075: error: 'IdlePTDnew' undeclared (first use in this function) /usr/src/sys/i386/xen/xen_machdep.c:1075: error: (Each undeclared identifier is reported only once /usr/src/sys/i386/xen/xen_machdep.c:1075: error: for each function it appears in.) /usr/src/sys/i386/xen/xen_machdep.c:1080: error: 'IdlePTDnewma' undeclared (first use in this function) /usr/src/sys/i386/xen/xen_machdep.c:1083: error: 'IdlePDPTnew' undeclared (first use in this function) /usr/src/sys/i386/xen/xen_machdep.c:1122: error: 'IdlePDPT' undeclared (first use in this function) /usr/src/sys/i386/xen/xen_machdep.c:1123: error: 'IdlePDPTma' undeclared (first use in this function) /usr/src/sys/i386/xen/xen_machdep.c:1123: error: 'IdlePDPTnewma' undeclared (first use in this function) cc1: warnings being treated as errors /usr/src/sys/i386/xen/xen_machdep.c:891: warning: unused variable 'pdir_shadow_ma' *** Error code 1 I took a look at xen_machdep.c and it looks like these values are declared inside an #ifdef PAE and then defined in a later #ifdef PAE, and then referenced at the lines cited above without one. I really don't know if XEN can/should be able to be built without PAE, but I am pretty sure the above means that there's a logic flaw somewhere in the #ifdef arrangements. Unfortunately I don't know what this stuff is so I don't know if the declaration/definition should come out of the #ifdefs or if the references above should go inside one. I thought I would point it out in case there's someone reading who understands this stuff better than I do. I.e. at all. :) As an aside, I also noticed that in the XEN example config the lines "option XEN" appears whereas everything else is the usual "options WHATEVER" and I was wondering if that's significant or if it's just an equivalent alias I haven't noticed before. Thanks! _______________________________________________ freebsd-xen@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-xen To unsubscribe, send any mail to "freebsd-xen-unsubscr...@freebsd.org"