[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] x86 tlb_fill in memory_helper.c
From: |
Alexander Boettcher |
Subject: |
Re: [Qemu-devel] [PATCH] x86 tlb_fill in memory_helper.c |
Date: |
Thu, 16 Feb 2017 14:27:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 16.02.2017 13:57, Paolo Bonzini wrote:
>
>
> On 16/02/2017 13:57, Alexander Boettcher wrote:
>> Hello Paolo,
>>
>> On 16.02.2017 12:53, Paolo Bonzini wrote:
>>> As you noticed, the problem is that now cpu_vmexit is called without a
>>> cpu_restore_state before.
>>>
>>> The right fix is to pass the retaddr to cpu_vmexit (via
>>> cpu_svm_check_intercept_param); something like this untested patch:
>>
>> ...
>>
>>>
>>> If it works for you we can include it.
>>
>> thank you for the quick patch. It works like a charm.
>>
>> Do you take care of adding the patch, please ? (I can of course also do.)
>
> Great, I will look at it. Have you debugged the exact failure mode to
> include something in the commit message?
I'm not familiar with the SVM model, but what I did was to
compare mainly the output of the svm exceptions on Qemu 2.4.1 and
2.5.0++ as reported by the Nova hypervisor runing in Qemu.
There one gets mysterious SVM exception 0x4e (PF), where
virtaddr = cr2 = VMCB::exitinfo2
cr2 is around the 0 address - where actually is nothing in the guest VM.
Later on one gets a SVM exception of 0x7f, and then your VM is gone.
Hope it helps to make up a useful commit message,
Alex.
--
Alexander Boettcher
Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth