From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N6MSP-0004vA-1i for qemu-devel@nongnu.org; Fri, 06 Nov 2009 05:54:17 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N6MSJ-0004rv-TE for qemu-devel@nongnu.org; Fri, 06 Nov 2009 05:54:16 -0500 Received: from [199.232.76.173] (port=52920 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N6MSJ-0004rg-Iy for qemu-devel@nongnu.org; Fri, 06 Nov 2009 05:54:11 -0500 Received: from mail2.shareable.org ([80.68.89.115]:59996) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1N6MSJ-0004gT-7P for qemu-devel@nongnu.org; Fri, 06 Nov 2009 05:54:11 -0500 Date: Fri, 6 Nov 2009 10:54:07 +0000 From: Jamie Lokier Subject: Re: [Qemu-devel] [PATCH 0/4] net-bridge: rootless bridge support for qemu Message-ID: <20091106105407.GA17195@shareable.org> References: <1257294485-27015-1-git-send-email-aliguori@us.ibm.com> <20091105163702.GC21630@shareable.org> <4AF30129.7080203@us.ibm.com> <200911051820.48878.arnd@arndb.de> <4AF3154F.8090901@redhat.com> <4AF32E78.1040103@us.ibm.com> <4AF3CED1.7080207@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4AF3CED1.7080207@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Mark McLoughlin , Anthony Liguori , Arnd Bergmann , Arnd Bergmann , Juan Quintela , Dustin Kirkland , qemu-devel@nongnu.org, Michael Tsirkin Avi Kivity wrote: > >I know this has been discussed before, but isn't this why there are > >things like vfork()? > > vfork() doesn't work with threads - it requires that the calling process > be halted until exec() is called. On Linux (NPTL), vfork() is good for this. It only halts the calling thread. Other threads continue to run, and when the vfork'd thread called exec*(), it doesn't affect the other threads. Of course this behaviour isn't portable, but then again, neither is KVM. (Forget what I said elsewhere about Glibc using clone() to spawn processes. It's just Glibc's very complicated way of implementing fork(), and doesn't share the parent's memory). -- Jamie