From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35361) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRJJ9-00036e-8K for qemu-devel@nongnu.org; Thu, 25 Oct 2012 05:01:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TRJJ3-0000v8-A0 for qemu-devel@nongnu.org; Thu, 25 Oct 2012 05:00:55 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:48782) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TRJJ3-0000ut-0f for qemu-devel@nongnu.org; Thu, 25 Oct 2012 05:00:49 -0400 Received: by mail-pa0-f45.google.com with SMTP id fb10so959483pad.4 for ; Thu, 25 Oct 2012 02:00:47 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <5086656A.6060603@redhat.com> References: <1350897839-29593-1-git-send-email-pingfank@linux.vnet.ibm.com> <1350897839-29593-14-git-send-email-pingfank@linux.vnet.ibm.com> <50852299.8090109@redhat.com> <50865E3F.4010809@siemens.com> <5086656A.6060603@redhat.com> Date: Thu, 25 Oct 2012 10:00:47 +0100 Message-ID: From: Peter Maydell Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [patch v4 13/16] e1000: add busy flag to anti broken device state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Liu Ping Fan , Jan Kiszka , Marcelo Tosatti , "qemu-devel@nongnu.org" , liu ping fan , Anthony Liguori , Stefan Hajnoczi , Paolo Bonzini On 23 October 2012 10:37, Avi Kivity wrote: > On 10/23/2012 11:32 AM, liu ping fan wrote: >> On Tue, Oct 23, 2012 at 5:07 PM, Jan Kiszka wrote: >>> On 2012-10-23 07:52, liu ping fan wrote: >>>> On Mon, Oct 22, 2012 at 6:40 PM, Avi Kivity wrote: >>>>> On 10/22/2012 11:23 AM, Liu Ping Fan wrote: >>>> It will only record and fix the issue on one thread. But guest can >>>> touch the emulated device on muti-threads. >>> >>> Sorry, what does that mean? A second VCPU accessing the device will >>> simply be ignored when it races with another VCPU? Specifically >>> >> Yes, just ignored. For device which support many logic in parallel, >> it should use independent busy flag for each logic > > We don't actually know that e1000 doesn't. Why won't writing into > different registers in parallel work? Unless the device we're emulating supports multiple in parallel accesses (and I bet 99.9% of the devices we model don't) then the memory framework needs to serialise the loads/stores. Otherwise it's just going to be excessively hard to write a reliable device model. -- PMM