On 10/4/19 4:48 AM, Peter Maydell wrote: > Currently the ptimer design uses a QEMU bottom-half as its > mechanism for calling back into the device model using the > ptimer when the timer has expired. Unfortunately this design > is fatally flawed, because it means that there is a lag > between the ptimer updating its own state and the device > callback function updating device state, and guest accesses > to device registers between the two can return inconsistent > device state. > > We want to replace the bottom-half design with one where > the guest device's callback is called either immediately > (when the ptimer triggers by timeout) or when the device > model code closes a transaction-begin/end section (when the > ptimer triggers because the device model changed the > ptimer's count value or other state). As the first step, > rename ptimer_init() to ptimer_init_with_bh(), to free up > the ptimer_init() name for the new API. We can then convert > all the ptimer users away from ptimer_init_with_bh() before > removing it entirely. > > (Commit created with > git grep -l ptimer_init | xargs sed -i -e > 's/ptimer_init/ptimer_init_with_bh/' > and three overlong lines folded by hand.) > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > ---
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~