Messages in this thread | | | From | Jassi Brar <> | Date | Thu, 14 Apr 2022 09:30:14 -0500 | Subject | Re: [PATCH] mailbox: forward the hrtimer if not queued and under a lock |
| |
On Thu, Mar 31, 2022 at 2:01 AM Björn Ardö <bjorn.ardo@axis.com> wrote: > > This reverts commit c7dacf5b0f32957b24ef29df1207dc2cd8307743, > "mailbox: avoid timer start from callback" > > The previous commit was reverted since it lead to a race that > caused the hrtimer to not be started at all. The check for > hrtimer_active() in msg_submit() will return true if the > callback function txdone_hrtimer() is currently running. This > function could return HRTIMER_NORESTART and then the timer > will not be restarted, and also msg_submit() will not start > the timer. This will lead to a message actually being submitted > but no timer will start to check for its compleation. > > The original fix that added checking hrtimer_active() was added to > avoid a warning with hrtimer_forward. Looking in the kernel > another solution to avoid this warning is to check hrtimer_is_queued() > before calling hrtimer_forward_now() instead. This however requires a > lock so the timer is not started by msg_submit() inbetween this check > and the hrtimer_forward() call. > This is a very dense api used by many use-cases, I am not confident making any changes without confirming its a real issue with the common code. Please share your client code and traces, that will help me get a clearer picture.
Thanks.
| |