From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58687) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfi2a-0000bu-9V for qemu-devel@nongnu.org; Fri, 02 Sep 2016 02:33:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bfi2W-0002sl-3O for qemu-devel@nongnu.org; Fri, 02 Sep 2016 02:33:27 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:56075) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfi2V-0002rb-SL for qemu-devel@nongnu.org; Fri, 02 Sep 2016 02:33:24 -0400 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u826MuMb023030 for ; Fri, 2 Sep 2016 02:33:21 -0400 Received: from e23smtp07.au.ibm.com (e23smtp07.au.ibm.com [202.81.31.140]) by mx0a-001b2d01.pphosted.com with ESMTP id 256b6c6ay0-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 02 Sep 2016 02:33:21 -0400 Received: from localhost by e23smtp07.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 2 Sep 2016 16:33:18 +1000 From: Nikunj A Dadhania Date: Fri, 2 Sep 2016 12:02:52 +0530 Message-Id: <1472797976-24210-1-git-send-email-nikunj@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH RFC 0/4] Enable MTTCG on PowerPC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-ppc@nongnu.org, alex.bennee@linaro.org, david@gibson.dropbear.id.au, rth@twiddle.net Cc: qemu-devel@nongnu.org, nikunj@linux.vnet.ibm.com, benh@kernel.crashing.org The series is a first attempt at enabling Multi-Threaded TCG on PowerPC. Changes that were needed to enable PowerPC are pretty simple; Patch 01: Take a iothread lock during hcall, as hcall can generate io requests 02: For TCG, we were harcoding smt as 1, this gets rid of the limitation 03: Use atomic_cmpxchg in store conditional 04: With more threads, flush the entry from each cpu. This can be optimized further. The patches are based on the Alex Bennee's base enabling patches for MTTCG[1] and Emilios's cmpxchg atomics. The consolidated tree of the above patches is here: https://github.com/stsquad/qemu/tree/mttcg/base-patches-v4-with-cmpxchg-atomics-v2 Apart from the above, PPC patches are based out of ppc-for-2.8 and load/store consolidation patches [2] Series with all dependent patches available here: https://github.com/nikunjad/qemu/tree/ppc_mttcg_v1 Testing: ======== -smp 4,cores=1,threads=4 -accel tcg,thread=multi TODO ==== Implement msgsndp instructions(door-bell), newer kernels enable it depending on the PVR. I have been using following workaround to boot. https://github.com/nikunjad/qemu/commit/2c10052c5f93418a6b920e6ba3ce1813fcf50bc4 [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg391966.html [2] https://lists.gnu.org/archive/html/qemu-ppc/2016-08/msg00265.html Nikunj A Dadhania (4): spapr-hcall: take iothread lock during handler call target-ppc: with MTTCG report more threads target-ppc: use atomic_cmpxchg for ld/st reservation target-ppc: flush tlb from all the cpu cputlb.c | 15 +++++++++++++++ hw/ppc/spapr_hcall.c | 11 +++++++++-- include/exec/exec-all.h | 2 ++ target-ppc/kvm.c | 2 +- target-ppc/kvm_ppc.h | 2 +- target-ppc/mmu-hash64.c | 2 +- target-ppc/translate.c | 24 +++++++++++++++++++++--- 7 files changed, 50 insertions(+), 8 deletions(-) -- 2.7.4