Hi, I am trying to boot a guest OS (SuSE 2.6 kernel) on Xen. But, it is giving me boot errors. The steps I followed: 1) Created a raw diskFile with ext3 filesystem 2) Copied /{root,etc,dev,var,usr,bin,sbin,lib} from my SuSE 2.6 installation on to the diskFile 3) Created a config file as: Important parameters are as follows: kernel = "/boot/vmlinuz-2.4.27-xenU" disk = [''file:FullPathToTheDiskFile,sda1,w''] root = "/dev/sda1" (other parameters skipped) 4) Booted-up the new Domain It is giving some-errors like /lib/modules/2.6.9-xenU/modules.dep not found. And boots up in the Can anyone tell me what exact changes do i need to make to the SuSE 2.6 kernel to be able to boot it as a new Domain? I understand that the machine dependent code has to be changed with new code provided by Xen....but I could not find a place where it says........."These are the exacts steps you need to follow for porting of Guest OS in a Domain" Thanks in advance! Amitabh P. Tamhane ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Hi, I am trying to boot a guest OS (SuSE 2.6 kernel) on Xen. But, it is giving me boot errors. The steps I followed: 1) Created a raw diskFile with ext3 filesystem 2) Copied /{root,etc,dev,var,usr,bin,sbin,lib} from my SuSE 2.6 installation on to the diskFile 3) Created a config file as: Important parameters are as follows: kernel = "/boot/vmlinuz-2.4.27-xenU" disk = [''file:FullPathToTheDiskFile,sda1,w''] root = "/dev/sda1" (other parameters skipped) 4) Booted-up the new Domain It is giving some-errors like /lib/modules/2.6.9-xenU/modules.dep not found. And boots up in the Can anyone tell me what exact changes do i need to make to the SuSE 2.6 kernel to be able to boot it as a new Domain? I understand that the machine dependent code has to be changed with new code provided by Xen....but I could not find a place where it says........."These are the exacts steps you need to follow for porting of Guest OS in a Domain" Thanks in advance! Amitabh P. Tamhane ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Amitabh Tamhane wrote:> Hi, > I am trying to boot a guest OS (SuSE 2.6 kernel) on Xen. But, it is > giving me boot errors. > > The steps I followed: > 1) Created a raw diskFile with ext3 filesystem > 2) Copied /{root,etc,dev,var,usr,bin,sbin,lib} from my SuSE 2.6 > installation on to the diskFileI would suggest you copy everything from a non-running linux installation. You could also use a running machine as starting point, but you should exclude these files : /proc/* /var/log/*/* /var/run/*/* /var/run/*.pid /var/tmp/* /var/lock/*/* /dev/mapper/* /tmp/* /sys/* /mnt/*/* Note that you NEED /proc, but you don''t need anything under it. Then you have to modify /etc/fstab accordingly, and use /dev/sda1 as root.> 3) Created a config file as: > Important parameters are as follows: > kernel = "/boot/vmlinuz-2.4.27-xenU" > disk = [''file:FullPathToTheDiskFile,sda1,w''] > root = "/dev/sda1" > (other parameters skipped) > > 4) Booted-up the new Domain > > It is giving some-errors like /lib/modules/2.6.9-xenU/modules.dep not > found. And boots up in the >You need to copy /lib/modules/2.6.9-xenU/ from the physical server (the server you''re running xen''s "make install" from) to the virtual server. Alternatively, recompile the xen-U kernel to disable modules support and you can ignore the error completely. If you''re running athlon-xp or P4/Xeon, I can share my xen-U kernel (or the .config), with modules disabled, optimized for those platform.> Can anyone tell me what exact changes do i need to make to the SuSE > 2.6 kernel to be able to boot it as a new Domain? >Are you using 2.4 or 2.6? Your xen config file says 2.4.> I understand that the machine dependent code has to be changed with > new code provided by Xen....but I could not find a place where it > says........."These are the exacts steps you need to follow for > porting of Guest OS in a Domain" >Because it''s not there yet :) Regards, Fajar ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Thank you for the information! And yes, I am trying to boot a 2.6 kernel and I am also using the vmlinuz-2.6*xenU in the config file (it was a typo in my last email) Actually, I was playing with it for a while and could partially boot the guest OS. The exact error I am getting is: Could not find LABLE=/ and boots in the "repair filesystem" mode. The guest OS could talk with the outside world but `xm list` command shows state as -b--- (blocked) for the domain I am trying to boot. I didn''t check the /etc/fstab file, could that be the problem or is it because I am not specifying something properly in the config file? Lastly, if you could give me a link to your modified xen-U kernels it would be great. Again thank you for ur feedback. Regards, Amitabh From: "Fajar A. Nugraha" <fajar@telkom.co.id> To: xen-devel@lists.sourceforge.net Subject: Re: [Xen-devel] Porting of Guest OS Date: Thu, 30 Dec 2004 09:58:32 +0700 Amitabh Tamhane wrote:>Hi, >I am trying to boot a guest OS (SuSE 2.6 kernel) on Xen. But, it is giving >me boot errors. > >The steps I followed: >1) Created a raw diskFile with ext3 filesystem >2) Copied /{root,etc,dev,var,usr,bin,sbin,lib} from my SuSE 2.6 >installation on to the diskFileI would suggest you copy everything from a non-running linux installation. You could also use a running machine as starting point, but you should exclude these files : /proc/* /var/log/*/* /var/run/*/* /var/run/*.pid /var/tmp/* /var/lock/*/* /dev/mapper/* /tmp/* /sys/* /mnt/*/* Note that you NEED /proc, but you don''t need anything under it. Then you have to modify /etc/fstab accordingly, and use /dev/sda1 as root.>3) Created a config file as: >Important parameters are as follows: >kernel = "/boot/vmlinuz-2.4.27-xenU" >disk = [''file:FullPathToTheDiskFile,sda1,w''] >root = "/dev/sda1" >(other parameters skipped) > >4) Booted-up the new Domain > >It is giving some-errors like /lib/modules/2.6.9-xenU/modules.dep not >found. And boots up in the >You need to copy /lib/modules/2.6.9-xenU/ from the physical server (the server you''re running xen''s "make install" from) to the virtual server. Alternatively, recompile the xen-U kernel to disable modules support and you can ignore the error completely. If you''re running athlon-xp or P4/Xeon, I can share my xen-U kernel (or the .config), with modules disabled, optimized for those platform.>Can anyone tell me what exact changes do i need to make to the SuSE 2.6 >kernel to be able to boot it as a new Domain? >Are you using 2.4 or 2.6? Your xen config file says 2.4.>I understand that the machine dependent code has to be changed with new >code provided by Xen....but I could not find a place where it >says........."These are the exacts steps you need to follow for porting of >Guest OS in a Domain" >Because it''s not there yet :) Regards, Fajar ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel Amitabh P. Tamhane ''THERE IS NO SHORT-CUT TO SUCCESS!'' ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Amitabh Tamhane wrote:> Thank you for the information! > > And yes, I am trying to boot a 2.6 kernel and I am also using the > vmlinuz-2.6*xenU in the config file (it was a typo in my last email) > > Actually, I was playing with it for a while and could partially boot > the guest OS. > > The exact error I am getting is: Could not find LABLE=/ and boots in > the "repair filesystem" mode.that''s /etc/fstab allright. Change the line that says LABEL=/ to /dev/sda1. You might also need to remove the line that mounts /boot For kernel-2.6-based or nptl-enabled distro, you also need to remove /lib/tls and /usr/lib/tls on the domain root file system (Xen will tell you to do this when it boots).> The guest OS could talk with the outside world but `xm list` command > shows state as -b--- (blocked) for the domain I am trying to boot. >Is that what "-b---" means? All my virtual domains shows that, and yet they''re working perfectly.> I didn''t check the /etc/fstab file, could that be the problem or is it > because I am not specifying something properly in the config file? >First glance says your config is allright. You might want to add swap as /dev/sda2 too, though.> Lastly, if you could give me a link to your modified xen-U kernels it > would be great. >Try this http://clamav.or.id/contrib/xen/ All have modules disabled, so you can ignore all messages about kernel modules. Regards, Fajar ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> > The exact error I am getting is: Could not find LABLE=/ and boots in > > the "repair filesystem" mode. > > that''s /etc/fstab allright. Change the line that says LABEL=/ to > /dev/sda1. You might also need to remove the line that mounts /boot For > kernel-2.6-based or nptl-enabled distro, you also need to remove /lib/tls > and /usr/lib/tls on the domain root file system (Xen will tell you to do > this when it boots).Using LABEL=blah requires a) you to set the label on the disk file you created b) you to boot with a suitable initrd (e.g. one that came with your distro) to perform the lookup of filesystem labels. You will find it easier to get stuff working if you just specify /dev/whatever explicitly in the config file and edit the guest fstab to match.> > The guest OS could talk with the outside world but `xm list` command > > shows state as -b--- (blocked) for the domain I am trying to boot. > > > Is that what "-b---" means? All my virtual domains shows that, and yet > they''re working perfectly.If they''re not doing work on the CPU at this instant then they''re probably blocked - unless they''re doing something CPU intensive they''ll be in that state a lot. If you''ve only got one CPU then you''ll never see another domain in the running state - the fact that dom0 is running at this instant implies that the other domains aren''t :-) HTH, Mark ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Yeah, it worked but I had to edit /etc/fstab file in the guest OS: 1) replaced the LABLE=/ with /dev/sda1 2) removed the line with /boot 3) removed the line with swap Even after that it gave errors for filesystem check. So, I just replaced the /sbin/fsck.ext3 file in guest OS with a script that does nothing. Here are some other errors that I still have: During boot-up: 1) Applying Intel IA32 Microcode update: insmod: /lib/modules/2.6.5-7.97-smp/kernel/arch/i386/kernel/microcode.o: insmod char-major-10-184 failed 2) Starting keytable: Loading keymap: /etc/rc5.d/S17keytable: line 26: /dev/tty0: No such device [FAILED] 3) Starting console mouse services: gpm: oops() invoked from gpn.c(132) loadlut: is your kernel compiled with CONFIG_SELECTION on?: Invalid argument [FAILED] (This is probably because the initial OS installation was configured to have a graphical interface) During Halt: 1) Sending all processes the KILL signal... Syncing hardware clock to system time modprobe: modprobe: Can''t locate module char-major-10-135 hwclock is unable to get I/O port access: the iopl(3) call failed. Guest OS boots-up and halts fine. (except for the above errors) Any suggesstions?? Thanks, Amitabh From: "M.A. Williamson" <maw48@cam.ac.uk> Reply-To: maw48@cantab.net To: "Fajar A. Nugraha" <fajar@telkom.co.id> CC: Amitabh Tamhane <amitabh_2k@hotmail.com>, xen-devel@lists.sourceforge.net Subject: Re: [Xen-devel] Porting of Guest OS Date: 30 Dec 2004 14:50:25 +0000> > The exact error I am getting is: Could not find LABLE=/ and boots in > >the "repair filesystem" mode. > >that''s /etc/fstab allright. Change the line that says LABEL=/ to /dev/sda1. >You might also need to remove the line that mounts /boot For >kernel-2.6-based or nptl-enabled distro, you also need to remove /lib/tls >and /usr/lib/tls on the domain root file system (Xen will tell you to do >this when it boots).Using LABEL=blah requires a) you to set the label on the disk file you created b) you to boot with a suitable initrd (e.g. one that came with your distro) to perform the lookup of filesystem labels. You will find it easier to get stuff working if you just specify /dev/whatever explicitly in the config file and edit the guest fstab to match.> > The guest OS could talk with the outside world but `xm list` command > >shows state as -b--- (blocked) for the domain I am trying to boot. > > >Is that what "-b---" means? All my virtual domains shows that, and yet >they''re working perfectly.If they''re not doing work on the CPU at this instant then they''re probably blocked - unless they''re doing something CPU intensive they''ll be in that state a lot. If you''ve only got one CPU then you''ll never see another domain in the running state - the fact that dom0 is running at this instant implies that the other domains aren''t :-) HTH, Mark ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On Thu, 30 Dec 2004, Amitabh Tamhane wrote:> During boot-up: > 1) Applying Intel IA32 Microcode update: insmod: > /lib/modules/2.6.5-7.97-smp/kernel/arch/i386/kernel/microcode.o: insmod > char-major-10-184 failedis it safe to assume that code in Ring 1 can''t upgrade microcode :-)? I''d say that the microcode module would surprise me if it worked. ron ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Ronald G. Minnich wrote:> On Thu, 30 Dec 2004, Amitabh Tamhane wrote: > >>During boot-up: >>1) Applying Intel IA32 Microcode update: insmod: >>/lib/modules/2.6.5-7.97-smp/kernel/arch/i386/kernel/microcode.o: insmod >>char-major-10-184 failed > > is it safe to assume that code in Ring 1 can''t upgrade microcode :-)? > I''d say that the microcode module would surprise me if it worked.It should be possible to make it work by using the hypervisor interface equivalents of rdmsr/wrmsr. See section 9.11 of the IA32 architecture manual Volume 3. Does DOM0 always run on all physical CPU cores? -- David Hopwood <david.nospam.hopwood@blueyonder.co.uk> ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
David Hopwood wrote:> > Does DOM0 always run on all physical CPU cores? >All? Mine says it always run on CPU0. ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Fajar A. Nugraha wrote:> David Hopwood wrote: > >> Does DOM0 always run on all physical CPU cores? > > All? Mine says it always run on CPU0.In that case, it might be better to move the microcode update functionality into Xen, where it can guarantee to update all cores properly. -- David Hopwood <david.nospam.hopwood@blueyonder.co.uk> ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> > > On Thu, 30 Dec 2004, Amitabh Tamhane wrote: > > > During boot-up: > > 1) Applying Intel IA32 Microcode update: insmod: > > /lib/modules/2.6.5-7.97-smp/kernel/arch/i386/kernel/microcode.o: insmod > > char-major-10-184 failedThat''s the wrong module anyway -- it''s from a native kernel not a Xen-ported kernel.> is it safe to assume that code in Ring 1 can''t upgrade microcode :-)? > I''d say that the microcode module would surprise me if it worked. > > ronA privileged domain can use the RDMSR/WRMSR Xen functions. In the unstable tree it can even execute RDMSR/WRMSR directly and Xen will emulate them. The main difficulty is that currently we only execute the MSR accesses on the CPU on which the domain is running. We could easily change the default to be to write to all CPUs -- that would make more sense for microcode updates, but I''m not sure if it would be silly for other things. The other difficulty is that a microcode update needs several MSR updates per CPU that need to happen with no other overlapping updates. The microcode driver is pretty small, so we may end up putting it in Xen, as we did with the MTRR code. -- Keir ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On Fri, 31 Dec 2004, David Hopwood wrote:> It should be possible to make it work by using the hypervisor interface > equivalents of rdmsr/wrmsr. See section 9.11 of the IA32 architecture > manual Volume 3.interesting. Part of the microcode upgrade process is pointing the CPU at a chunk of memory that it ingests as the new microcode. I found the whole business a bit dicey to think about from ring 1, but I guess it ought to be fine. ron ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
All these problems are to be expected - the guest can''t make privileged access to the machine''s hardware so updating microcode, clock, etc won''t work. I''m not actually sure what "keytable" does but it doesn''t look like it''s needed ;-), gpm is definitely not needed. It''s nothing to worry about - you should just disable these services so that they don''t get run. e.g. on Redhat something like # chkconfig --off servicename for each service. Or use you favourite console / GUI admin tool. As mentioned in another post, the microcode update seems to be trying to load the module for the wrong kernel version (which is odd). Even if it were the right version, it still wouldn''t work... Cheers, Mark> 1) Applying Intel IA32 Microcode update: insmod: > /lib/modules/2.6.5-7.97-smp/kernel/arch/i386/kernel/microcode.o: insmod > char-major-10-184 failed > > 2) Starting keytable: Loading keymap: /etc/rc5.d/S17keytable: line 26: > /dev/tty0: No such device > [FAILED] > > 3) Starting console mouse services: gpm: oops() invoked from gpn.c(132) > loadlut: is your kernel compiled with CONFIG_SELECTION on?: Invalid > argument [FAILED] (This is probably because the initial OS installation > was configured to have a graphical interface) > > During Halt: > 1) Sending all processes the KILL signal... > Syncing hardware clock to system time modprobe: modprobe: Can''t locate > module char-major-10-135 > hwclock is unable to get I/O port access: the iopl(3) call failed. > > Guest OS boots-up and halts fine. (except for the above errors) > > Any suggesstions?? > > Thanks, > > Amitabh > > > From: "M.A. Williamson" <maw48@cam.ac.uk> > Reply-To: maw48@cantab.net > To: "Fajar A. Nugraha" <fajar@telkom.co.id> > CC: Amitabh Tamhane <amitabh_2k@hotmail.com>, > xen-devel@lists.sourceforge.net > Subject: Re: [Xen-devel] Porting of Guest OS > Date: 30 Dec 2004 14:50:25 +0000 > > > > The exact error I am getting is: Could not find LABLE=/ and boots in > > > > > >the "repair filesystem" mode. > > > > that''s /etc/fstab allright. Change the line that says LABEL=/ to > > /dev/sda1. You might also need to remove the line that mounts /boot For > > kernel-2.6-based or nptl-enabled distro, you also need to remove > > /lib/tls and /usr/lib/tls on the domain root file system (Xen will tell > > you to do this when it boots). > > Using LABEL=blah requires a) you to set the label on the disk file you > created b) you to boot with a suitable initrd (e.g. one that came with > your distro) to perform the lookup of filesystem labels. > > You will find it easier to get stuff working if you just specify > /dev/whatever explicitly in the config file and edit the guest fstab to > match. > > > > The guest OS could talk with the outside world but `xm list` command > > > > > >shows state as -b--- (blocked) for the domain I am trying to boot. > > > > >Is that what "-b---" means? All my virtual domains shows that, and yet > >they''re working perfectly. > > If they''re not doing work on the CPU at this instant then they''re > probably blocked - unless they''re doing something CPU intensive they''ll > be in that state a lot. > > If you''ve only got one CPU then you''ll never see another domain in the > running state - the fact that dom0 is running at this instant implies > that the other domains aren''t :-) > > HTH, > Mark > > >------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On Fri, 31 Dec 2004, Keir Fraser wrote:> A privileged domain can use the RDMSR/WRMSR Xen functions. In the > unstable tree it can even execute RDMSR/WRMSR directly and Xen will > emulate them.no, I understand that, no problem there. It''s just that we''ve looked at microcode update for years in linuxbios and it has a lot more impact than a simple MSR read/write. It seems you''ve looked at this one pretty carefully, however.> The main difficulty is that currently we only execute the MSR accesses > on the CPU on which the domain is running. We could easily change the > default to be to write to all CPUs -- that would make more sense for > microcode updates, but I''m not sure if it would be silly for other > things.That would be silly for just about everything.> The microcode driver is pretty small, so we may end up putting it in > Xen, as we did with the MTRR code.It seems like a better way to go to me anyway ... ron ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Ronald G. Minnich wrote:> On Fri, 31 Dec 2004, David Hopwood wrote: > >>It should be possible to make it work by using the hypervisor interface >>equivalents of rdmsr/wrmsr. See section 9.11 of the IA32 architecture >>manual Volume 3.<http://developer.intel.com/design/pentium4/manuals/index_new.htm> <ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf>> interesting. Part of the microcode upgrade process is pointing the CPU at > a chunk of memory that it ingests as the new microcode. I found the whole > business a bit dicey to think about from ring 1, but I guess it ought to > be fine.I really shouldn''t post at that time of the morning. First, it should have been obvious that DOM0 only runs on a single CPU, since multiprocessor guests aren''t supported yet. Second, the architecture manual only gives sample code for doing the update in real mode; it seems to imply that this will also work from protected mode, but it''s not quite clear what the requirements are. Based on the code of the Linux kernel driver: <http://lxr.linux.no/source/arch/i386/kernel/microcode.c#L288> it looks like EAX just has to contain a linear address when Linux is running on bare hardware (the driver casts a pointer in the data segment, which is zero-based, to an unsigned int). In order to use a generic wrmsr hypercall, DOM0 would have to calculate what linear address Xen should use, which although possible (I think), is a horrible layering violation that would depend on implementation details of Xen. It would be much cleaner to either: - add a privileged hypercall specifically to allow DOM0 to update the microcode on all processors (essentially just copy the Linux driver into Xen), - compile the latest microcode into Xen and have it do the update at boot. This would require people to upgrade Xen in order to upgrade the microcode. -- David Hopwood <david.nospam.hopwood@blueyonder.co.uk> ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel