* Re: [edk2] 答复: Windows 2008 r2 smp guest booting hang with viridian=true on ovmf(xen latest version 4.5.1-rc1 + latest edk2)
[not found] <7EE47F9F3BEC294493BA3E433F16E08A3B2FB80B@SZXEMA504-MBX.china.huawei.com>
@ 2015-05-20 12:59 ` Laszlo Ersek
[not found] ` <555C853B.1050006@redhat.com>
1 sibling, 0 replies; 2+ messages in thread
From: Laszlo Ersek @ 2015-05-20 12:59 UTC (permalink / raw)
To: Fanhenglong
Cc: keir, Hanweidong (Randy),
edk2-devel, xen-devel, paul.durrant, jbeulich, Liuqiming (John)
On 05/20/15 09:24, Fanhenglong wrote:
> Can anyone have idea about how to boot window 2008 r2 smp guest in ovmf
> with viridian flag is true?
I had to confirm first that "viridian" means "Hyper-V",
<http://en.wikipedia.org/wiki/Hyper-V>:
"Hyper-V, codenamed Viridian, ..."
With that out of the way, I can refer you to
https://bugzilla.redhat.com/show_bug.cgi?id=1185253
Short version: don't set the "viridian flag"; the guest you're trying to
run like that was never meant to be run on Hyper-V.
Thanks
Laszlo
> *发件人:*Fanhenglong
> *发送时间:*2015年5月19日23:22
> *收件人:*xen-devel@lists.xen.org
> *抄送:*'keir@xen.org'; 'paul.durrant@citrix.com'; 'jbeulich@suse.com';
> edk2-devel@lists.sourceforge.net; Hanweidong (Randy); Liuqiming (John);
> Liuqiming (John)
> *主题:*Windows 2008 r2 smp guest booting hang with viridian=true on
> ovmf(xen latest version 4.5.1-rc1 + latest edk2)
>
>
>
> Hi all,
>
>
>
> I have test win2008 r2 guest on ovmf with xen latest version + edk2 latest
>
> Xen : 4.5.1-rc1
> <http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=0c4e0ef608c98abef6220b0b027d9ce8ec65fd5f>
>
> Edk2 : e2ab3f819f4e8165c24bd6f4fdc24ef17bdf458b (date:2015/5/18)
>
> and come across a problem:
>
> when the viridian flag is true,win2008 r2 guest can boot success with
> unique processor, but will hang with smp processor on ovmf;
>
> the viridian flag is false, win2008 r2 guest can boot success both in
> unique and smp processor on ovmf;
>
>
>
> if win2008 r2 with viridian=faulse, it may bring 0x101 bluescreen
>
> http://old-list-archives.xenproject.org/archives/html/xen-users/2009-07/msg00661.html
>
>
>
> I try to resolve the problem,
>
> I also run the same testcase on kvm and vmvare ,vm also have the same
> question, vmare is ok;
>
> so I print the cupid function return value in vmvare guest os,
>
> the below table show the detailed information in vmvare guest os,
>
> get cpu id 0 : 0000000b 756e6547 6c65746e 49656e69
>
> get cpu id 1 : 000106a5 00010800 80982201 0fabfbff
>
> get cpu id 2 : 55035a01 00f0b2e4 00000000 09ca212c
>
> get cpu id 3 : 00000000 00000000 00000000 00000000
>
> get cpu id 4 : 00000000 00000000 00000000 00000000
>
> get cpu id 5 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000000 : 40000010 61774d56 4d566572 65726177
>
> get cpu id 40000001 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000002 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000003 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000004 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000005 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000006 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000070 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000071 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000072 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000073 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000100 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000101 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000102 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000103 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000104 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000105 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000106 : 00000000 00000000 000000ac 00000000
>
> get cpu id 80000000 : 80000008 00000000 00000000 00000000
>
> get cpu id 80000001 : 00000000 00000000 00000001 28100000
>
> get cpu id 80000002 : 65746e49 2952286c 6f655820 2952286e
>
> get cpu id 80000003 : 55504320 20202020 20202020 45202020
>
> get cpu id 80000004 : 30323535 20402020 37322e32 007a4847
>
> get cpu id 80000005 : 00000000 00000000 00000000 00000000
>
> get cpu id 80000006 : 00000000 00000000 01006040 00000000
>
> get cpu id 80000007 : 00000000 00000000 00000000 00000100
>
> get cpu id 80000008 : 00003028 00000000 00000000 00000000
>
> get cpu id 80000009 : 00000000 00000000 000000ac 00000000
>
>
>
>
>
> I modified cpuid_viridian_leaves function in
> xen/arch/x86/hvm/viridian.c (as the following red bold code)
>
> to return value 0 for cupid (function=40000001), and win2008 r2 smp
> guest can boot success on ovmf;
>
>
>
> int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax,
>
> unsigned int *ebx, unsigned int *ecx,
>
> unsigned int *edx)
>
> {
>
> struct domain *d = current->domain;
>
>
>
> if ( !is_viridian_domain(d) )
>
> return 0;
>
>
>
> leaf -= 0x40000000;
>
> if ( leaf > 6 )
>
> return 0;
>
>
>
> *eax = *ebx = *ecx = *edx = 0;
>
> switch ( leaf )
>
> {
>
> case 0:
>
> *eax = 0x40000006; /* Maximum leaf */
>
> *ebx = 0x7263694d; /* Magic numbers */
>
> *ecx = 0x666F736F;
>
> *edx = 0x76482074;
>
> break;
>
> case 1:
>
> //original code **eax = 0x31237648; /* Version number */*
>
> * *eax = 0; //code after modified*
>
> break;
>
>
>
>
>
> based on hyperv spec, Microsoft Hypervisor CPUID Leaves,
>
> 0x40000001
>
> Hypervisor vendor-neutral interface identification. This determines the
> semantics of the leaves from 0x40000002 through 0x400000FF.
>
> EAX 0x31237648—“Hv#1”
>
> EBX Reserved
>
> ECX Reserved
>
> EDX Reserved
>
>
>
> May be in xen platform, if window 2008 r2 guest os boot in ovmf, the
> cupid(function=0x40000001) must not return EAX 0x31237648—“Hv#1”,
>
>
>
> Can anyone have idea about how to boot window 2008 r2 guest in ovmf and
> do not bring other problem(eg,0x101 bluescreen)?
>
>
>
> Thanks!
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>
>
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
* 答复: [edk2] 答复: Windows 2008 r2 smp guest booting hang with viridian=true on ovmf(xen latest version 4.5.1-rc1 + latest edk2)
[not found] ` <555C853B.1050006@redhat.com>
@ 2015-05-20 15:25 ` Fanhenglong
0 siblings, 0 replies; 2+ messages in thread
From: Fanhenglong @ 2015-05-20 15:25 UTC (permalink / raw)
To: Laszlo Ersek
Cc: Yanqiangjun, keir, Hanweidong (Randy),
edk2-devel, xen-devel, paul.durrant, jbeulich, Liuqiming (John)
"Viridian" in xen platform surely means "Hyper-V"
but if window 2008 r2 smp guest boot with viridian=false, it will bring another problem 0x101 bluescreen.
http://old-list-archives.xenproject.org/archives/html/xen-users/2009-07/msg00661.html
Thanks!
-----邮件原件-----
发件人: Laszlo Ersek [mailto:lersek@redhat.com]
发送时间: 2015年5月20日 21:00
收件人: Fanhenglong
抄送: edk2-devel@lists.sourceforge.net; xen-devel@lists.xen.org; keir@xen.org; Hanweidong (Randy); paul.durrant@citrix.com; jbeulich@suse.com; Liuqiming (John)
主题: Re: [edk2] 答复: Windows 2008 r2 smp guest booting hang with viridian=true on ovmf(xen latest version 4.5.1-rc1 + latest edk2)
On 05/20/15 09:24, Fanhenglong wrote:
> Can anyone have idea about how to boot window 2008 r2 smp guest in
> ovmf with viridian flag is true?
I had to confirm first that "viridian" means "Hyper-V",
<http://en.wikipedia.org/wiki/Hyper-V>:
"Hyper-V, codenamed Viridian, ..."
With that out of the way, I can refer you to
https://bugzilla.redhat.com/show_bug.cgi?id=1185253
Short version: don't set the "viridian flag"; the guest you're trying to run like that was never meant to be run on Hyper-V.
Thanks
Laszlo
> *发件人:*Fanhenglong
> *发送时间:*2015年5月19日23:22
> *收件人:*xen-devel@lists.xen.org
> *抄送:*'keir@xen.org'; 'paul.durrant@citrix.com'; 'jbeulich@suse.com';
> edk2-devel@lists.sourceforge.net; Hanweidong (Randy); Liuqiming
> (John); Liuqiming (John)
> *主题:*Windows 2008 r2 smp guest booting hang with viridian=true on
> ovmf(xen latest version 4.5.1-rc1 + latest edk2)
>
>
>
> Hi all,
>
>
>
> I have test win2008 r2 guest on ovmf with xen latest version + edk2
> latest
>
> Xen : 4.5.1-rc1
> <http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=0c4e0ef608c98abef
> 6220b0b027d9ce8ec65fd5f>
>
> Edk2 : e2ab3f819f4e8165c24bd6f4fdc24ef17bdf458b (date:2015/5/18)
>
> and come across a problem:
>
> when the viridian flag is true,win2008 r2 guest can boot success with
> unique processor, but will hang with smp processor on ovmf;
>
> the viridian flag is false, win2008 r2 guest can boot success both in
> unique and smp processor on ovmf;
>
>
>
> if win2008 r2 with viridian=faulse, it may bring 0x101 bluescreen
>
> http://old-list-archives.xenproject.org/archives/html/xen-users/2009-0
> 7/msg00661.html
>
>
>
> I try to resolve the problem,
>
> I also run the same testcase on kvm and vmvare ,vm also have the same
> question, vmare is ok;
>
> so I print the cupid function return value in vmvare guest os,
>
> the below table show the detailed information in vmvare guest os,
>
> get cpu id 0 : 0000000b 756e6547 6c65746e 49656e69
>
> get cpu id 1 : 000106a5 00010800 80982201 0fabfbff
>
> get cpu id 2 : 55035a01 00f0b2e4 00000000 09ca212c
>
> get cpu id 3 : 00000000 00000000 00000000 00000000
>
> get cpu id 4 : 00000000 00000000 00000000 00000000
>
> get cpu id 5 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000000 : 40000010 61774d56 4d566572 65726177
>
> get cpu id 40000001 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000002 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000003 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000004 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000005 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000006 : 00000000 00000000 00000000 00000000
>
> get cpu id 40000070 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000071 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000072 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000073 : 00000000 00000000 000000ac 00000012
>
> get cpu id 40000100 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000101 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000102 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000103 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000104 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000105 : 00000000 00000000 000000ac 00000000
>
> get cpu id 40000106 : 00000000 00000000 000000ac 00000000
>
> get cpu id 80000000 : 80000008 00000000 00000000 00000000
>
> get cpu id 80000001 : 00000000 00000000 00000001 28100000
>
> get cpu id 80000002 : 65746e49 2952286c 6f655820 2952286e
>
> get cpu id 80000003 : 55504320 20202020 20202020 45202020
>
> get cpu id 80000004 : 30323535 20402020 37322e32 007a4847
>
> get cpu id 80000005 : 00000000 00000000 00000000 00000000
>
> get cpu id 80000006 : 00000000 00000000 01006040 00000000
>
> get cpu id 80000007 : 00000000 00000000 00000000 00000100
>
> get cpu id 80000008 : 00003028 00000000 00000000 00000000
>
> get cpu id 80000009 : 00000000 00000000 000000ac 00000000
>
>
>
>
>
> I modified cpuid_viridian_leaves function in
> xen/arch/x86/hvm/viridian.c (as the following red bold code)
>
> to return value 0 for cupid (function=40000001), and win2008 r2
> smp guest can boot success on ovmf;
>
>
>
> int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax,
>
> unsigned int *ebx, unsigned int *ecx,
>
> unsigned int *edx)
>
> {
>
> struct domain *d = current->domain;
>
>
>
> if ( !is_viridian_domain(d) )
>
> return 0;
>
>
>
> leaf -= 0x40000000;
>
> if ( leaf > 6 )
>
> return 0;
>
>
>
> *eax = *ebx = *ecx = *edx = 0;
>
> switch ( leaf )
>
> {
>
> case 0:
>
> *eax = 0x40000006; /* Maximum leaf */
>
> *ebx = 0x7263694d; /* Magic numbers */
>
> *ecx = 0x666F736F;
>
> *edx = 0x76482074;
>
> break;
>
> case 1:
>
> //original code **eax = 0x31237648; /* Version number */*
>
> * *eax = 0; //code after modified*
>
> break;
>
>
>
>
>
> based on hyperv spec, Microsoft Hypervisor CPUID Leaves,
>
> 0x40000001
>
> Hypervisor vendor-neutral interface identification. This determines
> the semantics of the leaves from 0x40000002 through 0x400000FF.
>
> EAX 0x31237648—“Hv#1”
>
> EBX Reserved
>
> ECX Reserved
>
> EDX Reserved
>
>
>
> May be in xen platform, if window 2008 r2 guest os boot in ovmf, the
> cupid(function=0x40000001) must not return EAX 0x31237648—“Hv#1”,
>
>
>
> Can anyone have idea about how to boot window 2008 r2 guest in ovmf
> and do not bring other problem(eg,0x101 bluescreen)?
>
>
>
> Thanks!
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------------
> -------- One dashboard for servers and applications across
> Physical-Virtual-Cloud Widest out-of-the-box monitoring support with
> 50+ applications Performance metrics, stats and reports that give you
> Actionable Insights Deep dive visibility with transaction tracing
> using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>
>
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-05-20 15:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <7EE47F9F3BEC294493BA3E433F16E08A3B2FB80B@SZXEMA504-MBX.china.huawei.com>
2015-05-20 12:59 ` [edk2] 答复: Windows 2008 r2 smp guest booting hang with viridian=true on ovmf(xen latest version 4.5.1-rc1 + latest edk2) Laszlo Ersek
[not found] ` <555C853B.1050006@redhat.com>
2015-05-20 15:25 ` 答复: " Fanhenglong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.