[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64
From: |
Wei Huang |
Subject: |
Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64 |
Date: |
Fri, 26 Jan 2018 11:08:14 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 01/26/2018 10:39 AM, Peter Maydell wrote:
> On 26 January 2018 at 15:47, Wei Huang <address@hidden> wrote:
>>
>>
>> On 01/25/2018 02:05 PM, Dr. David Alan Gilbert wrote:
>>> * Wei Huang (address@hidden) wrote:
>>>> innerloop:
>>>> /* clean cache because el2 might still cache guest data under KVM
>>>> */
>>>> dc civac, x2
>>>
>>> Can you explain a bit more about that please; if it's guest
>>> visible acorss migration, doesn't that suggest we need the cache clear
>>> in KVM or QEMU?
>>
>> I think this is ARM specific. This is caused by the inconsistency
>> between guest VM's data accesses and userspace's accesses (in
>> check_guest_ram) at the destination:
>>
>> 1) Because uncacheable (guest) + cacheable (host) ==> uncacheable. So
>> the data accesses from guest VM go directly into memory.
>> 2) QEMU user space will use the cacheable version. So it is possible
>> that data can come from cache, instead of RAM. The difference between
>> (1) and (2) obviously can cause check_guest_ram() to fail sometimes.
>
> I think the correct fix here is that your test code should turn
> its MMU on. Trying to treat guest RAM as uncacheable doesn't work
I did try MMU-on while debugging this problem. It was a migration unit
test written on top of kvm-unit-tests and I forced QEMU's
tests/migration-test.c to use this .flat file as -kernel parameter. I
didn't see any memory check failures using this approach. So I can
confirm your suggestion.
But turning MMU on means a much larger binary blob. I know you don't
like the existing migration-test.c approach. Building a more complicated
test case and embedding it in migration-test.c code will make the
situation worse. Because of this, I chose the current version: small and
manageable (even with one extra cache flush instruction).
> for Arm KVM guests (for the same reason that VGA device video memory
> doesn't work). If it's RAM your guest has to arrange to map it as
> Normal Cacheable, and then everything should work fine.
>
> thanks
> -- PMM
>
- [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Wei Huang, 2018/01/24
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Dr. David Alan Gilbert, 2018/01/25
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Wei Huang, 2018/01/26
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Peter Maydell, 2018/01/26
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64,
Wei Huang <=
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Dr. David Alan Gilbert, 2018/01/26
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Peter Maydell, 2018/01/28
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Dr. David Alan Gilbert, 2018/01/29
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Peter Maydell, 2018/01/29
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Dr. David Alan Gilbert, 2018/01/29
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Marc Zyngier, 2018/01/29
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Christoffer Dall, 2018/01/31
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Ard Biesheuvel, 2018/01/31
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Dr. David Alan Gilbert, 2018/01/31
- Re: [Qemu-devel] [PATCH V1 1/1] tests: Add migration test for aarch64, Christoffer Dall, 2018/01/31