powerpc/powernv: process all OPAL event interrupts with kopald
Nicholas Piggin authored

Using irq_work for processing OPAL event interrupts is not necessary.
irq_work is typically used to schedule work from NMI context, a
softirq may be more appropriate. However OPAL events are not
particularly performance or latency critical, so they can all be
invoked by kopald.

This patch removes the irq_work queueing, and instead wakes up
kopald when there is an event to be processed. kopald processes
interrupts individually, enabling irqs and calling cond_resched
between each one to minimise latencies.

Event handlers themselves should still use threaded handlers,
workqueues, etc. as necessary to avoid high interrupts-off latencies
within any single interrupt.
Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
56c0b48b
Name Last commit Last update
Documentation Merge branch 'fixes' into next
LICENSES LICENSES: Add MPL-1.1 license
arch powerpc/powernv: process all OPAL event interrupts with kopald
block Revert "blk-mq: remove code for dealing with remapping queue"
certs certs/blacklist_nohashes.c: fix const confusion in certs blacklist
crypto crypto: drbg - set freed buffers to NULL
drivers Merge branch 'fixes' into next
firmware kbuild: remove all dummy assignments to obj-
fs mm/pkeys, x86, powerpc: Display pkey in smaps if arch supports pkeys
include mm/pkeys: Add an empty arch_pkeys_enabled()
init Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
ipc ipc/shm: fix use-after-free of shm file via remap_file_pages()
kernel powerpc/syscalls: switch rtas(2) to SYSCALL_DEFINE
lib Merge tag 'driver-core-4.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
mm x86/pti: Filter at vma->vm_page_prot population
net Merge tag 'ceph-for-4.17-rc3' of git://github.com/ceph/ceph-client
samples Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching
scripts powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS
security Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
sound ALSA: dice: fix error path to destroy initialized stream data
tools selftests/powerpc: Add core file test for Protection Key registers
usr kbuild: rename built-in.o to built-in.a
virt rMerge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
.clang-format clang-format: add configuration file
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore Add hch to .get_maintainer.ignore
.gitattributes .gitattributes: set git diff driver for C source code files
.gitignore Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
.mailmap Merge tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
COPYING COPYING: use the new text with points to the license files
CREDITS MAINTAINERS/CREDITS: Drop METAG ARCHITECTURE
Kbuild Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Kconfig License cleanup: add SPDX GPL-2.0 license identifier to files with no license
MAINTAINERS MAINTAINERS: add myself as maintainer of AFFS
Makefile Linux v4.17-rc3
README Docs: Added a pointer to the formatted docs to README
Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.