From patchwork Tue Dec 22 15:51:18 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin O'Connor X-Patchwork-Id: 560135 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 909EC140BBF for ; Wed, 23 Dec 2015 02:51:46 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=koconnor-net.20150623.gappssmtp.com header.i=@koconnor-net.20150623.gappssmtp.com header.b=Euz20Pxo; dkim-atps=neutral Received: from localhost ([::1]:51279 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBPE0-0006S1-Ie for incoming@patchwork.ozlabs.org; Tue, 22 Dec 2015 10:51:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBPDf-00065j-PM for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:51:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aBPDc-000770-JN for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:51:23 -0500 Received: from mail-qg0-x22e.google.com ([2607:f8b0:400d:c04::22e]:33745) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBPDc-00076u-Ci for qemu-devel@nongnu.org; Tue, 22 Dec 2015 10:51:20 -0500 Received: by mail-qg0-x22e.google.com with SMTP id k90so134129063qge.0 for ; Tue, 22 Dec 2015 07:51:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=koconnor-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=AowWGy6FZNPLwH6L8Ssirnmv5S6vteO1fC9VMwj4dGU=; b=Euz20PxoHVYZrn+1T8gDXJPRDNKjTh8NRsGuv/3Djycq9uv5R17oQUFL8ptlwmmXJD hqcO3OSKw4ZYkArOTWji2KcC19OAcjH6fIM46JBSx50J/Bqx94wIkwinlDeqXHYiyXQs tMtOH/6D7PPjfSthoOl7oPqw5RnbMNHFbLg3dgqjhshtOmZBJSXdCxcGW0ShCML+aJLM eDjX1iWrNNUPxgzDgDf7zLagUYZONdRUTXP/akd8UmrRGqpFnZWdExTs75jjOPGTlUK4 yrdrUtMhSk/m66f6j7eZ3FICyeWj3mRDCKsY0hh+O2RcE55Ag93sUe9cCCBdxhmbQecd MC+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=AowWGy6FZNPLwH6L8Ssirnmv5S6vteO1fC9VMwj4dGU=; b=UVwHjnHQW7gxfvqFWTem6u6w/ii9JUQteCDwaOcAYq61OTALuN/DaTnv4inhWuIvC7 47JPv5eli4hM8Z1c+4jNf4yFUjwIzz0hK15yXfSDcZ7PjyH+uVmd3Te+ji/zzSpiBy/C QGxSo4S8kio3of5KLGOmk5L+nnl9uLRxxsFTWyWQFPsPKktmFSkxrmPYU64bKMsdIoLJ 6/w4ealGIH9859vYf2/X56EHM3iKPXxAFvOCIpt5evkT2bhlOn43SO6lvbTlcIe8hA8e NIC5gjn91i0PlKBYGPaxf81oqBE1tV/Ba84IACeGaJlZNqMTHSSBEjwu8Y1gNY8J+/Hh 5CFQ== X-Gm-Message-State: ALoCoQnb3vPlXUNJGlZvAESHNGuZIh4e54RAkdaU1zc0nc+4OIJit9d39fw6yqALeLUBbwax5MXWVNX4+T7JORqe4/3uqp54HQ== X-Received: by 10.140.22.212 with SMTP id 78mr33148595qgn.17.1450799479899; Tue, 22 Dec 2015 07:51:19 -0800 (PST) Received: from localhost (209-122-232-221.c3-0.avec-ubr1.nyr-avec.ny.cable.rcn.com. [209.122.232.221]) by smtp.gmail.com with ESMTPSA id 17sm16141624qhk.42.2015.12.22.07.51.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Dec 2015 07:51:19 -0800 (PST) Date: Tue, 22 Dec 2015 10:51:18 -0500 From: Kevin O'Connor To: "Gonglei (Arei)" Message-ID: <20151222155118.GC18343@morn.lan> References: <20151119134039.GA27717@morn.lan> <33183CC9F5247A488A2544077AF19020B02B72BA@SZXEMA503-MBS.china.huawei.com> <20151218231326.GA4138@morn.lan> <33183CC9F5247A488A2544077AF19020B02B7A73@SZXEMA503-MBS.china.huawei.com> <20151219151159.GA22542@morn.lan> <33183CC9F5247A488A2544077AF19020B02B7BC2@SZXEMA503-MBS.china.huawei.com> <20151220143320.GA23942@morn.lan> <33183CC9F5247A488A2544077AF19020B02B7D39@SZXEMA503-MBS.china.huawei.com> <20151221184714.GB27329@morn.lan> <33183CC9F5247A488A2544077AF19020B02B81F5@SZXEMA503-MBS.china.huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <33183CC9F5247A488A2544077AF19020B02B81F5@SZXEMA503-MBS.china.huawei.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400d:c04::22e Cc: "Huangweidong \(C\)" , "kvm@vger.kernel.org" , Radim Krcmar , "seabios@seabios.org" , "Xulei \(Stone\)" , qemu-devel , Paolo Bonzini Subject: Re: [Qemu-devel] [PATCH] SeaBios: Fix reset procedure reentrancy problem on qemu-kvm platform X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org On Tue, Dec 22, 2015 at 02:14:12AM +0000, Gonglei (Arei) wrote: > > From: Kevin O'Connor [mailto:kevin@koconnor.net] > > Sent: Tuesday, December 22, 2015 2:47 AM > > To: Gonglei (Arei) > > Cc: Xulei (Stone); Paolo Bonzini; qemu-devel; seabios@seabios.org; > > Huangweidong (C); kvm@vger.kernel.org; Radim Krcmar > > Subject: Re: [Qemu-devel] [PATCH] SeaBios: Fix reset procedure reentrancy > > problem on qemu-kvm platform > > > > On Mon, Dec 21, 2015 at 09:41:32AM +0000, Gonglei (Arei) wrote: > > > When the gurb of OS is booting, then the softirq and C function > > > send_disk_op() may use extra stack of SeaBIOS. If we inject a NMI, > > > romlayout.S: irqentry_extrastack is invoked, and the extra stack will > > > be used again. And the stack of first calling will be broken, so that the > > SeaBIOS stuck. > > > > > > You can easily reproduce the problem. > > > > > > 1. start on guest > > > 2. reset the guest > > > 3. inject a NMI when the guest show the grub surface 4. then the guest > > > stuck > > > > Does the SeaBIOS patch below help? > > Sorry, it doesn't work. What's worse is we cannot stop SeaBIOS stuck by > Setting "CONFIG_ENTRY_EXTRASTACK=n" after applying this patch. Oops, can you try with the patch below instead? > > I'm not familiar with how to "inject a > > NMI" - can you describe the process in more detail? > > > > 1. Qemu Command line: > > #: /home/qemu/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -m 4096 -smp 8 -name suse -vnc 0.0.0.0:10 \ > -device virtio-scsi-pci,id=scsi0 -drive file=/home/suse11_sp3_32_2,if=none,id=drive-scsi0-0-0-0,format=raw,cache=none,aio=native \ > -device scsi-hd,bus=scsi0.0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \ > -chardev file,id=seabios,path=/home/seabios.log -device isa-debugcon,iobase=0x402,chardev=seabios \ > -monitor stdio -qmp unix:/tmp/qmp,server,nowait > > 2. Inject a NMI by QMP: > > #: /home/qemu/scripts/qmp # ./qmp-shell /tmp/qmp > Welcome to the QMP low-level shell! > Connected to QEMU 2.5.0 > > (QEMU) system_reset > {"return": {}} > (QEMU) inject-nmi > {"return": {}} > (QEMU) inject-nmi > {"return": {}} > I tried a few simple tests but was not able to reproduce. -Kevin --- a/src/romlayout.S +++ b/src/romlayout.S @@ -548,7 +548,10 @@ entry_post: ENTRY_INTO32 _cfunc32flat_handle_post // Normal entry point ORG 0xe2c3 - IRQ_ENTRY 02 + .global entry_02 +entry_02: + ENTRY handle_02 // NMI handler does not switch onto extra stack + iretw ORG 0xe3fe .global entry_13_official