From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:45815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwVeN-0004Dg-06 for qemu-devel@nongnu.org; Wed, 20 Feb 2019 12:27:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwVeK-00018R-FG for qemu-devel@nongnu.org; Wed, 20 Feb 2019 12:27:14 -0500 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:40883) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwVeI-00017U-HF for qemu-devel@nongnu.org; Wed, 20 Feb 2019 12:27:11 -0500 Received: by mail-pf1-x441.google.com with SMTP id h1so12218482pfo.7 for ; Wed, 20 Feb 2019 09:27:10 -0800 (PST) References: <20190130004811.27372-1-cota@braap.org> From: Richard Henderson Message-ID: <70297ac5-defa-0d7b-b4da-44303b328ce2@linaro.org> Date: Wed, 20 Feb 2019 09:27:06 -0800 MIME-Version: 1.0 In-Reply-To: <20190130004811.27372-1-cota@braap.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v6 00/73] per-CPU locks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Emilio G. Cota" , qemu-devel@nongnu.org Cc: Paolo Bonzini , Aleksandar Markovic , Alistair Francis , Andrzej Zaborowski , Anthony Green , Artyom Tarasenko , Aurelien Jarno , Bastian Koppelmann , Christian Borntraeger , Chris Wulff , Cornelia Huck , David Gibson , David Hildenbrand , "Edgar E. Iglesias" , Eduardo Habkost , Fabien Chouteau , Guan Xuetao , James Hogan , Laurent Vivier , Marek Vasut , Mark Cave-Ayland , Max Filippov , Michael Walle , Palmer Dabbelt , Peter Maydell , qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, Sagar Karandikar , Stafford Horne On 1/29/19 4:46 PM, Emilio G. Cota wrote: > v5: https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg02979.html > > For context, the goal of this series is to substitute the BQL for the > per-CPU locks in many places, notably the execution loop in cpus.c. > This leads to better scalability for MTTCG, since CPUs don't have > to acquire a contended global lock (the BQL) every time they > stop executing code. > > See the last commit for some performance numbers. > > After this series, the remaining obstacles to achieving KVM-like > scalability in MTTCG are: (1) interrupt handling, which > in some targets requires the BQL, and (2) frequent execution of > "async safe" work. > That said, some targets scale great on MTTCG even before this > series -- for instance, when running a parallel compilation job > in an x86_64 guest, scalability is comparable to what we get with > KVM. > > This series is very long. If you only have time to look at a few patches, > I suggest the following, which do most of the heavy lifting and > have not yet been reviewed: > > - Patch 7: cpu: make per-CPU locks an alias of the BQL in TCG rr mode > - Patch 70: cpu: protect CPU state with cpu->lock instead of the BQL > > I've tested all patches with `make check-qtest -j' for all targets. > The series is checkpatch-clean (just some warnings about __COVERITY__). > > You can fetch the series from: > https://github.com/cota/qemu/tree/cpu-lock-v6 Thanks for the patience. Both Alex and I have now completed review, and I think this is ready for merge. There are some patch conflicts with master, so if you can fix those and post a v7, we'll get it merged right away. r~