Mailing List Archive

Porting of Guest OS
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
Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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 diskFile

I 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
Re: Porting of Guest OS [ In reply to ]
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 diskFile

I 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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
> > 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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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.

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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
>
>
> 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

That'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.
>
> ron

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.

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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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
Re: Porting of Guest OS [ In reply to ]
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