From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: Peter Maydell <peter.maydell@linaro.org>,
qemu-devel@nongnu.org,
"open list:ARM TCG CPUs" <qemu-arm@nongnu.org>,
Florian Lugou <florian.lugou@provenrun.com>
Subject: Re: [PATCH] target/arm/helper: Fix timer interrupt masking when HCR_EL2.E2H == 0
Date: Fri, 07 Feb 2025 18:29:27 +0000 [thread overview]
Message-ID: <87a5axr4l4.fsf@draig.linaro.org> (raw)
In-Reply-To: <5ee77b8c-e6a4-421b-b729-a6535fdf1e6d@linaro.org> (Richard Henderson's message of "Fri, 7 Feb 2025 09:22:17 -0800")
Richard Henderson <richard.henderson@linaro.org> writes:
> On 2/7/25 07:45, Peter Maydell wrote:
>> This is where things go wrong -- icount_start_warp_timer()
>> notices that all CPU threads are currently idle, and
>> decides it needs to warp the timer forwards to the
>> next deadline, which is at the end of time -- INT64_MAX.
>> But once timer_mod_ns() returns, the generic timer code
>> is going to raise an interrupt (this goes through the GIC
>> code and comes back into the CPU which calls cpu_interrupt()),
>> so we don't want to warp the timer at all. The clock should
>> stay exactly at the value it has and the CPU is going to
>> have more work to do.
>> How is this supposed to work? Shouldn't we only be doing
>> the "start moving the icount forward to the next deadline"
>> once we've completed all the "run timers and AIO stuff" that
>> icount_handle_deadline() triggers, not randomly in the middle
>> of that when this timer callback or some other one might do
>> something to trigger an interrupt?
>
> I don't understand timer warping at all. And you're right, it doesn't
> seem like this should happen outside of a specific point in the main
> loop.
This has come up before - and the conclusion was we don't know what
sleep=on/off is meant to mean. If the processor is asleep and there are
no timers to fire then nothing will happen.
It was off-list though:
Subject: Re: qemu-system-aarch64 & icount behavior
Date: Wed, 22 Jul 2020 at 11:21
From: Kumar Gala <kumar.gala@linaro.org>
Subject: Fwd: qemu-system-aarch64 & icount behavior
Message-ID: <CAFEAcA9DnBQFnOc1HJav2DyLwsQu+YYE5RyZp5wrLxyc1gZqOQ@mail.gmail.com>
Date: Fri, 24 Jul 2020 17:25:51 +0100
From: Peter Maydell <peter.maydell@linaro.org>
>> ... But I don't think there's any reason why
>> timer callbacks should be obliged to reprogram their timers
>> last, and in any case you can imagine scenarios where there
>> are multiple timer callbacks for different timers and it's
>> only the second timer that raises an interrupt...
>
> Agreed.
>
>
> r~
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
next prev parent reply other threads:[~2025-02-07 18:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-15 18:54 [PATCH] target/arm/helper: Fix timer interrupt masking when HCR_EL2.E2H == 0 Florian Lugou
2024-06-20 10:43 ` Peter Maydell
2024-06-20 13:56 ` Florian Lugou
2024-06-20 19:01 ` Peter Maydell
2024-06-21 14:07 ` Florian Lugou
2024-08-13 12:13 ` Peter Maydell
2024-08-20 11:30 ` Florian Lugou
2025-02-06 15:41 ` Peter Maydell
2025-02-07 15:45 ` Peter Maydell
2025-02-07 17:22 ` Richard Henderson
2025-02-07 18:29 ` Alex Bennée [this message]
2025-02-10 9:33 ` Peter Maydell
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=87a5axr4l4.fsf@draig.linaro.org \
--to=alex.bennee@linaro.org \
--cc=florian.lugou@provenrun.com \
--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).