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 20:19:58 +0200 Message-ID: <4953CECE.5050900@redhat.com> References: <49539FD0.7070103@redhat.com> <20081225151757.GA25117@elte.hu> <4953AAE5.4000708@redhat.com> <20081225162107.GB14486@elte.hu> <20081225164232.GA25195@elte.hu> <4953C57F.70502@redhat.com> <20081225175821.GA23390@elte.hu> <4953CD1A.5090906@redhat.com> 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]:55854 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751815AbYLYSUC (ORCPT ); Thu, 25 Dec 2008 13:20:02 -0500 In-Reply-To: <4953CD1A.5090906@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Avi Kivity wrote: > > I'm suggesting > > check irqcount > if (wasnt_in_irq) > rsp = irqstack > ++irqcount > > If the NMI happens before the increment, we'll switch the stack > unconditionally, and if the NMI happens after the increment, then we > won't switch the stack, but we're guaranteed to be on the irqstack > anyway. The window size is negative :) > > Similarly, the exit path should be > > oldstack_reg = oldstack; > --irqcount; > rsp = oldstack_register; > > To guarantee that by the time we decrement irqcount, we don't need the > stack anymore. > On the other hand, checking %rsp allows us to drop irqcount completely, so maybe it's better. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.