From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MjecJ-0002Un-EF for qemu-devel@nongnu.org; Fri, 04 Sep 2009 15:38:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MjecE-0002Rk-5n for qemu-devel@nongnu.org; Fri, 04 Sep 2009 15:38:38 -0400 Received: from [199.232.76.173] (port=43398 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MjecD-0002Rf-RR for qemu-devel@nongnu.org; Fri, 04 Sep 2009 15:38:33 -0400 Received: from mail-fx0-f211.google.com ([209.85.220.211]:58662) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MjecC-0000QL-Qh for qemu-devel@nongnu.org; Fri, 04 Sep 2009 15:38:33 -0400 Received: by fxm7 with SMTP id 7so857223fxm.34 for ; Fri, 04 Sep 2009 12:38:30 -0700 (PDT) MIME-Version: 1.0 Sender: dustin.kirkland@gmail.com In-Reply-To: <20090904163611.GC5132@amt.cnet> References: <1252008114.3084.136.camel@blaa> <5d6222a80909031518h2bf804fbk1f7a52424d3e8649@mail.gmail.com> <1252048961.3144.8.camel@blaa> <1252080398.4625.47.camel@x200> <20090904163611.GC5132@amt.cnet> Date: Fri, 4 Sep 2009 14:38:30 -0500 Message-ID: From: Dustin Kirkland Content-Type: multipart/mixed; boundary=00151747859c181af60472c5a589 Subject: [Qemu-devel] Re: [PATCH] qemu-kvm: fix segfault when running kvm without /dev/kvm, falling back to non-accelerated mode List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcelo Tosatti Cc: Mark McLoughlin , qemu-devel@nongnu.org, kvm@vger.kernel.org, Glauber Costa --00151747859c181af60472c5a589 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Sep 4, 2009 at 11:36 AM, Marcelo Tosatti wrote= : > On Fri, Sep 04, 2009 at 11:06:38AM -0500, Dustin Kirkland wrote: >> On Fri, 2009-09-04 at 08:22 +0100, Mark McLoughlin wrote: >> > On Thu, 2009-09-03 at 19:18 -0300, Glauber Costa wrote: >> > > On Thu, Sep 3, 2009 at 6:48 PM, Dustin Kirkland wrote: >> > > > On Thu, Sep 3, 2009 at 3:01 PM, Mark McLoughlin= wrote: >> > > >> On Thu, 2009-09-03 at 12:31 -0500, Dustin Kirkland wrote: >> > > >>> qemu-kvm: fix segfault when running kvm without /dev/kvm, fallin= g back >> > > >>> to non-accelerated mode >> > > >>> >> > > >>> We're seeing segfaults on systems without access to /dev/kvm. = =A0It >> > > >>> looks like the global kvm_allowed is being set just a little too= late >> > > >>> in vl.c. =A0This patch moves the kvm initialization a bit higher= in the >> > > >>> vl.c main, just after options processing, and solves the segfaul= ts. >> > > >>> We're carrying this patch in Ubuntu 9.10 Alpha. =A0Please apply >> > > >>> upstream, or advise if and why this might not be the optimal sol= ution. >> > > >> >> > > >> Ah discussion about an alternative fix for this fizzled out recen= tly: >> > > >> >> > > >> =A0http://www.mail-archive.com/kvm@vger.kernel.org/msg19890.html >> > > > >> > > > Ah, thanks Mark. =A0In that thread, I found Daniel's suggestion th= e most >> > > > reasonable, and user-friendly: >> > > > >> > > > On Mon, Jul 27, 2009 at 1:44 PM, Daniel P. Berrange wrote: >> > > >> Well, we could go for logic like: >> > > >> >> > > >> =A0* No arg given =A0 =A0 =A0 =A0 =A0=3D> try kvm, try kqemu, try= tcg >> > > >> =A0* --accelmode arg given =3D> try $arg, and fail if unavailable >> > > >> >> > > >> then libvirt would simply always supply --accelmode for all VMs, >> > > >> while people running qemu manually would get best available >> > > I sent some patches to do that, but they were incomplete, and I was >> > > preempted by something else. >> > > If you want, you can wait for my cycles to come back, or pick from w= here I left >> >> Thanks for the pointer, Glauber. =A0My cycles a bit constrained too, but >> I'll have a look when I get a chance. >> >> > In the meantime, can we commit to stable-0.11 either Dustin's fix or >> > this: >> > >> > =A0 http://git.et.redhat.com/?p=3Dqemu-fedora.git;a=3Dcommitdiff;h=3Da= a1620047b >> >> +1. =A0We're looking for something agreeable in stable-0.11, that solves >> the segfault and proceeds without VT acceleration. > > Dustin, > > Can you please resend the patch with the suggestion i made earlier, for > stable-0.11? Sure, Marcelo. It's attached. I tested it, and it still does avoid the segfault. Luiz, could you re-test this patch on your side too? :-Dustin --00151747859c181af60472c5a589 Content-Type: text/x-diff; charset=US-ASCII; name="fix-no-dev-kvm-segfault.patch" Content-Disposition: attachment; filename="fix-no-dev-kvm-segfault.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fz7bvimv0 cWVtdS1rdm06IGZpeCBzZWdmYXVsdCB3aGVuIHJ1bm5pbmcga3ZtIHdpdGhvdXQgL2Rldi9rdm0K CnFlbXUta3ZtIHNlZ2ZhdWx0cyBvbiBzeXN0ZW1zIHdpdGhvdXQgYWNjZXNzIHRvIC9kZXYva3Zt LgpUaGUgZ2xvYmFsIGt2bV9hbGxvd2VkIGlzIGJlaW5nIHNldCB0b28gbGF0ZSBpbiB2bC5jLgoK VGhpcyBwYXRjaCBtb3ZlcyB0aGUga3ZtIGluaXRpYWxpemF0aW9uIGEgYml0IGhpZ2hlciBpbiB0 aGUKdmwuYyBtYWluLCBqdXN0IGFmdGVyIHRoZSBkYWVtb25pemUgZm9yay4KClRoaXMgZml4IGlz IGludGVuZGVkIHRvIGJlIGEgc2hvcnQgdGVybSBzb2x1dGlvbiwgc29sdmluZyB0aGUKc2VnZmF1 bHRzLgoKSW4gdGhlIGxvbmdlciB0ZXJtLCB0aGUgc3VnZ2VzdGVkIGFwcHJvYWNoIHJlcXVpcmVz IGEgYml0IG1vcmUKZGV2ZWxvcG1lbnQgYW5kIHRlc3Rpbmc6CiAqIElmIG5vIGFyZyBnaXZlbiAg ICAgICAgICA9PiB0cnkga3ZtLCB0cnkga3FlbXUsIHRyeSB0Y2cKICogSWYgLS1hY2NlbG1vZGUg YXJnIGdpdmVuID0+IHRyeSAkYXJnLCBhbmQgZmFpbCBpZiB1bmF2YWlsYWJsZQoKU2lnbmVkLW9m Zi1ieTogRHVzdGluIEtpcmtsYW5kIDxraXJrbGFuZEBjYW5vbmljYWwuY29tPgoKZGlmZiAtLWdp dCBhL3ZsLmMgYi92bC5jCmluZGV4IGRiNzU0NzAuLjI2YmNlZDggMTAwNjQ0Ci0tLSBhL3ZsLmMK KysrIGIvdmwuYwpAQCAtNTgzMSw2ICs1ODMxLDIwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndiwgY2hhciAqKmVudnApCiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoa3ZtX2VuYWJs ZWQoKSkgeworICAgICAgICBpbnQgcmV0OworCisgICAgICAgIHJldCA9IGt2bV9pbml0KHNtcF9j cHVzKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyNpZiBkZWZpbmVkKEtWTV9VUFNUUkVBTSkg fHwgZGVmaW5lZChOT19DUFVfRU1VTEFUSU9OKQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBLVk1cbiIpOworICAgICAgICAgICAgZXhpdCgxKTsKKyNl bmRpZgorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgaW5pdGlhbGl6ZSBL Vk0sIHdpbGwgZGlzYWJsZSBLVk0gc3VwcG9ydFxuIik7CisgICAgICAgICAgICBrdm1fYWxsb3dl ZCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKICNpZmRlZiBDT05GSUdfS1FFTVUKICAgICBpZiAo c21wX2NwdXMgPiAxKQogICAgICAgICBrcWVtdV9hbGxvd2VkID0gMDsKQEAgLTYwMDIsMjAgKzYw MTYsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnZwKQogICAg ICAgICB9CiAgICAgfQogCi0gICAgaWYgKGt2bV9lbmFibGVkKCkpIHsKLSAgICAgICAgaW50IHJl dDsKLQotICAgICAgICByZXQgPSBrdm1faW5pdChzbXBfY3B1cyk7Ci0gICAgICAgIGlmIChyZXQg PCAwKSB7Ci0jaWYgZGVmaW5lZChLVk1fVVBTVFJFQU0pIHx8IGRlZmluZWQoTk9fQ1BVX0VNVUxB VElPTikKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGluaXRpYWxpemUg S1ZNXG4iKTsKLSAgICAgICAgICAgIGV4aXQoMSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCAiQ291bGQgbm90IGluaXRpYWxpemUgS1ZNLCB3aWxsIGRpc2FibGUgS1ZNIHN1 cHBvcnRcbiIpOwotCSAgICAga3ZtX2FsbG93ZWQgPSAwOwotICAgICAgICB9Ci0gICAgfQotCiAg ICAgaWYgKG1vbml0b3JfZGV2aWNlKSB7CiAgICAgICAgIG1vbml0b3JfaGQgPSBxZW11X2Nocl9v cGVuKCJtb25pdG9yIiwgbW9uaXRvcl9kZXZpY2UsIE5VTEwpOwogICAgICAgICBpZiAoIW1vbml0 b3JfaGQpIHsK --00151747859c181af60472c5a589--