From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: kvm vmload/vmsave vs tss.ist Date: Thu, 25 Dec 2008 19:40:15 +0200 Message-ID: <4953C57F.70502@redhat.com> References: <49539FD0.7070103@redhat.com> <20081225151757.GA25117@elte.hu> <4953AAE5.4000708@redhat.com> <20081225162107.GB14486@elte.hu> <20081225164232.GA25195@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "H. Peter Anvin" , Joerg Roedel , Benjamin Serebrin , linux-kernel , kvm@vger.kernel.org, Alexander Graf , Arjan van de Ven , Alexander van Heukelum To: Ingo Molnar Return-path: Received: from mx2.redhat.com ([66.187.237.31]:33577 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751815AbYLYRki (ORCPT ); Thu, 25 Dec 2008 12:40:38 -0500 In-Reply-To: <20081225164232.GA25195@elte.hu> Sender: kvm-owner@vger.kernel.org List-ID: Ingo Molnar wrote: > * Ingo Molnar wrote: > > >> i'd suggest to reuse the irq-stacks for this. Right now on 64-bit we've >> got the following stack layout: 8K process stacks, a 16K IRQ stack on >> each CPU, shared by all IRQs. Then we have the IST stacks with weird >> sizes: debug:8K, the others: 4K. >> > > this has to be done carefully though, as there's a subtle detail here: > right now the pda_irqcount and the pda_irqstackptr logic in entry_64.S is > not re-entry safe and relies on IRQs being off. > > If critical exceptions are moved to the IRQ stack then %rsp switching to > the IRQ stack has to be done atomically: instead of using the pda_irqcount > check the %rsp value itself should be checked against pda_irqstackptr - if > it's within that 16K range then we are already on the IRQ stack and do not > need to switch to it but can just use the current %rsp. > I think it's enough to switch %rsp before incrementing irqcount, no? -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.