Hello Sebastian, On Tue, Mar 23, 2021 at 10:04:13AM +0100, Sebastian Andrzej Siewior wrote: > On 2021-03-23 08:34:47 [+0100], Uwe Kleine-König wrote: > > On Mon, Mar 22, 2021 at 09:48:36PM +0100, Sebastian Andrzej Siewior wrote: > > > On 2021-03-22 14:40:32 [+0100], Uwe Kleine-König wrote: > > > > From a strictly logically point of view you indeed cannot. But if you go > > > > to the street and say to people there that they can park their car in > > > > this street free of charge between Monday and Friday, I expect that most > > > > of them will assume that they have to pay for parking on weekends. > > > > > > Uwe, the patch reverts a change which was needed for !RT + threadirqs. > > > > This would be a useful information for the commit log. > > > > > The commit message claims that since the referenced commit "… interrupt > > > handlers always run with interrupts disabled on non-RT… ". This has > > > nothing to do with _this_ change. It argues why the workaround is not > > > needed. > > > > It argues why the work around is not needed on non-RT. It might be > > obvious for someone who is firm in the RT concepts, but IMHO commit logs > > should be understandable by and make sense for a wider audience than the > > deep experts. From what I know about RT "Force-threaded interrupt > > handlers used to run with interrupts enabled" still applies there. > > Yes. The commit Johan referenced explains it in more detail. In my book the commit log should be understandable without reading the referenced commits. > > > If the referenced commit breaks RT then this is another story. > > > > I'm surprised to hear that from you. With the goal to get RT into > > mainline I would expect you to be happy if people consider the effects > > on RT in their reviews. > > Correct, I do and I am glad if people consider other aspects of the > kernel in their review including RT. > > > > > So when you said that on on-RT the reason why it used to need a > > > > workaround is gone made me wonder what that implies for RT. > > > > > > There was never reason (or a lockdep splat) for it on RT. If so you > > > should have seen it, right? > > > > No, I don't consider myself to be an RT expert who is aware of all the > > problems. So I admit that for me the effect on RT of the patch under > > discussion isn't obvious. I just wonder that the change is justified > > with being OK on non-RT. So it's either bad that it breaks RT *or* > > improving the commit log would be great. > > > > And even if I had reason to believe that there is no problem with the > > commit on RT, I'd still wish that the commit log wouldn't suggest to the > > casual reader that there might be a problem. > > Okay. I added a sentence. What about this rewording: > > Force-threaded interrupt handlers used to run with interrupts enabled, > something which could lead to deadlocks in case a threaded handler > shared a lock with code running in hard interrupt context (e.g. timer > callbacks) and did not explicitly disable interrupts. > > This was specifically the case for serial drivers that take the port > lock in their console write path as printk can be called from hard > interrupt context also with forced threading ("threadirqs"). > > Since commit 81e2073c175b ("genirq: Disable interrupts for force > threaded handlers") interrupt handlers always run with interrupts > disabled on non-RT so that drivers no longer need to do handle this. > RT is not affected by the referenced commit and the workaround, that is > reverted, was not required because spinlock_t must not be acquired on > RT in hardirq context. > > Drop the now obsolete workaround added by commit 33f16855dcb9 ("tty: > serial: imx: fix potential deadlock"). This resolves my concerns. Thanks Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature