From: Frederic Weisbecker <frederic@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
"David S . Miller" <davem@davemloft.net>,
Linus Torvalds <torvalds@linux-foundation.org>,
Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Pavan Kondeti <pkondeti@codeaurora.org>,
Ingo Molnar <mingo@kernel.org>,
Joel Fernandes <joel@joelfernandes.org>
Subject: [PATCH 00/37] softirq: Per vector masking v3
Date: Thu, 28 Feb 2019 18:12:05 +0100 [thread overview]
Message-ID: <20190228171242.32144-1-frederic@kernel.org> (raw)
So this set should hopefully address all reviews from the v2, and
fix all reports from the extremely useful (as always) Kbuild testing
bot. It also completes support for all archs.
Unfortunately the already huge pile is ever growing. I should be able to
offload 2 or 3 of those patches but the rest really belong together.
Changes since v2:
* Fix unused function warning (reported by Kbuild test robot)
- locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING
* Added Reviewed-by tags from davem
* Reorder changes introducing u64 to the proper patches (reported by Linus)
* Fix lock usage mask iteration by avoid shifting beyond 63 (reported by Linus)
- locking/lockdep: Introduce lock usage mask iterator
* Fix mark_lock() verbosity by handling all usages in the ask
- locking/lockdep: Report all usages on mark_lock() verbosity mode
* Add SPDX licence identifier on softirq_vector.h (reported by Sebastian)
* Fix several build errors on s390 (reported by Kbuild test robot)
- arch/softirq: Rename softirq_pending fields to softirq_data
- softirq: Introduce disabled softirq vectors bits
- softirq: Check enabled vectors before processing
* Initialize softirq enabled field on all other archs than x86
- parisc: Init softirq enabled field
- powerpc: Init softirq enabled field
- softirq: Init softirq enabled field for default irq_stat definition
* Fix spin_[un]lock_bh_mask() on UP, also some build errors against uninlined spinlocks (reported by Kbuild test robot)
- locking: Introduce spin_[un]lock_bh_mask()
* Socket lock may also execute on HRTIMER_SOFTIRQ, include it on the mask (reported by Sebastian)
- net: Make softirq vector masking finegrained on release_sock()
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
softirq/soft-interruptible-v2
HEAD: 63c89028058f5920d4b5a9d38452fa4623469583
Thanks,
Frederic
---
Frederic Weisbecker (37):
locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING
locking/lockdep: Use expanded masks on find_usage_*() functions
locking/lockdep: Introduce struct lock_usage
locking/lockdep: Convert usage_mask to u64
locking/lockdep: Introduce lock usage mask iterator
locking/lockdep: Test all incompatible scenario at once in check_irq_usage()
locking/lockdep: Prepare valid_state() to handle plain masks
locking/lockdep: Prepare check_usage_*() to handle plain masks
locking/lockdep: Prepare state_verbose() to handle all softirqs
locking/lockdep: Make mark_lock() fastpath to work with multiple usage at once
locking/lockdep: Save stack trace for each softirq vector involved
locking/lockdep: Report all usages on mark_lock() verbosity mode
softirq: Macrofy softirq vectors
locking/lockdep: Define per vector softirq lock usage states
softirq: Pass softirq vector number to lockdep on vector execution
x86: Revert "x86/irq: Demote irq_cpustat_t::__softirq_pending to u16"
arch/softirq: Rename softirq_pending fields to softirq_data
softirq: Normalize softirq_pending naming scheme
softirq: Convert softirq_pending_*() to set/clear mask scheme
softirq: Introduce disabled softirq vectors bits
softirq: Rename _local_bh_enable() to local_bh_enable_no_softirq()
softirq: Move vectors bits to bottom_half.h
x86: Init softirq enabled field
parisc: Init softirq enabled field
powerpc: Init softirq enabled field
softirq: Init softirq enabled field for default irq_stat definition
softirq: Check enabled vectors before processing
softirq: Remove stale comment
softirq: Uninline !CONFIG_TRACE_IRQFLAGS __local_bh_disable_ip()
softirq: Prepare for mixing all/per-vector masking
softirq: Support per vector masking
locking/lockdep: Remove redundant softirqs on check
locking/lockdep: Update check_flags() according to new layout
locking/lockdep: Branch the new vec-finegrained softirq masking to lockdep
softirq: Allow to soft interrupt vector-specific masked contexts
locking: Introduce spin_[un]lock_bh_mask()
net: Make softirq vector masking finegrained on release_sock()
arch/arm/include/asm/hardirq.h | 2 +-
arch/arm64/include/asm/hardirq.h | 2 +-
arch/h8300/kernel/asm-offsets.c | 2 +-
arch/ia64/include/asm/hardirq.h | 2 +-
arch/ia64/include/asm/processor.h | 2 +-
arch/m68k/include/asm/hardirq.h | 2 +-
arch/m68k/kernel/asm-offsets.c | 2 +-
arch/parisc/include/asm/hardirq.h | 2 +-
arch/parisc/kernel/irq.c | 6 +-
arch/powerpc/include/asm/hardirq.h | 2 +-
arch/powerpc/kernel/irq.c | 5 +-
arch/s390/include/asm/hardirq.h | 11 +-
arch/s390/include/asm/lowcore.h | 2 +-
arch/s390/lib/delay.c | 2 +-
arch/sh/include/asm/hardirq.h | 2 +-
arch/sparc/include/asm/cpudata_64.h | 2 +-
arch/sparc/include/asm/hardirq_64.h | 4 +-
arch/um/include/asm/hardirq.h | 2 +-
arch/x86/include/asm/hardirq.h | 2 +-
arch/x86/kernel/irq.c | 5 +-
drivers/s390/char/sclp.c | 2 +-
drivers/s390/cio/cio.c | 2 +-
include/asm-generic/hardirq.h | 2 +-
include/linux/bottom_half.h | 41 +++-
include/linux/interrupt.h | 87 ++++---
include/linux/irqflags.h | 12 +-
include/linux/lockdep.h | 5 +-
include/linux/softirq_vector.h | 12 +
include/linux/spinlock.h | 14 ++
include/linux/spinlock_api_smp.h | 28 +++
include/linux/spinlock_api_up.h | 13 +
kernel/locking/lockdep.c | 475 ++++++++++++++++++++++++------------
kernel/locking/lockdep_internals.h | 50 +++-
kernel/locking/lockdep_proc.c | 2 +-
kernel/locking/lockdep_states.h | 4 +-
kernel/locking/spinlock.c | 19 ++
kernel/softirq.c | 163 +++++++++----
lib/locking-selftest.c | 4 +-
net/core/sock.c | 8 +-
39 files changed, 715 insertions(+), 289 deletions(-)
next reply other threads:[~2019-02-28 17:12 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-28 17:12 Frederic Weisbecker [this message]
2019-02-28 17:12 ` [PATCH 01/37] locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 02/37] locking/lockdep: Use expanded masks on find_usage_*() functions Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 03/37] locking/lockdep: Introduce struct lock_usage Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 04/37] locking/lockdep: Convert usage_mask to u64 Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 05/37] locking/lockdep: Introduce lock usage mask iterator Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 06/37] locking/lockdep: Test all incompatible scenario at once in check_irq_usage() Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 07/37] locking/lockdep: Prepare valid_state() to handle plain masks Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 08/37] locking/lockdep: Prepare check_usage_*() " Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 09/37] locking/lockdep: Prepare state_verbose() to handle all softirqs Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 10/37] locking/lockdep: Make mark_lock() fastpath to work with multiple usage at once Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 11/37] locking/lockdep: Save stack trace for each softirq vector involved Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 12/37] locking/lockdep: Report all usages on mark_lock() verbosity mode Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 13/37] softirq: Macrofy softirq vectors Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 14/37] locking/lockdep: Define per vector softirq lock usage states Frederic Weisbecker
2019-04-09 12:03 ` Peter Zijlstra
2019-02-28 17:12 ` [PATCH 15/37] softirq: Pass softirq vector number to lockdep on vector execution Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 16/37] x86: Revert "x86/irq: Demote irq_cpustat_t::__softirq_pending to u16" Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 17/37] arch/softirq: Rename softirq_pending fields to softirq_data Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 18/37] softirq: Normalize softirq_pending naming scheme Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 19/37] softirq: Convert softirq_pending_*() to set/clear mask scheme Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 20/37] softirq: Introduce disabled softirq vectors bits Frederic Weisbecker
2019-03-01 11:29 ` Sebastian Andrzej Siewior
2019-02-28 17:12 ` [PATCH 21/37] softirq: Rename _local_bh_enable() to local_bh_enable_no_softirq() Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 22/37] softirq: Move vectors bits to bottom_half.h Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 23/37] x86: Init softirq enabled field Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 24/37] parisc: " Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 25/37] powerpc: " Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 26/37] softirq: Init softirq enabled field for default irq_stat definition Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 27/37] softirq: Check enabled vectors before processing Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 28/37] softirq: Remove stale comment Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 29/37] softirq: Uninline !CONFIG_TRACE_IRQFLAGS __local_bh_disable_ip() Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 30/37] softirq: Prepare for mixing all/per-vector masking Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 31/37] softirq: Support per vector masking Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 32/37] locking/lockdep: Remove redundant softirqs on check Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 33/37] locking/lockdep: Update check_flags() according to new layout Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 34/37] locking/lockdep: Branch the new vec-finegrained softirq masking to lockdep Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 35/37] softirq: Allow to soft interrupt vector-specific masked contexts Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 36/37] locking: Introduce spin_[un]lock_bh_mask() Frederic Weisbecker
2019-02-28 17:12 ` [PATCH 37/37] net: Make softirq vector masking finegrained on release_sock() Frederic Weisbecker
2019-02-28 17:33 ` [PATCH 00/37] softirq: Per vector masking v3 Linus Torvalds
2019-03-01 3:45 ` Frederic Weisbecker
2019-03-01 16:51 ` Linus Torvalds
2019-03-08 15:30 ` Frederic Weisbecker
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=20190228171242.32144-1-frederic@kernel.org \
--to=frederic@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=joel@joelfernandes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab+samsung@kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=pkondeti@codeaurora.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).