From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 00/34] target/arm: Implement ARMv8.1-VHE
Date: Mon, 05 Aug 2019 15:23:27 +0100 [thread overview]
Message-ID: <87zhknitcw.fsf@linaro.org> (raw)
In-Reply-To: <db7e63d9-fcf6-fda2-c164-af8f90815617@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> On 8/5/19 6:02 AM, Alex Bennée wrote:
>>
>> Richard Henderson <richard.henderson@linaro.org> writes:
>>
>>> About half of this patch set is cleanup of the qemu tlb handling
>>> leading up to the actual implementation of VHE, and the biggest
>>> piece of that: The EL2&0 translation regime.
>>>
>>> Changes since v2:
>>> * arm_mmu_idx was incomplete; test TGE+E2H not just E2H.
>>> * arm_sctlr was incomplete; now uses arm_mmu_idx to avoid
>>> duplication of tests.
>>> * Update aa64_zva_access and ctr_el0_access for EL2.
>>>
>>> Changes since v1:
>>> * Merge feedback from AJB.
>>> * Split out 7 renaming patches from "Reorganize ARMMMUIdx".
>>> * Alex's MIDR patch keeps the nested KVM from spitting warnings.
>>>
>>> I have tested
>>>
>>> qemu-system-aarch64 -accel kvm -cpu host -M virt,gic-version-host \
>>> -m 512 -bios /usr/share/edk2/aarch64/QEMU_EFI.fd -nographic
>>
>> So testing with a host doing:
>>
>> ./aarch64-softmmu/qemu-system-aarch64 -machine type=virt,virtualization=on -cpu cortex-a57 -serial mon:stdio -nic user,model=virtio-net-pci,hostfwd=tcp::2222-:22 -device virtio-scsi-pci -drive file=/dev/zvol/hackpool-0/debian-buster-arm64,id=hd0,index=0,if=none,format=raw,discard=on -device scsi-hd,drive=hd0 -kernel ../linux.git/builds/arm64/arch/arm64/boot/Image -append "console=ttyAMA0 root=/dev/sda2" -display none -m 4096 -smp 8
>>
>> And a guest doing:
>>
>> ./aarch64-softmmu/qemu-system-aarch64 -machine type=virt -cpu host
>> -serial mon:stdio -nic user,model=virtio-net-pci -device
>> virtio-scsi-pci -kernel /boot/vmlinuz-4.19.0-5-arm64 -append "console=ttyAMA0 panic=-1" -display none -m 256 -smp 4 --no-reboot
>> --enable-kvm
>>
>> I triggered:
>>
>> ERROR:/home/alex.bennee/lsrc/qemu.git/target/arm/helper.c:3436:update_lpae_el1_asid: code should not be reached
>> fish: “./aarch64-softmmu/qemu-system-a…” terminated by signal SIGABRT (Abort)
>
> Whoops. Rebase error while changing the signature of this function.
> Thanks for re-testing the case where VHE isn't present. :-P
>
>> With -cpu max on the host it hangs the whole thing. I'm going to
>> continue to experiment with explicit GIC versions.
>
> Hangs the host? Are you sure that the guest isn't just slow?
Ahh nested terminology - the aarch64 VHE host hangs so I can't access
it's shells either. I'll try and get a better trace once I've gotten a
reliable non-VHE guest-guest boot ;-)
> That's why I changed my testing to boot a debug edk2, which
> outputs stuff much sooner than the kernel does.
Looking via gdbstub it looked like stuff had stopped happening but you
are right it could be just slow. None of the threads seem to be doing
anything.
> Although I have no idea why the guest should be extra slow.
> It does seem like it ought to be booting at the same speed as
> the host. I see tlb flushes as quite high in the profile,
> and wonder if I'm doing too many of them.
Hmm yeah they do seem a bit high:
TLB full flushes 8
TLB partial flushes 39036316
TLB elided flushes 256488402
... 10 seconds ...
TLB full flushes 8
TLB partial flushes 40393340
TLB elided flushes 265444803
For non-VHE that seems expected because we should be changing the entire
mapping regime as we bounce between the EL1's - shouldn't be as high for
VHE right?
>
>
> r~
--
Alex Bennée
prev parent reply other threads:[~2019-08-05 14:24 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-03 18:47 [Qemu-devel] [PATCH v3 00/34] target/arm: Implement ARMv8.1-VHE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 01/34] cputlb: Add tlb_set_asid_for_mmuidx Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 02/34] cputlb: Add tlb_flush_asid_by_mmuidx and friends Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 03/34] target/arm: Install ASIDs for long-form from EL1 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 04/34] target/arm: Install ASIDs for short-form " Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 05/34] target/arm: Install ASIDs for EL2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 06/34] target/arm: Define isar_feature_aa64_vh Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 07/34] target/arm: Enable HCR_E2H for VHE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 08/34] target/arm: Add CONTEXTIDR_EL2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 09/34] target/arm: Add TTBR1_EL2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 10/34] target/arm: Update CNTVCT_EL0 for VHE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 11/34] target/arm: Add the hypervisor virtual counter Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 12/34] target/arm: Add VHE system register redirection and aliasing Richard Henderson
2019-08-05 11:25 ` Alex Bennée
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 13/34] target/arm: Split out vae1_tlbmask, vmalle1_tlbmask Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 14/34] target/arm: Simplify tlb_force_broadcast alternatives Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 15/34] target/arm: Rename ARMMMUIdx*_S12NSE* to ARMMMUIdx*_E10_* Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 16/34] target/arm: Rename ARMMMUIdx_S2NS to ARMMMUIdx_Stage2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 17/34] target/arm: Rename ARMMMUIdx_S1NSE* to ARMMMUIdx_Stage1_E* Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 18/34] target/arm: Rename ARMMMUIdx_S1SE* to ARMMMUIdx_SE* Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 19/34] target/arm: Rename ARMMMUIdx*_S1E3 to ARMMMUIdx*_SE3 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 20/34] target/arm: Rename ARMMMUIdx_S1E2 to ARMMMUIdx_E2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 21/34] target/arm: Reorganize ARMMMUIdx Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 22/34] target/arm: Add regime_has_2_ranges Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 23/34] target/arm: Update arm_mmu_idx for VHE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 24/34] target/arm: Update arm_sctlr " Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 25/34] target/arm: Update aa64_zva_access for EL2 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 26/34] target/arm: Update ctr_el0_access " Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 27/34] target/arm: Install asids for E2&0 translation regime Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 28/34] target/arm: Flush tlbs " Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 29/34] target/arm: Update arm_phys_excp_target_el for TGE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 30/34] target/arm: Update regime_is_user for EL2&0 Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 31/34] target/arm: Update {fp, sve}_exception_el for VHE Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 32/34] target/arm: Enable ARMv8.1-VHE in -cpu max Richard Henderson
2019-08-03 18:47 ` [Qemu-devel] [PATCH v3 33/34] target/arm: check TGE and E2H flags for EL0 pauth traps Richard Henderson
2019-08-03 18:48 ` [Qemu-devel] [PATCH v3 34/34] target/arm: generate a custom MIDR for -cpu max Richard Henderson
2019-08-05 13:02 ` [Qemu-devel] [PATCH v3 00/34] target/arm: Implement ARMv8.1-VHE Alex Bennée
2019-08-05 14:00 ` Richard Henderson
2019-08-05 14:23 ` Alex Bennée [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zhknitcw.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).