From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NkhFh-0008DU-Uq for qemu-devel@nongnu.org; Thu, 25 Feb 2010 12:11:54 -0500 Received: from [199.232.76.173] (port=40439 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NkhFg-0008Cq-Ry for qemu-devel@nongnu.org; Thu, 25 Feb 2010 12:11:52 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NkhFg-0000mq-4k for qemu-devel@nongnu.org; Thu, 25 Feb 2010 12:11:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:19656) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NkhFf-0000mW-Bd for qemu-devel@nongnu.org; Thu, 25 Feb 2010 12:11:51 -0500 Message-ID: <4B86AF40.5090401@redhat.com> Date: Thu, 25 Feb 2010 19:11:28 +0200 From: Avi Kivity MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [RFC][PATCH] performance improvement for windows guests, running on top of virtio block device References: <1263195647.2005.44.camel@localhost> <201002240258.19045.paul@codesourcery.com> <4B853ED3.3060707@codemonkey.ws> <201002251506.05318.paul@codesourcery.com> In-Reply-To: <201002251506.05318.paul@codesourcery.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: Dor Laor , Christoph Hellwig , qemu-devel@nongnu.org, Vadim Rozenfeld On 02/25/2010 05:06 PM, Paul Brook wrote: >>> Idle bottom halves (i.e. qemu_bh_schedule_idle) are just bugs waiting to >>> happen, and should never be used for anything. >>> >> Idle bottom halves make considerable more sense than the normal bottom >> halves. >> >> The fact that rescheduling a bottom half within a bottom half results in >> an infinite loop is absurd. It is equally absurd that bottoms halves >> alter the select timeout. The result of that is that if a bottom half >> schedules another bottom half, and that bottom half schedules the >> previous, you get a tight infinite loop. Since bottom halves are used >> often times deep within functions, the result is very subtle infinite >> loops (that we've absolutely encountered in the past). >> > I disagree. The "select timeout" is a completely irrelevant implementation > detail. Anything that relies on it is just plain wrong. If you require a delay > then you should be using a timer. If scheduling a BH directly then you should > expect it to be processed without delay. > I agree. Further, once we fine-grain device threading, the iothread essentially disappears and is replaced by device-specific threads. There's no "idle" anymore. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic.