On Thu, Dec 12, 2019 at 7:12 PM Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > On 2019-12-11 09:17:49 [+0200], John Mathew wrote: > > Hi, > Hi, > > > We are seeing the waring still appearing in the v5.0.3-rt1 tag of the > > rt linux kernel. > > I didn't managed to reproduce it at the time. Now you say it works with > 5.0-RT. I will try to give it a spin with the latest RT sometime next > week. > > > > > Has there been any further investigation in to this warning following > > the previous discussion? > > Thanks for report. I didn't manage to reproduce it so no. The actual > problem is that we are trying to figure out what a sane limit for > complete_all() might be. Most users of complete_all() have one two > waiters. Based on that report your max was 8 and that occurred a few > times. I was able to reproduce the warning on v5.2.21-rt14 which is the latest tag on the rt-devel branch. Here is my analysis. What I see is that in crypto/algboss.c there is a probe being scheduled when a notification arrives. The probe will run a thread: cryptomgr_probe and wait for its completion. The issue arises because a similar module is also issues a wait for completion on the exactly same completion object (larval->completion). The similar module is: crypto_larval_wait in linux-rt-devel/crypto/api.c It is casting a crypto_larval struct pointer from a crypto_alg struct pointer which doesn't seem to have/init a completion object. So it is actually the cryptomgr_probe thread that actually completes both its own and the crypto_larval_wait waits and so the number of completions exceeds the limit of 2. This looks like an error to me. So I created patch in the following email. I don't think the issue is with the limit, rather a wrong usage of the completion object. > > > -John > > Sebastian