[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1859021] Re: qemu-system-aarch64 (tcg): cval + voff overflow not ha
From: |
Thomas Huth |
Subject: |
[Bug 1859021] Re: qemu-system-aarch64 (tcg): cval + voff overflow not handled, causes qemu to hang |
Date: |
Sat, 01 May 2021 05:30:50 -0000 |
This is an automated cleanup. This bug report has been moved
to QEMU's new bug tracker on gitlab.com and thus gets marked
as 'expired' now. Please continue with the discussion here:
https://gitlab.com/qemu-project/qemu/-/issues/60
** Changed in: qemu
Status: Confirmed => Expired
** Changed in: qemu
Assignee: Alex Bennée (ajbennee) => (unassigned)
** Bug watch added: gitlab.com/qemu-project/qemu/-/issues #60
https://gitlab.com/qemu-project/qemu/-/issues/60
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1859021
Title:
qemu-system-aarch64 (tcg): cval + voff overflow not handled, causes
qemu to hang
Status in QEMU:
Expired
Bug description:
The Armv8 architecture reference manual states that for any timer set
(e.g. CNTP* and CNTV*), the condition for such timer to generate an
interrupt (if enabled & unmasked) is:
CVAL <= CNT(P/V)CT
Although this is arguably sloppy coding, I have seen code that is
therefore assuming it can set CVAL to a very high value (e.g.
UINT64_MAX) and leave the interrupt enabled in CTL, and never get the
interrupt.
On latest master commit as the time of writing, there is an integer
overflow in target/arm/helper.c gt_recalc_timer affecting the virtual
timer when the interrupt is enabled in CTL:
/* Next transition is when we hit cval */
nexttick = gt->cval + offset;
When this overflow happens, I notice that qemu is no longer responsive and
that I have to SIGKILL the process:
- qemu takes nearly all the cpu time of the cores it is running on (e.g.
50% cpu usage if running on half the cores) and is completely unresponsive
- no guest interrupt (reported via -d int) is generated
Here the minimal code example to reproduce the issue:
mov x0, #1
msr cntvoff_el2, x0
mov x0, #-1
msr cntv_cval_el0, x0
mov x0, #1
msr cntv_ctl_el0, x0 // interrupt generation enabled, not masked;
qemu will start to hang here
Options used:
-nographic -machine virt,virtualization=on,gic-version=2,accel=tcg -cpu
cortex-a57
-smp 4 -m 1024 -kernel whatever.elf -d unimp,guest_errors,int
-semihosting-config enable,target=native
-serial mon:stdio
Version used: 4.2
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1859021/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug 1859021] Re: qemu-system-aarch64 (tcg): cval + voff overflow not handled, causes qemu to hang,
Thomas Huth <=