From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2l3G-0006Jv-RO for qemu-devel@nongnu.org; Fri, 16 Apr 2010 08:53:42 -0400 Received: from [140.186.70.92] (port=57449 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2l3D-0006JU-MT for qemu-devel@nongnu.org; Fri, 16 Apr 2010 08:53:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2gVV-0005ru-Og for qemu-devel@nongnu.org; Fri, 16 Apr 2010 04:06:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55147) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2gVU-0005qd-9F for qemu-devel@nongnu.org; Fri, 16 Apr 2010 04:02:33 -0400 Message-ID: <4BC81986.4060904@redhat.com> Date: Fri, 16 Apr 2010 10:02:14 +0200 From: Gerd Hoffmann MIME-Version: 1.0 References: <1271238922-10008-1-git-send-email-kraxel@redhat.com> <1271238922-10008-9-git-send-email-kraxel@redhat.com> <4BC64AD6.6040209@redhat.com> In-Reply-To: <4BC64AD6.6040209@redhat.com> Content-Type: multipart/mixed; boundary="------------060304030705020601050006" Subject: [Qemu-devel] Re: [RfC PATCH 08/11] spice: add qxl device List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Blue Swirl , qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------060304030705020601050006 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 04/15/10 01:08, Paolo Bonzini wrote: > On 04/14/2010 06:52 PM, Blue Swirl wrote: >> On 4/14/10, Gerd Hoffmann wrote: >>> +static inline void atomic_or(uint32_t *var, uint32_t add) >>> +{ >>> + __asm__ __volatile__ ("lock; orl %1, %0" : "+m" (*var) : "r" (add) >>> : "memory"); >>> +} >> >> This will break on non-x86 hosts. > > I'd just use __sync_fetch_and_or here. Good idea. I think we can zap the memory barrier and fix a small race while being at it, see the incremental fix below. cheers, Gerd --------------060304030705020601050006 Content-Type: text/plain; name="fix" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fix" ZGlmZiAtLWdpdCBhL2h3L3F4bC5jIGIvaHcvcXhsLmMKaW5kZXggN2FjMDZmNi4uOGNiZDlh MyAxMDA2NDQKLS0tIGEvaHcvcXhsLmMKKysrIGIvaHcvcXhsLmMKQEAgLTYsNyArNiw2IEBA CiAjaW5jbHVkZSA8cHRocmVhZC5oPgogCiAjaW5jbHVkZSAicWVtdS1jb21tb24uaCIKLSNp bmNsdWRlICJxZW11LWJhcnJpZXIuaCIKICNpbmNsdWRlICJxZW11LXNwaWNlLmgiCiAjaW5j bHVkZSAicWVtdS10aW1lci5oIgogI2luY2x1ZGUgInFlbXUtcXVldWUuaCIKQEAgLTE3Niwx MSArMTc1LDYgQEAgc3RhdGljIGlubGluZSB1aW50MzJfdCBtc2JfbWFzayh1aW50MzJfdCB2 YWwpCiAgICAgcmV0dXJuIG1hc2s7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhdG9taWNf b3IodWludDMyX3QgKnZhciwgdWludDMyX3QgYWRkKQotewotICAgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJsb2NrOyBvcmwgJTEsICUwIiA6ICIrbSIgKCp2YXIpIDogInIiIChhZGQpIDog Im1lbW9yeSIpOwotfQotCiBzdGF0aWMgcmFtX2FkZHJfdCBxeGxfcm9tX3NpemUodm9pZCkK IHsKICAgICB1aW50MzJfdCByb21fc2l6ZSA9IHNpemVvZihRWExSb20pICsgc2l6ZW9mKFFY TE1vZGVzKSArIHNpemVvZihxeGxfbW9kZXMpOwpAQCAtODkyLDEyICs4ODYsMTMgQEAgc3Rh dGljIHZvaWQgcGlwZV9yZWFkKHZvaWQgKm9wYXF1ZSkKIAogc3RhdGljIHZvaWQgcXhsX3Nl bmRfZXZlbnRzKFBDSVFYTERldmljZSAqZCwgdWludDMyX3QgZXZlbnRzKQogeworICAgIHVp bnQzMl90IG9sZF9wZW5kaW5nOworCiAgICAgYXNzZXJ0KGQtPnNzZC5ydW5uaW5nKTsKLSAg ICBzbXBfd21iKCk7Ci0gICAgaWYgKChkLT5yYW0tPmludF9wZW5kaW5nICYgZXZlbnRzKSA9 PSBldmVudHMpIHsKKyAgICBvbGRfcGVuZGluZyA9IF9fc3luY19mZXRjaF9hbmRfb3IoJmQt PnJhbS0+aW50X3BlbmRpbmcsIGV2ZW50cyk7CisgICAgaWYgKChvbGRfcGVuZGluZyAmIGV2 ZW50cykgPT0gZXZlbnRzKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXRvbWlj X29yKCZkLT5yYW0tPmludF9wZW5kaW5nLCBldmVudHMpOwogICAgIGlmIChwdGhyZWFkX3Nl bGYoKSA9PSBkLT5tYWluKSB7CiAgICAgICAgIHF4bF9zZXRfaXJxKGQpOwogICAgIH0gZWxz ZSB7Cg== --------------060304030705020601050006--