From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47155) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5Tm2-0001NE-LJ for qemu-devel@nongnu.org; Thu, 18 Jun 2015 02:58:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z5Tlx-00065A-TS for qemu-devel@nongnu.org; Thu, 18 Jun 2015 02:58:06 -0400 From: Markus Armbruster References: <55803637.3060607@kamp.de> <20150617083539.GA4202@noname.str.redhat.com> <55825F17.3060205@kamp.de> Date: Thu, 18 Jun 2015 08:57:49 +0200 In-Reply-To: <55825F17.3060205@kamp.de> (Peter Lieven's message of "Thu, 18 Jun 2015 08:03:03 +0200") Message-ID: <87r3p94i6q.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [Qemu-block] RFC cdrom in own thread? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Lieven Cc: Kevin Wolf , Stefan Hajnoczi , qemu-devel , qemu block Peter Lieven writes: > Am 17.06.2015 um 10:35 schrieb Kevin Wolf: >> Am 16.06.2015 um 17:34 hat Stefan Hajnoczi geschrieben: >>> On Tue, Jun 16, 2015 at 3:44 PM, Peter Lieven wrote: >>>> I wonder how difficult it would be to have the IDE CDROM run in its own >>>> thread? >>>> We usually have ISOs mounted on an NFS share as CDROM. Problem: If the NFS >>>> Share >>>> goes down, it takes down monitor, qmp, vnc etc. with it. >>>> >>>> Maybe its already possible to do this via cmdline args? >>>> >>>> Any ideas, comments? >>> If QEMU hangs in the read/write/flush/discard code path due to NFS >>> downtime it is a bug. >>> >>> QEMU is expected to hang in open/reopen because those are performed in >>> a blocking fashion. >>> >>> Which of these cases applies to what you are seeing? Maybe it can be fixed. >> Don't forget bdrv_drain_all(), which is called a lot by the monitor. So >> no matter what you do (and this includes moving to a thread as in a >> hypothetical "ATAPI dataplane"), you end up with a hang sooner or later. > > I will have a look where qemu hangs. The problem exists with an NFS share > mounted by the kernel and also with libnfs. So it might be a bdrv_drain_all. > I regularly query info block and info blockstats. Do these commands always > call bdrv_drain_all()?. As far as I can tell, they don't. In general, it's hard to see. Wish it wasn't.