From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941395AbcKOIqj convert rfc822-to-8bit (ORCPT ); Tue, 15 Nov 2016 03:46:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49550 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S941202AbcKOIqg (ORCPT ); Tue, 15 Nov 2016 03:46:36 -0500 Message-ID: <1479199588.32639.16.camel@redhat.com> Subject: Re: BUG: 'list_empty(&vgdev->free_vbufs)' is true! From: Gerd Hoffmann To: Jiri Slaby Cc: "Michael S. Tsirkin" , virtualization@lists.linux-foundation.org, Linux kernel mailing list , David Airlie , dri-devel@lists.freedesktop.org Date: Tue, 15 Nov 2016 09:46:28 +0100 In-Reply-To: References: <20161108223153-mutt-send-email-mst@kernel.org> <1478678517.2078.12.camel@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Mime-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 15 Nov 2016 08:46:35 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fr, 2016-11-11 at 17:28 +0100, Jiri Slaby wrote: > On 11/09/2016, 09:01 AM, Gerd Hoffmann wrote: > > On Di, 2016-11-08 at 22:37 +0200, Michael S. Tsirkin wrote: > >> On Mon, Nov 07, 2016 at 09:43:24AM +0100, Jiri Slaby wrote: > >>> Hi, > >>> > >>> I can relatively easily reproduce this bug: > > > > How? > > Run dmesg -w in the qemu window (virtio_gpu) to see a lot of output. fbcon? Or xorg/wayland with terminal app? > Run pps [1] without exit(0); on e.g. serial console. > Wait a bit. The lot of output causes the BUG. > > [1] https://github.com/jirislaby/collected_sources/blob/master/pps.c > > >>> BUG: 'list_empty(&vgdev->free_vbufs)' is true! > > > >> The following might be helpful for debugging - if kernel still will > >> not stop panicing, we are looking at some kind > >> of memory corruption. > > > > Looking carefully through the code I think it isn't impossible to > > trigger this, but you need for that: > > > > (1) command queue full (quite possible), > > (2) cursor queue full too (unlikely), and > > (3) multiple threads trying to submit commands and waiting for free > > space in the command queue (possible with virgl enabled). > > I use -vga virtio with no -display option, so no virtgl, I suppose: > [drm] virgl 3d acceleration not available > > > Do things improve if you allocate some extra bufs? > > > > int virtio_gpu_alloc_vbufs(struct virtio_gpu_device *vgdev) > > { > > struct virtio_gpu_vbuffer *vbuf; > > - int i, size, count = 0; > > + int i, size, count = 16; > > This seems to help. > > thanks,