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.