[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v10 5/7] hw/ptimer: Legalize running with delta =
Re: [Qemu-arm] [PATCH v10 5/7] hw/ptimer: Legalize running with delta = load = 0
Wed, 20 Jan 2016 03:50:35 +0300
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
12.01.2016 21:12, Dmitry Osipenko пишет:
12.01.2016 06:58, Peter Crosthwaite пишет:
On Sat, Jan 09, 2016 at 08:39:53PM +0300, Dmitry Osipenko wrote:
Currently ptimer would print error message and clear enable flag for an
arming timer that has delta = load = 0. That actually could be a valid case
for some hardware, like instant IRQ trigger for oneshot timer or continuous
in periodic mode. Support those cases by printing error message only when
period = 0.
Isn't the continuous-periodic the same as period = 0, so if we were to really
support this, there should be no error message. This would simplify as we
can remove the conditionals of 0 period completely and rely only on the
too-fast clamps you add in previous patches.
I don't think that clamping is needed. Instead doing the ptimer_tick might be
necessary, so ptimer user could handle that case on it own.
BTW, that printf isn't quite reliable, hw_error or other way of execution abort
should been used instead.
Thanks for the comment.
Just tried with the clamping. It works, but what clamping should be chosen for
icount mode? delta * period = 1ns is damn slow.
However, I'm still not sure what benefit has clamping over unclearable IRQ...
only disadvantages in form of slowdown in icount mode, +2 lines of ptimer code
and possible misbehaviour of blazing fast host machine in non-icount mode.
[Qemu-arm] [PATCH v10 6/7] hw/ptimer: Introduce ptimer_get_limit, Dmitry Osipenko, 2016/01/09
[Qemu-arm] [PATCH v10 5/7] hw/ptimer: Legalize running with delta = load = 0, Dmitry Osipenko, 2016/01/09
[Qemu-arm] [PATCH v10 7/7] arm_mptimer: Convert to use ptimer, Dmitry Osipenko, 2016/01/09
- Re: [Qemu-arm] [PATCH v10 2/7] hw/ptimer: Perform tick and counter wrap around if timer already expired, (continued)