Hi, I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. However, I want to disable sse/mmx support from HVM guests. How can I do this? Also, is it reasonable to expect illegal instruction fault in non-root VMX mode if a guest VM runs an application with sse/mmx instructions? Thanks, Ashish _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 25/10/08 20:34, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote:> I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. > However, I want to disable sse/mmx support from HVM guests. How can I > do this? Also, is it reasonable to expect illegal instruction fault in > non-root VMX mode if a guest VM runs an application with sse/mmx > instructions?You can hide SSE/MMX in CPUID info, so the guest should not attempt to use the instructions. This is obviously true since CPUID causes vmexit and then the instruction is always emulated. But I don''t think you can make the sse/mmx instructions fault if the guest does actually try to use them anyway. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
it''s just masking the sse/mmx features from cpuid return value or something more to it? because i tried masking sse/mmx features from cpuid and now the hvm domain doesn''t boot!! any idea if sse/mmx support can be disabled using bios? Thanks, Ashish On Sat, Oct 25, 2008 at 7:13 PM, Keir Fraser <keir.fraser@eu.citrix.com> wrote:> On 25/10/08 20:34, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: > >> I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. >> However, I want to disable sse/mmx support from HVM guests. How can I >> do this? Also, is it reasonable to expect illegal instruction fault in >> non-root VMX mode if a guest VM runs an application with sse/mmx >> instructions? > > You can hide SSE/MMX in CPUID info, so the guest should not attempt to use > the instructions. This is obviously true since CPUID causes vmexit and then > the instruction is always emulated. But I don''t think you can make the > sse/mmx instructions fault if the guest does actually try to use them > anyway. > > -- Keir > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Masking from CPUID should work. I''m surprised it would cause a guest to fail to boot. K. On 25/10/08 23:30, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote:> it''s just masking the sse/mmx features from cpuid return value or > something more to it? because i tried masking sse/mmx features from > cpuid and now the hvm domain doesn''t boot!! any idea if sse/mmx > support can be disabled using bios? > > Thanks, > Ashish > > On Sat, Oct 25, 2008 at 7:13 PM, Keir Fraser <keir.fraser@eu.citrix.com> > wrote: >> On 25/10/08 20:34, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: >> >>> I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. >>> However, I want to disable sse/mmx support from HVM guests. How can I >>> do this? Also, is it reasonable to expect illegal instruction fault in >>> non-root VMX mode if a guest VM runs an application with sse/mmx >>> instructions? >> >> You can hide SSE/MMX in CPUID info, so the guest should not attempt to use >> the instructions. This is obviously true since CPUID causes vmexit and then >> the instruction is always emulated. But I don''t think you can make the >> sse/mmx instructions fault if the guest does actually try to use them >> anyway. >> >> -- Keir >> >> >>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi, i''m working on a project that requires migration of a VM from a sse/mmx capable x86 platform to an x86 platform without sse/mmx capability. i want to emulate sse/mmu capability at runtime. one option would be to let the hypervisor emulate sse/mmx functionality upon trapping due to illegal instruction exception. however, i believe. this would be really slow and defeats the purpose of sse/mmx. i can take the emulation code from qemu/bochs. any idea on what could be a better option in terms of performance? also, i''d like to know if this is reasonble at all or am i missing something? thanks, ashish On Sun, Oct 26, 2008 at 4:36 AM, Keir Fraser <keir.fraser@eu.citrix.com> wrote:> Masking from CPUID should work. I''m surprised it would cause a guest to fail > to boot. > > K. > > On 25/10/08 23:30, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: > >> it''s just masking the sse/mmx features from cpuid return value or >> something more to it? because i tried masking sse/mmx features from >> cpuid and now the hvm domain doesn''t boot!! any idea if sse/mmx >> support can be disabled using bios? >> >> Thanks, >> Ashish >> >> On Sat, Oct 25, 2008 at 7:13 PM, Keir Fraser <keir.fraser@eu.citrix.com> >> wrote: >>> On 25/10/08 20:34, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: >>> >>>> I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. >>>> However, I want to disable sse/mmx support from HVM guests. How can I >>>> do this? Also, is it reasonable to expect illegal instruction fault in >>>> non-root VMX mode if a guest VM runs an application with sse/mmx >>>> instructions? >>> >>> You can hide SSE/MMX in CPUID info, so the guest should not attempt to use >>> the instructions. This is obviously true since CPUID causes vmexit and then >>> the instruction is always emulated. But I don''t think you can make the >>> sse/mmx instructions fault if the guest does actually try to use them >>> anyway. >>> >>> -- Keir >>> >>> >>> > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
If you would good predictable performance across both systems, at the cost of missing out on peak performance on the SSE-capable system, then hiding the feature on the more capable machine would make sense. It''s also obviously easier than hacking in software emulation of SSE/MMX! You should chase down some more why that feature hiding isn''t working for you. It really should. -- Keir On 29/10/08 07:28, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote:> Hi, > > i''m working on a project that requires migration of a VM from a > sse/mmx capable x86 platform to an x86 platform without sse/mmx > capability. i want to emulate sse/mmu capability at runtime. one > option would be to let the hypervisor emulate sse/mmx functionality > upon trapping due to illegal instruction exception. however, i > believe. this would be really slow and defeats the purpose of sse/mmx. > i can take the emulation code from qemu/bochs. any idea on what could > be a better option in terms of performance? also, i''d like to know if > this is reasonble at all or am i missing something? > > thanks, > ashish > > On Sun, Oct 26, 2008 at 4:36 AM, Keir Fraser <keir.fraser@eu.citrix.com> > wrote: >> Masking from CPUID should work. I''m surprised it would cause a guest to fail >> to boot. >> >> K. >> >> On 25/10/08 23:30, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: >> >>> it''s just masking the sse/mmx features from cpuid return value or >>> something more to it? because i tried masking sse/mmx features from >>> cpuid and now the hvm domain doesn''t boot!! any idea if sse/mmx >>> support can be disabled using bios? >>> >>> Thanks, >>> Ashish >>> >>> On Sat, Oct 25, 2008 at 7:13 PM, Keir Fraser <keir.fraser@eu.citrix.com> >>> wrote: >>>> On 25/10/08 20:34, "Ashish Bijlani" <ashish.bijlani@gmail.com> wrote: >>>> >>>>> I''ve a quad-core x86_64 machine (Intel Xeon), with sse/mmx support. >>>>> However, I want to disable sse/mmx support from HVM guests. How can I >>>>> do this? Also, is it reasonable to expect illegal instruction fault in >>>>> non-root VMX mode if a guest VM runs an application with sse/mmx >>>>> instructions? >>>> >>>> You can hide SSE/MMX in CPUID info, so the guest should not attempt to use >>>> the instructions. This is obviously true since CPUID causes vmexit and then >>>> the instruction is always emulated. But I don''t think you can make the >>>> sse/mmx instructions fault if the guest does actually try to use them >>>> anyway. >>>> >>>> -- Keir >>>> >>>> >>>> >> >> >>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel