From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kirill A. Shutemov" Subject: Re: [PATCH] vgaarb: fix signal handling in vga_get() Date: Mon, 14 Dec 2015 14:13:59 +0200 Message-ID: <20151214121359.GC4201@node.shutemov.name> References: <1448849851-26061-1-git-send-email-kirill@shutemov.name> <20151214081956.GA29540@node.shutemov.name> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E23A6E437 for ; Mon, 14 Dec 2015 04:14:02 -0800 (PST) Received: by wmpp66 with SMTP id p66so11829123wmp.1 for ; Mon, 14 Dec 2015 04:14:01 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Herrmann Cc: kvm@vger.kernel.org, Daniel Vetter , linux-kernel , "dri-devel@lists.freedesktop.org" , Alex Williamson , vfio-users@redhat.com List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBEZWMgMTQsIDIwMTUgYXQgMTE6MjA6MDBBTSArMDEwMCwgRGF2aWQgSGVycm1hbm4g d3JvdGU6Cj4gSGkKPiAKPiBPbiBNb24sIERlYyAxNCwgMjAxNSBhdCA5OjE5IEFNLCBLaXJpbGwg QS4gU2h1dGVtb3YKPiA8a2lyaWxsQHNodXRlbW92Lm5hbWU+IHdyb3RlOgo+ID4gT24gVGh1LCBE ZWMgMTAsIDIwMTUgYXQgMTE6Mjg6NThBTSArMDEwMCwgRGF2aWQgSGVycm1hbm4gd3JvdGU6Cj4g Pj4gSGkKPiA+Pgo+ID4+IE9uIE1vbiwgTm92IDMwLCAyMDE1IGF0IDM6MTcgQU0sIEtpcmlsbCBB LiBTaHV0ZW1vdgo+ID4+IDxraXJpbGxAc2h1dGVtb3YubmFtZT4gd3JvdGU6Cj4gPj4gPiBUaGVy ZSBhcmUgZmV3IGRlZmVjdHMgaW4gdmdhX2dldCgpIHJlbGF0ZWQgdG8gc2lnbmFsIGhhZG5pbmc6 Cj4gPj4gPgo+ID4+ID4gICAtIHdlIHNob3VsZG4ndCBjaGVjayBmb3IgcGVuZGluZyBzaWduYWxz IGZvciBUQVNLX1VOSU5URVJSVVBUSUJMRQo+ID4+ID4gICAgIGNhc2U7Cj4gPj4gPgo+ID4+ID4g ICAtIGlmIHdlIGZvdW5kIHBlbmRpbmcgc2lnbmFsIHdlIG11c3QgcmVtb3ZlIG91cnNlbGYgZnJv bSB3YWl0IHF1ZXVlCj4gPj4gPiAgICAgYW5kIGNoYW5nZSB0YXNrIHN0YXRlIGJhY2sgdG8gcnVu bmluZzsKPiA+PiA+Cj4gPj4gPiAgIC0gLUVSRVNUQVJUU1lTIGlzIG1vcmUgYXBwcm9wcmlhdGUs IEkgZ3Vlc3MuCj4gPj4gPgo+ID4+ID4gU2lnbmVkLW9mZi1ieTogS2lyaWxsIEEuIFNodXRlbW92 IDxraXJpbGxAc2h1dGVtb3YubmFtZT4KPiA+PiA+IC0tLQo+ID4+ID4KPiA+PiA+IEFsZXgsIEkg dHJ5IHRvIGdldCBLVk0gd2l0aCBWR0EgcGFzc3Rocm91Z2ggd29ya2luZyBwcm9wZXJseS4gSSBo YXZlIGk5MTUKPiA+PiA+IChIRCA0NjAwKSBvbiB0aGUgaG9zdCBhbmQgR1RYIDU4MCBmb3IgdGhl IGd1ZXN0LiBUaGUgZ3Vlc3QgR1BVIGlzIG5vdAo+ID4+ID4gY2FwYWJhbGUgb2YgRUZJLCBzbyBJ IGhhdmUgdG8gdXNlIHgtdmdhPW9uLiBJdCdzIGtpbmRhIHdvcmsgd2l0aCB5b3VyCj4gPj4gPiBw YXRjaCBmb3IgaTkxNS5lbmFibGVfaGRfdmdhYXJiPTEuIEJ1dCBndWVzdCByZWZ1c2UgdG8gaW5p dGlhbGl6ZSB0aGUgR1BVCj4gPj4gPiBhZnRlciBLVk0gd2FzIG5vdCBzaHV0IGRvd24gY29ycmVj dGx5LCByZXN1bHRpbmcgaW4gaG9zdCBjcmFzaCBsaWtlIHRoaXM6Cj4gPj4gPgo+ID4+ID4gQlVH OiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBhdCBmZmZmODgwODcwMTg3 ZWQ4Cj4gPj4gPiBJUDogWzxmZmZmODgwODcwMTg3ZWQ4Pl0gMHhmZmZmODgwODcwMTg3ZWQ4Cj4g Pj4gPiBQR0QgMjEyOTA2NyBQVUQgODAwMDAwMDg0MDAwMDFlMwo+ID4+ID4gT29wczogMDAxMSBb IzFdIFBSRUVNUFQgU01QCj4gPj4gPiBNb2R1bGVzIGxpbmtlZCBpbjogaXdsbXZtIGl3bHdpZmkK PiA+PiA+IENQVTogNiBQSUQ6IDM5ODMgQ29tbTogcWVtdS1zeXN0ZW0teDg2IE5vdCB0YWludGVk IDQuMy4wLWdlbnRvbyAjNgo+ID4+ID4gSGFyZHdhcmUgbmFtZTogR2lnYWJ5dGUgVGVjaG5vbG9n eSBDby4sIEx0ZC4gWjg3WC1VRDcgVEgvWjg3WC1VRDcgVEgtQ0YsIEJJT1MgRjVhIDA2LzEyLzIw MTQKPiA+PiA+IHRhc2s6IGZmZmY4ODA4N2E5MTAwMDAgdGk6IGZmZmY4ODA4NjMyYzAwMDAgdGFz ay50aTogZmZmZjg4MDg2MzJjMDAwMAo+ID4+ID4gUklQOiAwMDEwOls8ZmZmZjg4MDg3MDE4N2Vk OD5dICBbPGZmZmY4ODA4NzAxODdlZDg+XSAweGZmZmY4ODA4NzAxODdlZDgKPiA+PiA+IFJTUDog MDAxODpmZmZmODgwODYzMmMzZDA4ICBFRkxBR1M6IDAwMDEwMDA2Cj4gPj4gPiBSQVg6IGZmZmY4 ODA4NzAxODdkYjAgUkJYOiAwMDAwMDAwMDcwMTg3ZjU4IFJDWDogMDAwMDAwMDAwMDAwMDAwMAo+ ID4+ID4gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMyBSREk6IGZm ZmY4ODA4NzAxODdkYjAKPiA+PiA+IFJCUDogZmZmZjg4MDg2MzJjM2Q0OCBSMDg6IDAwMDAwMDAw MDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwCj4gPj4gPiBSMTA6IDAwMDAwMDAwMDAwMTAz YzAgUjExOiAwMDAwMDAwMDAwMDAwMjkzIFIxMjogZmZmZmZmZmY4MWVhMDNjOAo+ID4+ID4gUjEz OiBmZmZmZmZmZjgxMDRjN2NiIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAw MDAwMDMKPiA+PiA+IEZTOiAgMDAwMDdmOTg0ZjliMjcwMCgwMDAwKSBHUzpmZmZmODgwODlmMzgw MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiA+PiA+IENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiA+PiA+IENSMjogZmZmZjg4MDg3MDE4 N2VkOCBDUjM6IDAwMDAwMDA4NjQ1ZjgwMDAgQ1I0OiAwMDAwMDAwMDAwMTQyNmUwCj4gPj4gPiBT dGFjazoKPiA+PiA+ICBmZmZmZmZmZjgxMGNjODNkIDAwMDAwMDAwNjMyYzNkMjggMDAwMDAwMDAw MDAwMDAwMCBmZmZmZmZmZjgxZWEwM2MwCj4gPj4gPiAgMDAwMDAwMDAwMDAwMDA0NiAwMDAwMDAw MDAwMDAwMDAzIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAo+ID4+ID4gIGZmZmY4 ODA4NjMyYzNkODAgZmZmZmZmZmY4MTBjY2E0NCBmZmZmODgwODdhZjYzODAwIDAwMDAwMDAwMDAw MDAyODYKPiA+PiA+IENhbGwgVHJhY2U6Cj4gPj4gPiAgWzxmZmZmZmZmZjgxMGNjODNkPl0gPyBf X3dha2VfdXBfY29tbW9uKzB4NGQvMHg4MAo+ID4+ID4gIFs8ZmZmZmZmZmY4MTBjY2E0ND5dIF9f d2FrZV91cCsweDM0LzB4NTAKPiA+PiA+ICBbPGZmZmZmZmZmODE1ZDk5ZTM+XSBfX3ZnYV9wdXQr MHg3My8weGQwCj4gPj4gPiAgWzxmZmZmZmZmZjgxNWQ5ZGI0Pl0gdmdhX3B1dCsweDU0LzB4ODAK PiA+PiA+ICBbPGZmZmZmZmZmODE2OWQwNDI+XSB2ZmlvX3BjaV92Z2FfcncrMHgxZDIvMHgyMjAK PiA+PiA+ICBbPGZmZmZmZmZmODE2OWE3ZjM+XSB2ZmlvX3BjaV9ydysweDMzLzB4NjAKPiA+PiA+ ICBbPGZmZmZmZmZmODE2OWFiZjc+XSB2ZmlvX3BjaV93cml0ZSsweDE3LzB4MjAKPiA+PiA+ICBb PGZmZmZmZmZmODE2OTY2YTY+XSB2ZmlvX2RldmljZV9mb3BzX3dyaXRlKzB4MjYvMHgzMAo+ID4+ ID4gIFs8ZmZmZmZmZmY4MTFhNGIyMz5dIF9fdmZzX3dyaXRlKzB4MjMvMHhlMAo+ID4+ID4gIFs8 ZmZmZmZmZmY4MTFhNGE1Mz5dID8gX192ZnNfcmVhZCsweDIzLzB4ZDAKPiA+PiA+ICBbPGZmZmZm ZmZmODExYjZlMzU+XSA/IGRvX3Zmc19pb2N0bCsweDJiNS8weDQ5MAo+ID4+ID4gIFs8ZmZmZmZm ZmY4MTFhNTE5ND5dIHZmc193cml0ZSsweGE0LzB4MTkwCj4gPj4gPiAgWzxmZmZmZmZmZjgxMWE1 ZmE2Pl0gU3lTX3B3cml0ZTY0KzB4NjYvMHhhMAo+ID4+ID4gIFs8ZmZmZmZmZmY4MTlhMTdkNz5d IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxMi8weDZhCj4gPj4gPiBDb2RlOiA4OCBmZiBm ZiBlMCA3ZSAxOCA3MCAwOCA4OCBmZiBmZiAwMCA4YyA1NyA3NiAwOCA4OCBmZiBmZiAyMCA3ZiAx OCA3MCAwOCA4OCBmZiBmZiAwOCA3ZiAxOCA3MCAwOCA4OCBmZiBmZiA5NCA1MSAxYSA4MSBmZiBm ZiBmZiBmZiA8MDk+IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAxIDhjIDU3IDc2IDA4IDg4IGZmIGZm IDAwIDhjIDU3IDc2IDA4Cj4gPj4gPiBSSVAgIFs8ZmZmZjg4MDg3MDE4N2VkOD5dIDB4ZmZmZjg4 MDg3MDE4N2VkOAo+ID4+ID4gIFJTUCA8ZmZmZjg4MDg2MzJjM2QwOD4KPiA+PiA+IENSMjogZmZm Zjg4MDg3MDE4N2VkOAo+ID4+ID4KPiA+PiA+IFRoZSBwYXRjaCBmaXhlcyB0aGUgY3Jhc2gsIGJ1 dCBkb2Vzbid0IGhlbHAgd2l0aCBnZXR0aW5nIEdQVSBpbiBndWVzdAo+ID4+ID4gd29ya2luZyBh Z2Fpbi4KPiA+PiA+Cj4gPj4gPiBBbnkgaWRlYXM/Cj4gPj4gPgo+ID4+ID4gLS0tCj4gPj4gPiAg ZHJpdmVycy9ncHUvdmdhL3ZnYWFyYi5jIHwgNiArKysrLS0KPiA+PiA+ICAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4+ID4KPiA+PiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS92Z2EvdmdhYXJiLmMgYi9kcml2ZXJzL2dwdS92Z2EvdmdhYXJiLmMK PiA+PiA+IGluZGV4IDMxNjZlNGJjNGViNi4uOWFiY2FhNTNiZDI1IDEwMDY0NAo+ID4+ID4gLS0t IGEvZHJpdmVycy9ncHUvdmdhL3ZnYWFyYi5jCj4gPj4gPiArKysgYi9kcml2ZXJzL2dwdS92Z2Ev dmdhYXJiLmMKPiA+PiA+IEBAIC0zOTUsOCArMzk1LDEwIEBAIGludCB2Z2FfZ2V0KHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcnNyYywgaW50IGludGVycnVwdGlibGUpCj4gPj4g PiAgICAgICAgICAgICAgICAgc2V0X2N1cnJlbnRfc3RhdGUoaW50ZXJydXB0aWJsZSA/Cj4gPj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFTS19JTlRFUlJVUFRJQkxFIDoK PiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQVNLX1VOSU5URVJSVVBU SUJMRSk7Cj4gPj4gPiAtICAgICAgICAgICAgICAgaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQp KSB7Cj4gPj4gPiAtICAgICAgICAgICAgICAgICAgICAgICByYyA9IC1FSU5UUjsKPiA+PiA+ICsg ICAgICAgICAgICAgICBpZiAoaW50ZXJydXB0aWJsZSAmJiBzaWduYWxfcGVuZGluZyhjdXJyZW50 KSkgewo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgX19zZXRfY3VycmVudF9zdGF0ZShU QVNLX1JVTk5JTkcpOwo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX3dhaXRf cXVldWUoJnZnYV93YWl0X3F1ZXVlLCAmd2FpdCk7Cj4gPj4gPiArICAgICAgICAgICAgICAgICAg ICAgICByYyA9IC1FUkVTVEFSVFNZUzsKPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwo+ID4+Cj4gPj4gQWxsIDMgcG9pbnRzIGFyZSB2YWxpZCwgYW5kIHRoZSBwYXRjaCBsb29r cyBnb29kIHRvIG1lOgo+ID4+Cj4gPj4gUmV2aWV3ZWQtYnk6IERhdmlkIEhlcnJtYW5uIDxkaC5o ZXJybWFubkBnbWFpbC5jb20+Cj4gPj4KPiA+PiBIb3dldmVyLCB0aGVyZSBzZWVtcyB0byBiZSBh IHJhY2UgYmV0d2VlbiB2Z2FfbG9jayBhbmQgcHV0dGluZyB0aGUKPiA+PiB0aHJlYWQgYXNsZWVw Lgo+ID4KPiA+IEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHJhY2UgeW91J3JlIHRhbGtp bmcgYWJvdXQuCj4gPiBDb3VsZCB5b3UgZWxhYm9yYXRlPwo+IAo+IE5vcm1hbCB3YWtlLXVwIHJh Y2UuIFlvdSBoYXZlIHRvIGNoZWNrIHRoZSBjb25kaXRpb24geW91IHdhaXQgZm9yCj4gKmFmdGVy KiBsaW5raW5nIHlvdXIgd2FpdC1xdWV1ZSBhbmQgc2V0dGluZyB5b3VyIHRocmVhZC1zdGF0ZS4g SW4gdGhlCj4gY3VycmVudCBjb2RlLCBpZiB0aGUgd2FrZS11cCBoYXBwZW5zIGJldHdlZW4gc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgpCj4gYW5kIGFkZF93YWl0X3F1ZXVlKCksIHlvdSB3aWxsIG5l dmVyIGdldCB3b2tlbiB1cC4KCkFoLCBJIHNlZS4gWW91ciBwYXRjaCBsb29rcyBnb29kIHRvIG1l IHRvIGZpeCB0aGUgaXNzdWUuCgotLSAKIEtpcmlsbCBBLiBTaHV0ZW1vdgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752842AbbLNMOF (ORCPT ); Mon, 14 Dec 2015 07:14:05 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:33531 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751899AbbLNMOD (ORCPT ); Mon, 14 Dec 2015 07:14:03 -0500 Date: Mon, 14 Dec 2015 14:13:59 +0200 From: "Kirill A. Shutemov" To: David Herrmann Cc: Dave Airlie , Daniel Vetter , Alex Williamson , David Airlie , kvm@vger.kernel.org, "dri-devel@lists.freedesktop.org" , linux-kernel , vfio-users@redhat.com Subject: Re: [PATCH] vgaarb: fix signal handling in vga_get() Message-ID: <20151214121359.GC4201@node.shutemov.name> References: <1448849851-26061-1-git-send-email-kirill@shutemov.name> <20151214081956.GA29540@node.shutemov.name> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Dec 14, 2015 at 11:20:00AM +0100, David Herrmann wrote: > Hi > > On Mon, Dec 14, 2015 at 9:19 AM, Kirill A. Shutemov > wrote: > > On Thu, Dec 10, 2015 at 11:28:58AM +0100, David Herrmann wrote: > >> Hi > >> > >> On Mon, Nov 30, 2015 at 3:17 AM, Kirill A. Shutemov > >> wrote: > >> > There are few defects in vga_get() related to signal hadning: > >> > > >> > - we shouldn't check for pending signals for TASK_UNINTERRUPTIBLE > >> > case; > >> > > >> > - if we found pending signal we must remove ourself from wait queue > >> > and change task state back to running; > >> > > >> > - -ERESTARTSYS is more appropriate, I guess. > >> > > >> > Signed-off-by: Kirill A. Shutemov > >> > --- > >> > > >> > Alex, I try to get KVM with VGA passthrough working properly. I have i915 > >> > (HD 4600) on the host and GTX 580 for the guest. The guest GPU is not > >> > capabale of EFI, so I have to use x-vga=on. It's kinda work with your > >> > patch for i915.enable_hd_vgaarb=1. But guest refuse to initialize the GPU > >> > after KVM was not shut down correctly, resulting in host crash like this: > >> > > >> > BUG: unable to handle kernel paging request at ffff880870187ed8 > >> > IP: [] 0xffff880870187ed8 > >> > PGD 2129067 PUD 80000008400001e3 > >> > Oops: 0011 [#1] PREEMPT SMP > >> > Modules linked in: iwlmvm iwlwifi > >> > CPU: 6 PID: 3983 Comm: qemu-system-x86 Not tainted 4.3.0-gentoo #6 > >> > Hardware name: Gigabyte Technology Co., Ltd. Z87X-UD7 TH/Z87X-UD7 TH-CF, BIOS F5a 06/12/2014 > >> > task: ffff88087a910000 ti: ffff8808632c0000 task.ti: ffff8808632c0000 > >> > RIP: 0010:[] [] 0xffff880870187ed8 > >> > RSP: 0018:ffff8808632c3d08 EFLAGS: 00010006 > >> > RAX: ffff880870187db0 RBX: 0000000070187f58 RCX: 0000000000000000 > >> > RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffff880870187db0 > >> > RBP: ffff8808632c3d48 R08: 0000000000000000 R09: 0000000000000000 > >> > R10: 00000000000103c0 R11: 0000000000000293 R12: ffffffff81ea03c8 > >> > R13: ffffffff8104c7cb R14: 0000000000000000 R15: 0000000000000003 > >> > FS: 00007f984f9b2700(0000) GS:ffff88089f380000(0000) knlGS:0000000000000000 > >> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > >> > CR2: ffff880870187ed8 CR3: 00000008645f8000 CR4: 00000000001426e0 > >> > Stack: > >> > ffffffff810cc83d 00000000632c3d28 0000000000000000 ffffffff81ea03c0 > >> > 0000000000000046 0000000000000003 0000000000000000 0000000000000000 > >> > ffff8808632c3d80 ffffffff810cca44 ffff88087af63800 0000000000000286 > >> > Call Trace: > >> > [] ? __wake_up_common+0x4d/0x80 > >> > [] __wake_up+0x34/0x50 > >> > [] __vga_put+0x73/0xd0 > >> > [] vga_put+0x54/0x80 > >> > [] vfio_pci_vga_rw+0x1d2/0x220 > >> > [] vfio_pci_rw+0x33/0x60 > >> > [] vfio_pci_write+0x17/0x20 > >> > [] vfio_device_fops_write+0x26/0x30 > >> > [] __vfs_write+0x23/0xe0 > >> > [] ? __vfs_read+0x23/0xd0 > >> > [] ? do_vfs_ioctl+0x2b5/0x490 > >> > [] vfs_write+0xa4/0x190 > >> > [] SyS_pwrite64+0x66/0xa0 > >> > [] entry_SYSCALL_64_fastpath+0x12/0x6a > >> > Code: 88 ff ff e0 7e 18 70 08 88 ff ff 00 8c 57 76 08 88 ff ff 20 7f 18 70 08 88 ff ff 08 7f 18 70 08 88 ff ff 94 51 1a 81 ff ff ff ff <09> 00 00 00 00 00 00 00 01 8c 57 76 08 88 ff ff 00 8c 57 76 08 > >> > RIP [] 0xffff880870187ed8 > >> > RSP > >> > CR2: ffff880870187ed8 > >> > > >> > The patch fixes the crash, but doesn't help with getting GPU in guest > >> > working again. > >> > > >> > Any ideas? > >> > > >> > --- > >> > drivers/gpu/vga/vgaarb.c | 6 ++++-- > >> > 1 file changed, 4 insertions(+), 2 deletions(-) > >> > > >> > diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c > >> > index 3166e4bc4eb6..9abcaa53bd25 100644 > >> > --- a/drivers/gpu/vga/vgaarb.c > >> > +++ b/drivers/gpu/vga/vgaarb.c > >> > @@ -395,8 +395,10 @@ int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible) > >> > set_current_state(interruptible ? > >> > TASK_INTERRUPTIBLE : > >> > TASK_UNINTERRUPTIBLE); > >> > - if (signal_pending(current)) { > >> > - rc = -EINTR; > >> > + if (interruptible && signal_pending(current)) { > >> > + __set_current_state(TASK_RUNNING); > >> > + remove_wait_queue(&vga_wait_queue, &wait); > >> > + rc = -ERESTARTSYS; > >> > break; > >> > >> All 3 points are valid, and the patch looks good to me: > >> > >> Reviewed-by: David Herrmann > >> > >> However, there seems to be a race between vga_lock and putting the > >> thread asleep. > > > > I'm not sure I understand the race you're talking about. > > Could you elaborate? > > Normal wake-up race. You have to check the condition you wait for > *after* linking your wait-queue and setting your thread-state. In the > current code, if the wake-up happens between spin_unlock_irqrestore() > and add_wait_queue(), you will never get woken up. Ah, I see. Your patch looks good to me to fix the issue. -- Kirill A. Shutemov