xen-ia64-devel
Re: [Xen-ia64-devel] RE: _OSI(Linux) == false
On Fri, 2007-08-17 at 14:13 +0800, Xu, Anthony wrote:
> >
> > This changeset was just brought to my attention:
> >
> >http://www.kernel.org/hg/linux-2.6/rev/7f6bc8a8fb19
> >
> >In short, newer upstream kernels will return True for _OSI(Windows) and
> >False for _OSI(Linux). This will cause Linux VT-i domains to get
> >incorrectly identified as Windows guests and do bad things with region
> 4
> >& 5 mapping.
>
> Does linux call _OSI(Windows)?
> If not, it will not impact XEN.
We added platform optimizations based on the following assumption:
On Tue, 2007-05-08 at 10:55 +0800, Xu, Anthony wrote:
> Run linux,
> Both __OSI(linux) and __OSI(windows) return true.
>
> Run windows,
> __OSI(linux) return false,
> __OSI(windows) return true.
>
> So if guest FW checks linux first then checks windows.
> Guest FW can tell which OS is running on top of it.
> Then Guest FW can tell XEN which OS is running.
We can no longer identify Linux vs Windows in this manner unless we can
make Linux return True for _OSI(linux) when it's running on Xen. Is
this not the way the code works? I see the calls to _OSI in the _INI
method of the PCI0 device in the DSDT:
147 If (CondRefOf(_OSI, Local0))
148 {
149 //Compare linux first. Because \_OSI("Windows 2001")
still
150 //return true while linux running on guest
151 If (\_OSI("Linux"))
152 {
153 Store(0xB2, OST)
154 }
155 ElseIf (\_OSI("Windows 2001.1"))
156 {
157 Store(0xB1, OST)
158 }
159 Else
160 {
161 Store(0xB0, OST)
162 }
163
164 Store(0xB0, OST)
165 }
Thanks,
Alex
--
Alex Williamson HP Open Source & Linux Org.
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|