From: Kevin O'Connor <kevin@koconnor.net> To: "Gonglei (Arei)" <arei.gonglei@huawei.com> Cc: "Xulei (Stone)" <stone.xulei@huawei.com>, Paolo Bonzini <pbonzini@redhat.com>, qemu-devel <qemu-devel@nongnu.org>, "seabios@seabios.org" <seabios@seabios.org>, "Huangweidong (C)" <weidong.huang@huawei.com>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, Radim Krcmar <rkrcmar@redhat.com> Subject: Re: [Qemu-devel] [PATCH] SeaBios: Fix reset procedure reentrancy problem on qemu-kvm platform Date: Sun, 20 Dec 2015 09:33:20 -0500 [thread overview] Message-ID: <20151220143320.GA23942@morn.lan> (raw) In-Reply-To: <33183CC9F5247A488A2544077AF19020B02B7BC2@SZXEMA503-MBS.china.huawei.com> On Sun, Dec 20, 2015 at 09:49:54AM +0000, Gonglei (Arei) wrote: > > From: Kevin O'Connor [mailto:kevin@koconnor.net] > > Sent: Saturday, December 19, 2015 11:12 PM > > On Sat, Dec 19, 2015 at 12:03:15PM +0000, Gonglei (Arei) wrote: > > > Maybe the root cause is not NMI but INTR, so yield() can open hardware > > interrupt, > > > And then execute interrupt handler, but the interrupt handler make the > > SeaBIOS > > > stack broken, so that the BSP can't execute the instruction and occur > > exception, > > > VM_EXIT to Kmod, which is an infinite loop. But I don't have any proofs except > > > the surface phenomenon. > > > > I can't see any reason why allowing interrupts at this location would > > be a problem. > > > Does it have any relationship with *extra stack* of SeaBIOS? None that I can see. Also, the kvm trace seems to show the code trying to execute at rip=0x03 - that will crash long before the extra stack is used. > > > Kevin, can we drop yield() in smp_setup() ? > > > > It's possible to eliminate this instance of yield, but I think it > > would just push the crash to the next time interrupts are enabled. > > > Perhaps. I'm not sure. > > > > Is it really useful and allowable for SeaBIOS? Maybe for other components? > > > I'm not sure. Because we found that when SeaBIOS is booting, if we inject a > > > NMI by QMP, the guest will *stuck*. And the kvm tracing log is the same with > > > the current problem. > > > > If you apply the patches you had to prevent that NMI crash problem, > > does it also prevent the above crash? > > > Yes, but we cannot prevent the NMI injection (though I'll submit some patches to > forbid users' NMI injection after NMI_EN disabled by RTC bit7 of port 0x70). > -Kevin
WARNING: multiple messages have this Message-ID (diff)
From: Kevin O'Connor <kevin@koconnor.net> To: "Gonglei (Arei)" <arei.gonglei@huawei.com> Cc: "Huangweidong (C)" <weidong.huang@huawei.com>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, Radim Krcmar <rkrcmar@redhat.com>, "seabios@seabios.org" <seabios@seabios.org>, "Xulei (Stone)" <stone.xulei@huawei.com>, qemu-devel <qemu-devel@nongnu.org>, Paolo Bonzini <pbonzini@redhat.com> Subject: Re: [Qemu-devel] [PATCH] SeaBios: Fix reset procedure reentrancy problem on qemu-kvm platform Date: Sun, 20 Dec 2015 09:33:20 -0500 [thread overview] Message-ID: <20151220143320.GA23942@morn.lan> (raw) In-Reply-To: <33183CC9F5247A488A2544077AF19020B02B7BC2@SZXEMA503-MBS.china.huawei.com> On Sun, Dec 20, 2015 at 09:49:54AM +0000, Gonglei (Arei) wrote: > > From: Kevin O'Connor [mailto:kevin@koconnor.net] > > Sent: Saturday, December 19, 2015 11:12 PM > > On Sat, Dec 19, 2015 at 12:03:15PM +0000, Gonglei (Arei) wrote: > > > Maybe the root cause is not NMI but INTR, so yield() can open hardware > > interrupt, > > > And then execute interrupt handler, but the interrupt handler make the > > SeaBIOS > > > stack broken, so that the BSP can't execute the instruction and occur > > exception, > > > VM_EXIT to Kmod, which is an infinite loop. But I don't have any proofs except > > > the surface phenomenon. > > > > I can't see any reason why allowing interrupts at this location would > > be a problem. > > > Does it have any relationship with *extra stack* of SeaBIOS? None that I can see. Also, the kvm trace seems to show the code trying to execute at rip=0x03 - that will crash long before the extra stack is used. > > > Kevin, can we drop yield() in smp_setup() ? > > > > It's possible to eliminate this instance of yield, but I think it > > would just push the crash to the next time interrupts are enabled. > > > Perhaps. I'm not sure. > > > > Is it really useful and allowable for SeaBIOS? Maybe for other components? > > > I'm not sure. Because we found that when SeaBIOS is booting, if we inject a > > > NMI by QMP, the guest will *stuck*. And the kvm tracing log is the same with > > > the current problem. > > > > If you apply the patches you had to prevent that NMI crash problem, > > does it also prevent the above crash? > > > Yes, but we cannot prevent the NMI injection (though I'll submit some patches to > forbid users' NMI injection after NMI_EN disabled by RTC bit7 of port 0x70). > -Kevin
next prev parent reply other threads:[~2015-12-20 14:33 UTC|newest] Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-11-03 6:58 [Qemu-devel] [PATCH] SeaBios: Fix reset procedure reentrancy problem on qemu-kvm platform Xulei (Stone, Euler) 2015-11-04 0:48 ` Gonglei 2015-11-04 17:42 ` Kevin O'Connor 2015-11-06 9:12 ` Xulei (Stone) 2015-11-09 13:32 ` Kevin O'Connor 2015-11-09 20:06 ` Kevin O'Connor 2015-11-09 20:27 ` Kevin O'Connor 2015-11-19 1:04 ` Xulei (Stone) 2015-11-19 12:42 ` Xulei (Stone) 2015-11-19 13:40 ` Kevin O'Connor 2015-11-20 2:05 ` Xulei (Stone) [not found] ` <33183CC9F5247A488A2544077AF19020B02B72BA@SZXEMA503-MBS.china.huawei.com> 2015-12-18 23:13 ` Kevin O'Connor 2015-12-18 23:13 ` Kevin O'Connor 2015-12-19 6:28 ` Gonglei (Arei) 2015-12-19 6:28 ` [Qemu-devel] " Gonglei (Arei) 2015-12-19 12:03 ` Gonglei (Arei) 2015-12-19 12:03 ` [Qemu-devel] " Gonglei (Arei) 2015-12-19 15:11 ` Kevin O'Connor 2015-12-19 15:11 ` Kevin O'Connor 2015-12-20 9:49 ` Gonglei (Arei) 2015-12-20 9:49 ` [Qemu-devel] " Gonglei (Arei) 2015-12-20 14:33 ` Kevin O'Connor [this message] 2015-12-20 14:33 ` Kevin O'Connor 2015-12-21 9:41 ` Gonglei (Arei) 2015-12-21 9:41 ` [Qemu-devel] " Gonglei (Arei) 2015-12-21 18:47 ` Kevin O'Connor 2015-12-21 18:47 ` [Qemu-devel] " Kevin O'Connor 2015-12-22 2:14 ` Gonglei (Arei) 2015-12-22 2:14 ` Gonglei (Arei) 2015-12-22 3:15 ` Xulei (Stone) 2015-12-22 3:15 ` [Qemu-devel] " Xulei (Stone) 2015-12-22 15:38 ` Kevin O'Connor 2015-12-22 15:38 ` [Qemu-devel] " Kevin O'Connor 2015-12-22 15:51 ` Kevin O'Connor 2015-12-22 15:51 ` Kevin O'Connor 2015-12-23 6:40 ` Gonglei (Arei) 2015-12-23 6:40 ` [Qemu-devel] " Gonglei (Arei) 2015-12-23 18:06 ` Kevin O'Connor 2015-12-23 18:06 ` Kevin O'Connor 2015-12-19 1:08 ` Gonglei (Arei) 2015-12-19 1:08 ` [Qemu-devel] " Gonglei (Arei) -- strict thread matches above, loose matches on Subject: below -- 2015-11-04 0:19 Xulei (Stone, Euler) 2015-11-03 6:29 Xulei (Stone, Euler)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20151220143320.GA23942@morn.lan \ --to=kevin@koconnor.net \ --cc=arei.gonglei@huawei.com \ --cc=kvm@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=rkrcmar@redhat.com \ --cc=seabios@seabios.org \ --cc=stone.xulei@huawei.com \ --cc=weidong.huang@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.