From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:49822) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6IgQ-0002ck-Pa for qemu-devel@nongnu.org; Tue, 28 Aug 2012 06:06:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T6IgM-0005jK-Os for qemu-devel@nongnu.org; Tue, 28 Aug 2012 06:06:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49783) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6IgM-0005j4-Ga for qemu-devel@nongnu.org; Tue, 28 Aug 2012 06:06:02 -0400 Message-ID: <503C9800.7040502@redhat.com> Date: Tue, 28 Aug 2012 12:05:52 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1345801763-24227-1-git-send-email-qemulist@gmail.com> <1345801763-24227-11-git-send-email-qemulist@gmail.com> <503792F1.4090109@redhat.com> <503B1B4B.6050108@redhat.com> <503B260E.70607@web.de> <503BA9BC.5010207@redhat.com> <503BAAF0.2020103@siemens.com> <503BB7E7.4050709@redhat.com> <503BB9C5.3030605@siemens.com> <503BBA77.4090006@redhat.com> <503BBED4.9050705@siemens.com> <503BC1EE.4060608@redhat.com> <503BCCA1.10403@siemens.com> <503C9275.5040105@siemens.com> In-Reply-To: <503C9275.5040105@siemens.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 10/10] qdev: fix create in place obj's life cycle problem List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: "qemu-devel@nongnu.org" , Liu Ping Fan , liu ping fan , Anthony Liguori , Avi Kivity Il 28/08/2012 11:42, Jan Kiszka ha scritto: > Context A Context B > --------- --------- > object = lookup() > deregister(object) > modify(object) -> invalid state > ... use(object) > modify(object) -> valid state > register(object) > > And with "object" I'm not talking about QOM but any data structure. If you want to avoid locks, the only way to do so is RCU. Then you do not modify object at all. Paolo