[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/1] target/riscv/kvm: fix timebase-frequency when using K
From: |
Michael Tokarev |
Subject: |
Re: [PATCH v2 1/1] target/riscv/kvm: fix timebase-frequency when using KVM acceleration |
Date: |
Sat, 27 Apr 2024 09:59:01 +0300 |
User-agent: |
Mozilla Thunderbird |
27.04.2024 09:23, Andrew Jones wrote:
On April 27, 2024 1:44:42 AM GMT+02:00, Michael Tokarev <mjt@tls.msk.ru> wrote:
14.03.2024 09:15, Yong-Xuan Wang:
The timebase-frequency of guest OS should be the same with host
machine. The timebase-frequency value in DTS should be got from
hypervisor when using KVM acceleration.
This change ended up in stable-8.2 (v8.2.3). Interestingly, this thing
compiled not even once, or else it would be obvious it fails to compile.
Somehow I was too used to CI, forgetting that we don't have riscv *host*
in CI (and I don't have one locally either). So 8.2.3 is broken on
riscv64 *host*.
It's possible to cross-compile qemu, so it'd be good to add that to the CI for
riscv until we can add native compiling.
Yes, definitely. Qemu is already being cross-compiled on all "other"
architectures during CI. But it is also being *run*, not just compiled.
And this is what's broken on riscv64 for almost a year now, and this
job has been disabled. Instead, the *run* part of this job needs to
be disabled, but *build* part should be kept.
In 8.2, KVM_RISCV_GET_TIMER macro accepts 4 arguments, because it does
not have 10f86d1b845087d1 "target/riscv/kvm: change timer regs size to u64".
What do you think, should I revert this change for stable-8.2, or pick
10f86d1b845087d1 too, or change this commit (fix timebase-frequency) to
provide the missing argument for this macro?
Changing the timer regs to u64 is an rv32 fix, so it's reasonable to also pick
it up. I suggest we keep this patch one way or another, though.
Okay, so I need help choosing which patches to pick.
10f86d1b845087d1 isn't sufficient, since it relies on 450bd6618fda3d
"target/riscv/kvm: change KVM_REG_RISCV_FP_D to u64". In the same series
there also was 49c211ffca00fdf7c "target/riscv/kvm: change KVM_REG_RISCV_FP_F
to u32" - is it also needed?
Please tell me the set of things I need for stable-8.2 here. I'd
love to makes 8.2.4 release really soon, to fix this breakage.
Also, right now I don't know how to even compile-test it. So meanwhile I'll
try to fix that and push this change to qemu master (to re-enable riscv64
CI job but only build part of it). I don't have riscv hardware handy :)
Thanks,
/mjt