Skip to content

Remove interrupt stack table usage from x86_64 kernel (v2)

Avi Kivity kvm lkml 1 version Applied

Status from this message: applied to tip/x86/irq, thanks Avi!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 3 repliesApplied

Changes from v1 from the cover letter

- rebase on tip/master
- as a step, consolidate stack switching into a single macro

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/4x86: drop the use of the tss interrupt stack table (IST)arch/x86/include/asm/desc.h arch/x86/include/asm/page_64.h arch/x86/include/asm/processor.h +4 more+9 -1900 replies
2/4x86: Consolidate irq stack switching to a single macroarch/x86/kernel/entry_64.S+21 -380 replies
3/4x86: Make interrupt stack switching atomicarch/x86/include/asm/pda.h arch/x86/kernel/asm-offsets_64.c arch/x86/kernel/cpu/common.c +1 more+6 -70 replies
4/4x86: Move NMI back to interrupt stackarch/x86/kernel/entry_64.S+1 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] Remove interrupt stack table usage from x86_64 kernel (v2)

The interrupt stack table (IST) mechanism is the only thing preventing kvm from deferring saving and reloading of some significant state. It is also somewhat complicated.

Remove it by switching the special exceptions to use the normal irqstack.

Changes from v1:
- rebase on tip/master
- as a step, consolidate stack switching into a single macro

Jeremy, Xen is also affected; please review.

Avi Kivity (4):
x86: drop the use of the tss interrupt stack table (IST)
x86: Consolidate irq stack switching to a single macro
x86: Make interrupt stack switching atomic
x86: Move NMI back to interrupt stack

 arch/x86/include/asm/desc.h      |   12 -----
 arch/x86/include/asm/page_64.h   |    7 ---
 arch/x86/include/asm/pda.h       |    2 +-
 arch/x86/include/asm/processor.h |   11 ----
 arch/x86/kernel/asm-offsets_64.c |    1 -
 arch/x86/kernel/cpu/common.c     |   35 --------------
 arch/x86/kernel/dumpstack_64.c   |   96 --------------------------------------
 arch/x86/kernel/entry_64.S       |   89 ++++++++++-------------------------
 arch/x86/kernel/traps.c          |   12 ++--
 9 files changed, 33 insertions(+), 232 deletions(-)