Re: BUG with Win7 and user-return-notifier

Jan Kiszka
2009-10-28T19:55:59Z

[-- Attachment #1: Type: text/plain, Size: 2014 bytes --]

Avi Kivity wrote:
> On 10/28/2009 04:01 PM, Jan Kiszka wrote:
>> Avi Kivity wrote:
>>
>>> On 10/27/2009 03:25 PM, Avi Kivity wrote:
>>>
>>>> On 10/27/2009 03:24 PM, Avi Kivity wrote:
>>>>
>>>>> Worked for me - getting to the initial prompt. Do you have
>>>>>
>>>>> CONFIG_USER_RETURN_NOTIFIER=y
>>>>>
>>>>> in your .config?
>>>>>
>>>>>
>>>> If you do, send your own .config, will try to reproduce.
>>>>
>>>>
>>> As I can't reproduce it, can you send a trace of what's going on?
>>>
>>> The kvm:kvm_msr and kvm:kvm_cr events should suffice to understand
>>> what's going on. Please enlarge your buffer size (buffer_size_kb) so we
>>> don't drop events.
>>>
>>>
>> Find such a trace attached. I hope I caught all important events (there
>> were tons of identical kvm_cr events before them which I cut off).
>>
>
> [you can get longer, more detailed traces by using
> /sys/kernel/debug/tracing/trace instead of dmesg]
>
> Oct 28 14:29:56 mchn012c kernel: qemu-sys-7200 0...1. 676996395us :
> kvm_msr: msr_read c0000080 = 0x500
> Oct 28 14:29:56 mchn012c kernel: qemu-sys-7200 0...1. 676996403us :
> kvm_msr: msr_write c0000080 = 0xd01
>
> So Windows is setting EFER.SCE and EFER.NX while in long mode -
> perfectly reasonable. Can you rerun with the attached debug patch?
>

Currently building, expect results soon.

But while we are at it:

>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 85f97d1..6bd6d2c 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c

...

> @@ -928,8 +931,11 @@ static void setup_msrs(struct vcpu_vmx *vmx)
> }
> #endif
> vmx->msr_offset_efer = index = __find_msr_index(vmx, MSR_EFER);
> - if (index >= 0 && update_transition_efer(vmx))
> + if (index >= 0 && update_transition_efer(vmx)) {
> + printk("%s: marking efer for reload\n", __func__);
> move_msr_up(vmx, index, save_nmsrs++);

The last line breaks x86-32 builds.

Jan

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]