linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/14] tasklets: Replace the spin wait loops and make it RT safe
@ 2021-03-09  8:42 Thomas Gleixner
  2021-03-09  8:42 ` [patch 01/14] tasklets: Replace barrier() with cpu_relax() in tasklet_unlock_wait() Thomas Gleixner
                   ` (14 more replies)
  0 siblings, 15 replies; 36+ messages in thread
From: Thomas Gleixner @ 2021-03-09  8:42 UTC (permalink / raw)
  To: LKML
  Cc: Frederic Weisbecker, Sebastian Andrzej Siewior, Ahmed S. Darwish,
	Peter Zijlstra, Denis Kirjanov, David S. Miller, Jakub Kicinski,
	netdev, ath9k-devel, Kalle Valo, linux-wireless, Chas Williams,
	linux-atm-general, K. Y. Srinivasan, Haiyang Zhang,
	Stephen Hemminger, Wei Liu, Lorenzo Pieralisi, Rob Herring,
	Bjorn Helgaas, linux-hyperv, linux-pci, Stefan Richter,
	linux1394-devel

This is a follow up to the review comments of the series which makes
softirq processing PREEMPT_RT safe:

 https://lore.kernel.org/r/20201207114743.GK3040@hirez.programming.kicks-ass.net

Peter suggested to replace the spin waiting in tasklet_disable() and
tasklet_kill() with wait_event(). This also gets rid of the ill defined
sched_yield() in tasklet_kill().

Analyzing all usage sites of tasklet_disable() and tasklet_unlock_wait() we
found that most of them are safe to be converted to a sleeping wait.

Only a few instances invoke tasklet_disable() from atomic context. A few
bugs which have been found in course of this analysis have been already
addressed seperately.

The following series takes the following approach:

    1) Provide a variant of tasklet_disable() which can be invoked from
       atomic contexts

    2) Convert the usage sites which cannot be easily changed to a
       sleepable wait to use this new function

    3) Replace the spin waits in tasklet_disable() and tasklet_kill() with
       sleepable variants.

If this is agreed on then the merging can be either done in bulk or the
first 4 patches could be applied on top of rc2 and tagged for consumption
in the relevant subsystem trees (networking, pci, firewire). In this case
the last patch which changes the implementation of tasklet_disable() has to
be post-poned until all other changes have reached mainline.

The series is also available from git:

  git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git tasklet-2021-03-09

Thanks,

	tglx



^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2021-03-17 15:50 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-09  8:42 [patch 00/14] tasklets: Replace the spin wait loops and make it RT safe Thomas Gleixner
2021-03-09  8:42 ` [patch 01/14] tasklets: Replace barrier() with cpu_relax() in tasklet_unlock_wait() Thomas Gleixner
2021-03-17 15:49   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09  8:42 ` [patch 02/14] tasklets: Use static inlines for stub implementations Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09  8:42 ` [patch 03/14] tasklets: Provide tasklet_disable_in_atomic() Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09  8:42 ` [patch 04/14] tasklets: Use spin wait in tasklet_disable() temporarily Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09  8:42 ` [patch 05/14] tasklets: Replace spin wait in tasklet_unlock_wait() Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Peter Zijlstra
2021-03-09  8:42 ` [patch 06/14] tasklets: Replace spin wait in tasklet_kill() Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Peter Zijlstra
2021-03-09  8:42 ` [patch 07/14] tasklets: Prevent tasklet_unlock_spin_wait() deadlock on RT Thomas Gleixner
2021-03-09 15:00   ` Sebastian Andrzej Siewior
2021-03-09 15:21     ` Sebastian Andrzej Siewior
2021-03-10  8:35       ` Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09  8:42 ` [patch 08/14] net: jme: Replace link-change tasklet with work Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 09/14] net: sundance: Use tasklet_disable_in_atomic() Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 10/14] ath9k: " Thomas Gleixner
2021-03-09 10:23   ` Kalle Valo
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 11/14] atm: eni: Use tasklet_disable_in_atomic() in the send() callback Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 12/14] PCI: hv: Use tasklet_disable_in_atomic() Thomas Gleixner
2021-03-09 22:17   ` Bjorn Helgaas
2021-03-10 11:34   ` Wei Liu
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 13/14] firewire: ohci: Use tasklet_disable_in_atomic() where required Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-03-09  8:42 ` [patch 14/14] tasklets: Switch tasklet_disable() to the sleep wait variant Thomas Gleixner
2021-03-17 15:48   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-03-09 14:04 ` [patch 00/14] tasklets: Replace the spin wait loops and make it RT safe Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).