All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Marc Zyngier <maz@kernel.org>, Rich Felker <dalias@libc.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Paul McKenney <paulmck@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Richard Weinberger <richard@nod.at>,
	Frederic Weisbecker <frederic@kernel.org>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Jeff Dike <jdike@addtoit.com>,
	Russell King <linux@armlinux.org.uk>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	linux-parisc@vger.kernel.org, Helge Deller <deller@gmx.de>,
	linux-um@lists.infradead.org, Will Deacon <will@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>
Subject: [patch 00/19] softirq: Cleanups and RT awareness
Date: Fri, 13 Nov 2020 14:02:07 +0000	[thread overview]
Message-ID: <20201113140207.499353218@linutronix.de> (raw)

UlQgcnVucyBzb2Z0aXJxIHByb2Nlc3NpbmcgYWx3YXlzIGluIHRocmVhZCBjb250ZXh0IGFuZCBp
dCByZXF1aXJlcyB0aGF0CmJvdGggdGhlIHNvZnRpcnEgZXhlY3V0aW9uIGFuZCB0aGUgQkggZGlz
YWJsZWQgc2VjdGlvbnMgYXJlIHByZWVtcHRpYmxlLgoKVGhpcyBpcyBhY2hpZXZlZCBieSBzZXJp
YWxpemF0aW9uIHRocm91Z2ggcGVyIENQVSBsb2NhbCBsb2NrcyBhbmQKc3Vic3RpdHV0aW5nIGEg
ZmV3IHBhcnRzIG9mIHRoZSBleGlzdGluZyBzb2Z0aXJxIHByb2Nlc3NpbmcgY29kZSB3aXRoCmhl
bHBlciBmdW5jdGlvbnMuCgpUaGUgZm9sbG93aW5nIHNlcmllcyBoYXMgdHdvIHBhcnRzOgoKICAg
IDEpIENsZWFudXAgaXJxX2NwdXN0YXRzIGFuZCBjb25zb2xpZGF0aW9uIG9mIHRoZSBwcmVlbXB0
IGNvdW50IG1hemUKICAgICAgIHNvIHNvZnRpcnFfY291bnQoKSBhbmQgcmVsYXRlZCBwYXJ0cyBj
YW4gYmUgc3Vic3RpdHV0ZWQgZm9yIFJUCgogICAgMikgVGhlIGFjdHVhbCBjb3JlIGltcGxlbWVu
dGF0aW9uIGluY2x1ZGluZyB0aGUgcmVxdWlyZWQgZml4dXBzIGZvcgogICAgICAgTk9IWiwgUkNV
IGFuZCB0YXNrbGV0cy4KClRoZSBzZXJpZXMgaXMgYWxzbyBhdmFpbGFibGUgZnJvbSBnaXQ6Cgog
IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90Z2x4L2RldmVs
LmdpdCBzb2Z0aXJxCgpUaGUgUlQgdmFyaWFudCBoYXMgc3VjZXNzZnVsbHkgYmVlbiB0ZXN0ZWQg
aW4gdGhlIGN1cnJlbnQgNS4xMC1ydApwYXRjaGVzLiBGb3Igbm9uLVJUIGtlcm5lbHMgdGhlcmUg
aXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpUaGFua3MsCgoJdGdseAotLS0KIGIvYXJjaC9hcm0v
aW5jbHVkZS9hc20vaGFyZGlycS5oICAgIHwgICAxMSAKIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20v
aXJxLmggICAgICAgIHwgICAgMiAKIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9oYXJkaXJxLmgg
IHwgICAgNyAKIGIvYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vaGFyZGlycS5oIHwgICAgMSAKIGIv
YXJjaC9zaC9pbmNsdWRlL2FzbS9oYXJkaXJxLmggICAgIHwgICAxNCAtCiBiL2FyY2gvc2gva2Vy
bmVsL2lycS5jICAgICAgICAgICAgICB8ICAgIDIgCiBiL2FyY2gvc2gva2VybmVsL3RyYXBzLmMg
ICAgICAgICAgICB8ICAgIDIgCiBiL2FyY2gvdW0vaW5jbHVkZS9hc20vaGFyZGlycS5oICAgICB8
ICAgMTcgLQogYi9pbmNsdWRlL2FzbS1nZW5lcmljL2hhcmRpcnEuaCAgICAgfCAgICA2IAogYi9p
bmNsdWRlL2xpbnV4L2JvdHRvbV9oYWxmLmggICAgICAgfCAgICA4IAogYi9pbmNsdWRlL2xpbnV4
L2hhcmRpcnEuaCAgICAgICAgICAgfCAgICAxIAogYi9pbmNsdWRlL2xpbnV4L2ludGVycnVwdC5o
ICAgICAgICAgfCAgIDEzIC0KIGIvaW5jbHVkZS9saW51eC9wcmVlbXB0LmggICAgICAgICAgIHwg
ICAzNiArLS0KIGIvaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oICAgICAgICAgIHwgICAgMyAKIGIv
aW5jbHVkZS9saW51eC9zY2hlZC5oICAgICAgICAgICAgIHwgICAgMyAKIGIva2VybmVsL3NvZnRp
cnEuYyAgICAgICAgICAgICAgICAgIHwgIDQxMiArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KystLS0tLS0KIGIva2VybmVsL3RpbWUvdGljay1zY2hlZC5jICAgICAgICAgIHwgICAgMiAKIGlu
Y2x1ZGUvbGludXgvaXJxX2NwdXN0YXQuaCAgICAgICAgIHwgICAyOCAtLQogMTggZmlsZXMgY2hh
bmdlZCwgNDA1IGluc2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKCgoKCgoK

WARNING: multiple messages have this Message-ID
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Paul McKenney <paulmck@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Arnd Bergmann <arnd@arndb.de>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	Helge Deller <deller@gmx.de>,
	linux-parisc@vger.kernel.org,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	linux-sh@vger.kernel.org, Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>,
	linux-um@lists.infradead.org,
	Russell King <linux@armlinux.org.uk>,
	Marc Zyngier <maz@kernel.org>,
	Valentin Schneider <valentin.schneider@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>
Subject: [patch 00/19] softirq: Cleanups and RT awareness
Date: Fri, 13 Nov 2020 15:02:07 +0100	[thread overview]
Message-ID: <20201113140207.499353218@linutronix.de> (raw)

RT runs softirq processing always in thread context and it requires that
both the softirq execution and the BH disabled sections are preemptible.

This is achieved by serialization through per CPU local locks and
substituting a few parts of the existing softirq processing code with
helper functions.

The following series has two parts:

    1) Cleanup irq_cpustats and consolidation of the preempt count maze
       so softirq_count() and related parts can be substituted for RT

    2) The actual core implementation including the required fixups for
       NOHZ, RCU and tasklets.

The series is also available from git:

  git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git softirq

The RT variant has sucessfully been tested in the current 5.10-rt
patches. For non-RT kernels there is no functional change.

Thanks,

	tglx
---
 b/arch/arm/include/asm/hardirq.h    |   11 
 b/arch/arm/include/asm/irq.h        |    2 
 b/arch/arm64/include/asm/hardirq.h  |    7 
 b/arch/parisc/include/asm/hardirq.h |    1 
 b/arch/sh/include/asm/hardirq.h     |   14 -
 b/arch/sh/kernel/irq.c              |    2 
 b/arch/sh/kernel/traps.c            |    2 
 b/arch/um/include/asm/hardirq.h     |   17 -
 b/include/asm-generic/hardirq.h     |    6 
 b/include/linux/bottom_half.h       |    8 
 b/include/linux/hardirq.h           |    1 
 b/include/linux/interrupt.h         |   13 -
 b/include/linux/preempt.h           |   36 +--
 b/include/linux/rcupdate.h          |    3 
 b/include/linux/sched.h             |    3 
 b/kernel/softirq.c                  |  412 ++++++++++++++++++++++++++++++------
 b/kernel/time/tick-sched.c          |    2 
 include/linux/irq_cpustat.h         |   28 --
 18 files changed, 405 insertions(+), 163 deletions(-)







WARNING: multiple messages have this Message-ID
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Marc Zyngier <maz@kernel.org>, Rich Felker <dalias@libc.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Paul McKenney <paulmck@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	linux-sh@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>,
	Richard Weinberger <richard@nod.at>,
	Frederic Weisbecker <frederic@kernel.org>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Jeff Dike <jdike@addtoit.com>,
	Russell King <linux@armlinux.org.uk>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	linux-parisc@vger.kernel.org, Helge Deller <deller@gmx.de>,
	linux-um@lists.infradead.org, Will Deacon <will@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	Anton Ivanov <anton.ivanov@cambridgegreys.com>
Subject: [patch 00/19] softirq: Cleanups and RT awareness
Date: Fri, 13 Nov 2020 15:02:07 +0100	[thread overview]
Message-ID: <20201113140207.499353218@linutronix.de> (raw)

RT runs softirq processing always in thread context and it requires that
both the softirq execution and the BH disabled sections are preemptible.

This is achieved by serialization through per CPU local locks and
substituting a few parts of the existing softirq processing code with
helper functions.

The following series has two parts:

    1) Cleanup irq_cpustats and consolidation of the preempt count maze
       so softirq_count() and related parts can be substituted for RT

    2) The actual core implementation including the required fixups for
       NOHZ, RCU and tasklets.

The series is also available from git:

  git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git softirq

The RT variant has sucessfully been tested in the current 5.10-rt
patches. For non-RT kernels there is no functional change.

Thanks,

	tglx
---
 b/arch/arm/include/asm/hardirq.h    |   11 
 b/arch/arm/include/asm/irq.h        |    2 
 b/arch/arm64/include/asm/hardirq.h  |    7 
 b/arch/parisc/include/asm/hardirq.h |    1 
 b/arch/sh/include/asm/hardirq.h     |   14 -
 b/arch/sh/kernel/irq.c              |    2 
 b/arch/sh/kernel/traps.c            |    2 
 b/arch/um/include/asm/hardirq.h     |   17 -
 b/include/asm-generic/hardirq.h     |    6 
 b/include/linux/bottom_half.h       |    8 
 b/include/linux/hardirq.h           |    1 
 b/include/linux/interrupt.h         |   13 -
 b/include/linux/preempt.h           |   36 +--
 b/include/linux/rcupdate.h          |    3 
 b/include/linux/sched.h             |    3 
 b/kernel/softirq.c                  |  412 ++++++++++++++++++++++++++++++------
 b/kernel/time/tick-sched.c          |    2 
 include/linux/irq_cpustat.h         |   28 --
 18 files changed, 405 insertions(+), 163 deletions(-)






_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2020-11-13 14:02 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13 14:02 Thomas Gleixner [this message]
2020-11-13 14:02 ` Thomas Gleixner
2020-11-13 14:02 ` Thomas Gleixner
2020-11-13 14:02 ` [patch 01/19] parisc: Remove bogus __IRQ_STAT macro Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 02/19] sh: Get rid of nmi_count() Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2021-01-01 14:27   ` [patch 02/19] " John Paul Adrian Glaubitz
2021-01-01 14:27     ` John Paul Adrian Glaubitz
2020-11-13 14:02 ` [patch 03/19] irqstat: Get rid of nmi_count() and __IRQ_STAT() Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 04/19] um/irqstat: Get rid of the duplicated declarations Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 05/19] ARM: irqstat: Get rid of duplicated declaration Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-16 18:19   ` Valentin Schneider
2020-11-16 18:19     ` Valentin Schneider
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 06/19] arm64: " Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-16 10:01   ` Will Deacon
2020-11-16 10:01     ` Will Deacon
2020-11-16 10:01     ` Will Deacon
2020-11-16 10:51   ` Marc Zyngier
2020-11-16 10:51     ` Marc Zyngier
2020-11-16 10:51     ` Marc Zyngier
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 07/19] asm-generic/irqstat: Add optional __nmi_count member Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 08/19] sh: irqstat: Use the generic irq_cpustat_t Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 09/19] irqstat: Move declaration into asm-generic/hardirq.h Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 10/19] preempt: Cleanup the macro maze a bit Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-16 12:17   ` Peter Zijlstra
2020-11-16 12:17     ` Peter Zijlstra
2020-11-16 12:17     ` Peter Zijlstra
2020-11-16 17:42     ` Thomas Gleixner
2020-11-16 17:42       ` Thomas Gleixner
2020-11-16 17:42       ` Thomas Gleixner
2020-11-17 10:21       ` Peter Zijlstra
2020-11-17 10:21         ` Peter Zijlstra
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 11/19] softirq: Move related code into one section Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-19 12:20   ` Frederic Weisbecker
2020-11-19 12:20     ` Frederic Weisbecker
2020-11-23 22:51   ` [tip: irq/core] " tip-bot2 for Thomas Gleixner
2020-11-13 14:02 ` [patch 12/19] softirq: Add RT specific softirq accounting Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-19 12:18   ` Frederic Weisbecker
2020-11-19 12:18     ` Frederic Weisbecker
2020-11-19 18:34     ` Thomas Gleixner
2020-11-19 18:34       ` Thomas Gleixner
2020-11-19 22:52       ` Frederic Weisbecker
2020-11-19 22:52         ` Frederic Weisbecker
2020-11-13 14:02 ` [patch 13/19] softirq: Move various protections into inline helpers Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02 ` [patch 14/19] softirq: Make softirq control and processing RT aware Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-20  0:26   ` Frederic Weisbecker
2020-11-20  0:26     ` Frederic Weisbecker
2020-11-20 13:27     ` Thomas Gleixner
2020-11-20 13:27       ` Thomas Gleixner
2020-11-23 13:44   ` Frederic Weisbecker
2020-11-23 13:44     ` Frederic Weisbecker
2020-11-23 19:27     ` Thomas Gleixner
2020-11-23 19:27       ` Thomas Gleixner
2020-11-23 19:56       ` Frederic Weisbecker
2020-11-23 19:56         ` Frederic Weisbecker
2020-11-23 23:58       ` Frederic Weisbecker
2020-11-23 23:58         ` Frederic Weisbecker
2020-11-24  0:06         ` Thomas Gleixner
2020-11-24  0:06           ` Thomas Gleixner
2020-11-24  0:13           ` Frederic Weisbecker
2020-11-24  0:13             ` Frederic Weisbecker
2020-11-24  0:22             ` Thomas Gleixner
2020-11-24  0:22               ` Thomas Gleixner
2020-11-13 14:02 ` [patch 15/19] tick/sched: Prevent false positive softirq pending warnings on RT Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02 ` [patch 16/19] rcu: Prevent false positive softirq warning " Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02 ` [patch 17/19] softirq: Replace barrier() with cpu_relax() in tasklet_unlock_wait() Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02 ` [patch 18/19] tasklets: Use static inlines for stub implementations Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02 ` [patch 19/19] tasklets: Prevent kill/unlock_wait deadlock on RT Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner
2020-11-13 14:02   ` Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201113140207.499353218@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=arnd@arndb.de \
    --cc=bigeasy@linutronix.de \
    --cc=catalin.marinas@arm.com \
    --cc=dalias@libc.org \
    --cc=deller@gmx.de \
    --cc=frederic@kernel.org \
    --cc=jdike@addtoit.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=maz@kernel.org \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=richard@nod.at \
    --cc=valentin.schneider@arm.com \
    --cc=will@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    --subject='Re: [patch 00/19] softirq: Cleanups and RT awareness' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.