On Wed, 15 Sept 2021 at 11:32, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > On Wed, Sep 15 2021 at 11:14, Dmitry Vyukov wrote: > > On Wed, 15 Sept 2021 at 10:57, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > >> That made me actually look at that mac80211_hwsim callback again. > >> > >> hrtimer_forward(&data->beacon_timer, hrtimer_get_expires(timer), > >> ns_to_ktime(bcn_int * NSEC_PER_USEC)); > >> > >> So what this does is really wrong because it tries to schedule the timer > >> on the theoretical periodic timeline. Which goes really south once the > >> timer is late or the callback execution took longer than the > >> period. Hypervisors scheduling out a VCPU at the wrong place will do > >> that for you nicely. > > > > Nice! > > > > You mentioned that hrtimer_run_queues() may not return. Does it mean > > that it can just loop executing the same re-armed callback again and > > again? Maybe then the debug check condition should be that > > hrtimer_run_queues() runs the same callback more than N times w/o > > returning? > > Something like that. I've filed https://bugzilla.kernel.org/show_bug.cgi?id=214429 so that it's not lost. Thanks.