From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49281) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YC6ZP-0003k9-Va for qemu-devel@nongnu.org; Fri, 16 Jan 2015 08:04:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YC6ZM-0005hb-El for qemu-devel@nongnu.org; Fri, 16 Jan 2015 08:04:11 -0500 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:47743) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YC6ZL-0005fW-Vv for qemu-devel@nongnu.org; Fri, 16 Jan 2015 08:04:08 -0500 Received: from /spool/local by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 16 Jan 2015 13:04:04 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 40AC8219005C for ; Fri, 16 Jan 2015 13:04:00 +0000 (GMT) Received: from d06av03.portsmouth.uk.ibm.com (d06av03.portsmouth.uk.ibm.com [9.149.37.213]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t0GD41Ni58458318 for ; Fri, 16 Jan 2015 13:04:01 GMT Received: from d06av03.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av03.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t0GD40ZB025284 for ; Fri, 16 Jan 2015 06:04:00 -0700 Message-ID: <54B90C40.5030503@de.ibm.com> Date: Fri, 16 Jan 2015 14:04:00 +0100 From: Christian Borntraeger MIME-Version: 1.0 References: <1421171537-19118-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <1421171537-19118-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/8] RCUification of the memory API, part 1 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: famz@redhat.com, stefanha@redhat.com Am 13.01.2015 um 18:52 schrieb Paolo Bonzini: > These are the minimal changes to adopt RCU and use it in memory_region_find > (and hence in virtio-blk-dataplane). Looks big, but two thirds of it > is documentation and tests. > > Please review! :) Really Nice. This gives me a boost from 1000MB/sec to 1400MB/sec on my fio test. (4k block random reads on null block devices). perf shows me that pthread_mutex_lock and kernel spin locking contention (I have a 32cpu host) goes away. Christian > > Paolo > > Jan Kiszka (1): > memory: remove assertion on memory_region_destroy > > Paolo Bonzini (7): > tls: require compiler support for __thread > rcu: add rcu library > rcu: add rcutorture > rcu: allow nesting of rcu_read_lock/rcu_read_unlock > rcu: add call_rcu > memory: protect current_map by RCU > memory: avoid ref/unref in memory_region_find > > configure | 9 +- > docs/rcu.txt | 388 +++++++++++++++++++++++++++++++++++++++ > exec.c | 2 +- > hw/9pfs/virtio-9p-synth.c | 1 + > include/exec/memory.h | 5 + > include/qemu/atomic.h | 61 +++++++ > include/qemu/queue.h | 13 ++ > include/qemu/rcu.h | 155 ++++++++++++++++ > include/qemu/thread.h | 3 - > include/qemu/tls.h | 52 ------ > include/qom/cpu.h | 4 +- > memory.c | 60 +++---- > tests/Makefile | 11 +- > tests/rcutorture.c | 449 ++++++++++++++++++++++++++++++++++++++++++++++ > tests/test-tls.c | 83 +++++++++ > util/Makefile.objs | 1 + > util/rcu.c | 290 ++++++++++++++++++++++++++++++ > 17 files changed, 1485 insertions(+), 102 deletions(-) > create mode 100644 docs/rcu.txt > create mode 100644 include/qemu/rcu.h > delete mode 100644 include/qemu/tls.h > create mode 100644 tests/rcutorture.c > create mode 100644 tests/test-tls.c > create mode 100644 util/rcu.c >