From patchwork Wed Jan 17 17:40:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 862424 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zMDt24tyBz9s7f for ; Thu, 18 Jan 2018 04:41:45 +1100 (AEDT) Received: from localhost ([::1]:50940 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebriY-00082K-Iw for incoming@patchwork.ozlabs.org; Wed, 17 Jan 2018 12:41:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46510) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebrhs-00080J-Pw for qemu-devel@nongnu.org; Wed, 17 Jan 2018 12:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebrhp-0006iU-Js for qemu-devel@nongnu.org; Wed, 17 Jan 2018 12:41:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43306) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebrhp-0006fy-A8; Wed, 17 Jan 2018 12:40:57 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AE26FA452D; Wed, 17 Jan 2018 17:40:50 +0000 (UTC) Received: from t460s.redhat.com (ovpn-117-185.ams2.redhat.com [10.36.117.185]) by smtp.corp.redhat.com (Postfix) with ESMTP id B859861F2A; Wed, 17 Jan 2018 17:40:48 +0000 (UTC) From: David Hildenbrand To: qemu-s390x@nongnu.org, qemu-devel@nongnu.org Date: Wed, 17 Jan 2018 18:40:29 +0100 Message-Id: <20180117174047.6382-1-david@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 17 Jan 2018 17:40:51 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Christian Borntraeger , Thomas Huth , Cornelia Huck , Alexander Graf , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This patch series implements floating interrupt support for TCG and fixes STSI so we can remove warnings related to s390x SMP and MTTCG. KVM code has to be touched in order to factor out the injection routines into the flic ("s390x/flic: factor out injection of floating interrupts"). Basic testing didn't reveal any problems so far. With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got nasty stalls in the guest beforehand. Now also included: More flic related caching to avoid recurring conversions. Based on: https://github.com/cohuck/qemu.git s390x-next Available at: https://github.com/davidhildenbrand/qemu.git s390x-queue v1 -> v2: - Added due to discussions: - "s390x/flic: no need to call s390_io_interrupt() from flic" - "s390x/tcg: cache the qemu flic in a central function" - "s390x/kvm: cache the kvm flic in a central function" - "s390x/flic: cache the common flic class in a central function" - "s390x/flic: simplify flic initialization" - no need to check for tcg_enabled() - "s390x/tcg: STSI overhaul" - rephrased the comment - "s390x/tcg: implement TEST PENDING INTERRUPTION" - renamed local variable - "s390x: fix size + content of STSI blocks" - added typedefs whiel touching it. Thomas, therefore not added your r-b. - Minor spelling errors fixed - Dropped a couple of unneeded OBJECT() conversion David Hildenbrand (18): s390x/tcg: deliver multiple interrupts in a row s390x/flic: simplify flic initialization s390x/tcg: simplify lookup of flic s390x/tcg: simplify machine check handling s390x/flic: factor out injection of floating interrupts s390x/flic: no need to call s390_io_interrupt() from flic s390x/tcg: tolerate wrong wakeups due to floating interrupts s390x/flic: make floating interrupts on TCG actually floating s390x/tcg: implement TEST PENDING INTERRUPTION s390x/flic: implement qemu_s390_clear_io_flic() s390x/flic: optimize CPU wakeup for TCG s390x: fix size + content of STSI blocks s390x/tcg: STSI overhaul s390x/tcg: remove SMP warning configure: s390x supports mttcg now s390x/tcg: cache the qemu flic in a central function s390x/kvm: cache the kvm flic in a central function s390x/flic: cache the common flic class in a central function configure | 1 + hw/intc/s390_flic.c | 257 +++++++++++++++++++++++++++++++++++++++-- hw/intc/s390_flic_kvm.c | 84 +++++++++++--- hw/s390x/css.c | 10 +- hw/s390x/s390-virtio-ccw.c | 4 - hw/s390x/virtio-ccw.c | 4 +- include/hw/s390x/s390_flic.h | 57 ++++++++-- target/s390x/cpu.c | 10 -- target/s390x/cpu.h | 99 ++++++++-------- target/s390x/excp_helper.c | 147 +++++++++--------------- target/s390x/helper.h | 1 + target/s390x/insn-data.def | 1 + target/s390x/internal.h | 5 - target/s390x/interrupt.c | 100 ++++------------ target/s390x/kvm-stub.c | 13 --- target/s390x/kvm.c | 70 +----------- target/s390x/kvm_s390x.h | 10 +- target/s390x/misc_helper.c | 266 +++++++++++++++++++++++++++---------------- target/s390x/translate.c | 8 ++ 19 files changed, 680 insertions(+), 467 deletions(-)