lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 26 Dec 2008 15:35:17 +0100
From:	Ingo Molnar <mingo@...e.hu>
To:	Avi Kivity <avi@...hat.com>
Cc:	"H. Peter Anvin" <hpa@...or.com>, jeremy@...p.org,
	linux-kernel@...r.kernel.org, kvm@...r.kernel.org
Subject: Re: [PATCH 0/4] Remove interrupt stack table usage from x86_64
	kernel (v2)


* Avi Kivity <avi@...hat.com> wrote:

> 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(-)

applied to tip/x86/irq, thanks Avi!

They have the following commit IDs, and they are also in tip/master:

 921e521: x86: move NMI back to interrupt stack
 36ef6c9: x86: make interrupt stack switching atomic
 dd64891: x86: consolidate irq stack switching to a single macro
 955a368: x86: drop the use of the tss interrupt stack table (IST)

I also started testing them in tip-qa.

I added the standard Impact-lines that we do in the x86 tree. Note that 
this patch:

 dd64891: x86: consolidate irq stack switching to a single macro

isnt just consolidating IRQ entry assembly code, it is also changing the 
paranoidentry macros to do IRQ stack entries - and hence switches all but 
the NMI critical exception entries sequences over to the IRQ stack. Your 
later patch:

 921e521: x86: move NMI back to interrupt stack

covers the NMI entry code too.

Please double-check that we indeed now have all the critical exceptions on 
the IRQ stack (they are all rare so testing alone wont show this), and 
please also double-check that we dont have more exceptions and entry 
callpaths on the IRQ stack than what we wanted. For example on a 
preemptible kernel (or in any codepath that calls schedule()) it is fatal 
to be on the IRQ stack, so this has to be very accurately coded.

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ