On Aug 21, 2014, at 2:51 PM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > Il 20/08/2014 15:58, Nadav Amit ha scritto: >> IA32_MISC_ENABLE MSR has two bits that affect the actual results which can be >> observed by the guest: fast string enable, and FOPCODE compatibility. Guests >> may wish to change the default settings of these bits. >> >> Linux usually enables fast-string by default. However, when "fast string" is >> enabled data breakpoints are only recognized on boundaries between data-groups. >> On some old CPUs enabling fast-string also resulted in single-step not >> occurring upon each iteration. >> >> FOPCODE compatibility can be used to analyze program performance by recording >> the last instruction executed before FSAVE/FSTENV/FXSAVE. >> >> This patch saves and restores these bits in IA32_MISC_ENABLE if they are >> supported upon entry to guest and exit to userspace respectively. To avoid >> possible issues, fast-string can only be enabled by the guest if the host >> enabled them. The physical CPU version is checked to ensure no shared bits are >> reconfigured in the process. > > Maybe I'm dense :) but why are you saying upon exit to userspace? It is > switched upon VM exit simply. In fact I was thinking you'd use > kvm_set_shared_msr for this, but it looks like you aren't doing that. > No, it’s me... I had too many versions of this patch which caused me to lose track. I originally used kvm_set_shared_msr, but since disabling fast-strings or turning on FOPCODE compatibility affects performance negatively, I thought it would be better to set them upon exit, as otherwise operations as memcpy in the kernel would be considerably slower. Nadav
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail