[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191023122705.198339581@linutronix.de>
Date: Wed, 23 Oct 2019 14:27:05 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: LKML <linux-kernel@...r.kernel.org>
Cc: x86@...nel.org, Peter Zijlstra <peterz@...radead.org>,
Andy Lutomirski <luto@...nel.org>,
Will Deacon <will@...nel.org>,
Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org,
linux-arch@...r.kernel.org, Mike Rapoport <rppt@...ux.ibm.com>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Miroslav Benes <mbenes@...e.cz>
Subject: [patch V2 00/17] entry: Provide generic implementation for host and
guest entry/exit work
When working on a way to move out the posix cpu timer expiry out of the
timer interrupt context, I noticed that KVM is not handling pending task
work before entering a guest. A quick hack was to add that to the x86 KVM
handling loop. The discussion ended with a request to make this a generic
infrastructure possible with also moving the per arch implementations of
the enter from and return to user space handling generic.
https://lore.kernel.org/r/89E42BCC-47A8-458B-B06A-D6A20D20512C@amacapital.net
The series implements the syscall enter/exit and the general exit to
userspace work handling along with the pre guest enter functionality.
Changes vs. RFC version:
- Dropped ARM64 conversion as requested by ARM64 folks
- Addressed various review comments (Peter, Andy, Mike, Paolo, Josh,
Miroslav)
- Picked up, fixed and completed Peter's patch which makes interrupt
enable/disable symmetric in trap handlers
- Completed the removal of irq disabling / irq tracing from low level
ASM code
- Moved KVM specific parts of the enter guest mode handling to KVM
(Paolo)
The series is also available from git:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP/core.entry
Thanks,
tglx
RFC version: https://lore.kernel.org/r/20190919150314.054351477@linutronix.de
---
/Makefile | 3
arch/Kconfig | 3
arch/x86/Kconfig | 1
arch/x86/entry/calling.h | 12 +
arch/x86/entry/common.c | 264 ++------------------------------
arch/x86/entry/entry_32.S | 41 ----
arch/x86/entry/entry_64.S | 32 ---
arch/x86/entry/entry_64_compat.S | 30 ---
arch/x86/include/asm/irqflags.h | 8
arch/x86/include/asm/paravirt.h | 9 -
arch/x86/include/asm/signal.h | 1
arch/x86/include/asm/thread_info.h | 9 -
arch/x86/kernel/signal.c | 2
arch/x86/kernel/traps.c | 33 ++--
arch/x86/kvm/x86.c | 17 --
arch/x86/mm/fault.c | 7
b/arch/x86/include/asm/entry-common.h | 104 ++++++++++++
b/arch/x86/kvm/Kconfig | 1
b/include/linux/entry-common.h | 280 ++++++++++++++++++++++++++++++++++
b/kernel/entry/common.c | 184 ++++++++++++++++++++++
include/linux/kvm_host.h | 64 +++++++
kernel/Makefile | 1
virt/kvm/Kconfig | 3
23 files changed, 735 insertions(+), 374 deletions(-)
Powered by blists - more mailing lists