From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 140F2ECAAA3 for ; Thu, 25 Aug 2022 23:26:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID :Mime-Version:Date:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=sGKqZty5MOvezyA0L9ibmi9ytSX1AbU00WZQ5DYtKXk=; b=A8MVzoBuNThQOP LhgjCaN00BgmOdA1Lr2fQYLy82+jT+ukeclsiPs4W/2mQkf3+UfgrYn2gfv12AjHszvu0AMj0j8wf OGvIfpjHF63Z1H8i87YRBU/V4/xLb/YahcGoLdEfWwql4pSyDJxpBYSgFMXij13UAzp+9rgoyUExM TEJt8KsGjGQAxc2vxuAjvt+bXVXElOfoalWG271PY7+xNcEW8rxO9qmYTq5zCDHyjCb8JVEDfQy8r bru8T+3zIx42M5kgMtab9KXhHjaUPFRL4x/aYSWfUQMenjmKlom8Xkj8/+YMhQKg4t4/cw4SDPCPb 0RoOO6ffpqb51J8qAB/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRMEE-0047ll-7K; Thu, 25 Aug 2022 23:25:38 +0000 Received: from mail-yw1-x1149.google.com ([2607:f8b0:4864:20::1149]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRME5-0047ZG-KW for linux-arm-kernel@lists.infradead.org; Thu, 25 Aug 2022 23:25:33 +0000 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-33d356e7629so189130157b3.3 for ; Thu, 25 Aug 2022 16:25:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:reply-to:from:to:cc; bh=y2TyZVHOzKZlb9wECS9yMCNcXCNpwqCPWpTxl29+IMY=; b=dkM+A09pjx32V3tjxCAZAaj4iTr2QWwZFTx14MwcUXXnZscAY3fsOcj6h5WXQXxdoD pE2ASAcwod4FD0N0sCT4FjUT0tg9Opertqs8xb3KgjTkUGEmN0krLyCYuuqUGRjMcltU i55uCtWc8Su1TGA6H/a9JTuhvCJcNgBM50Y1A4ihMCdqTUfplBKQUaiEUX2n1Vh4N710 3yOt5OJYxOGq7VwXawE8F72ZOkRT8JCFAjGnVJAcUhtb87iwBUwK1cOzoECBWrP6U0Ke ZtEkGqxLhvl3GVE9ZNy1Tt1CBoQxoOnHS9H5jY9/byfHRVWvrd+Zhz17D7ZlFyP3ffIM c1wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:reply-to :x-gm-message-state:from:to:cc; bh=y2TyZVHOzKZlb9wECS9yMCNcXCNpwqCPWpTxl29+IMY=; b=kZJ1cCFLVJegpguyWcvWYrHUP/B0JUFYjUgjtgFnHd9DsL70U+X8V7bC4cAo0LAYmo hK2c0znseqAD+yYNqftr6hqzmDVmeWB8xyFFtcruwqEB1mFwLWUgOtVv67eYBYBoe+E/ BVxhiQJ5lzqdJvVmLt6EY3ppXPpygq/Vv8WDesd3Shus2tyIcucHjTl9L22zlHR424PF VcSDDf6Shb+AsHjn2Yv6gj5KH+3p+LF4H3Ij3S11gXIm4oKqkHhDwSb8jLl+0UvJxg5E mqKWGnnyj6IE8kZkBhrL+WlyHT/hjBG716yfkS5auTT2hBrySc2aM0UV6xl8HRVymHzl ZTyQ== X-Gm-Message-State: ACgBeo1uVnR6xZtHB2coGHaWhMwsy7tn+u/efKh9yuvEB/4eWRBPFTzL Z+PE6WoR4LVMSvTfmicB83RLm+ySht8= X-Google-Smtp-Source: AA6agR4iAX55dcIo3IUqvlfKkqmyFpPiECgmLWRpTah2t3s+pqlFTA2hJbEvjHCDMn3ntt/fdb4I5rKg3Mw= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:6143:0:b0:335:3076:168e with SMTP id v64-20020a816143000000b003353076168emr5851445ywb.460.1661469924695; Thu, 25 Aug 2022 16:25:24 -0700 (PDT) Date: Thu, 25 Aug 2022 23:25:15 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.37.2.672.g94769d06f0-goog Message-ID: <20220825232522.3997340-1-seanjc@google.com> Subject: [PATCH v5 0/7] KVM: selftests: Implement ucall "pool" (for SEV) From: Sean Christopherson To: Paolo Bonzini , Marc Zyngier , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Nathan Chancellor , Nick Desaulniers Cc: James Morse , Alexandru Elisei , Suzuki K Poulose , Oliver Upton , Atish Patra , David Hildenbrand , Tom Rix , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, Colton Lewis , Peter Gonda , Andrew Jones , Sean Christopherson X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220825_162529_888865_0975786D X-CRM114-Status: GOOD ( 11.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Sean Christopherson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Non-KVM folks, y'all got pulled in because of the atomic_test_and_set_bit() patch. Rework the ucall infrastructure to use a pool of ucall structs to pass memory instead of using the guest's stack. For confidential VMs with encrypted memory, e.g. SEV, the guest's stack "needs" to be private memory and so can't be used to communicate with the host. Convert all implementations to the pool as all of the complexity is hidden in common code, and supporting multiple interfaces adds its own kind of complexity. Tested on x86 and ARM, compile tested on s390 and RISC-V. v5: - Use less convoluted method of writing per-VM "globals". [Oliver] - Add patch to drop ucall_uninit(). v4: https://lore.kernel.org/all/20220824032115.3563686-1-seanjc@google.com Peter Gonda (2): tools: Add atomic_test_and_set_bit() KVM: selftests: Add ucall pool based implementation Sean Christopherson (5): KVM: selftests: Consolidate common code for populating ucall struct KVM: selftests: Consolidate boilerplate code in get_ucall() KVM: selftests: Automatically do init_ucall() for non-barebones VMs KVM: selftests: Make arm64's MMIO ucall multi-VM friendly KVM: selftest: Drop now-unnecessary ucall_uninit() tools/arch/x86/include/asm/atomic.h | 7 ++ tools/include/asm-generic/atomic-gcc.h | 12 +++ tools/testing/selftests/kvm/Makefile | 1 + .../selftests/kvm/aarch64/arch_timer.c | 1 - .../selftests/kvm/aarch64/debug-exceptions.c | 1 - .../selftests/kvm/aarch64/hypercalls.c | 1 - .../testing/selftests/kvm/aarch64/psci_test.c | 1 - .../testing/selftests/kvm/aarch64/vgic_init.c | 2 - .../testing/selftests/kvm/aarch64/vgic_irq.c | 1 - tools/testing/selftests/kvm/dirty_log_test.c | 3 - .../selftests/kvm/include/kvm_util_base.h | 15 +++ .../selftests/kvm/include/ucall_common.h | 10 +- .../selftests/kvm/kvm_page_table_test.c | 2 - .../testing/selftests/kvm/lib/aarch64/ucall.c | 102 +++--------------- tools/testing/selftests/kvm/lib/kvm_util.c | 11 ++ .../selftests/kvm/lib/perf_test_util.c | 3 - tools/testing/selftests/kvm/lib/riscv/ucall.c | 42 ++------ tools/testing/selftests/kvm/lib/s390x/ucall.c | 39 ++----- .../testing/selftests/kvm/lib/ucall_common.c | 102 ++++++++++++++++++ .../testing/selftests/kvm/lib/x86_64/ucall.c | 39 ++----- .../testing/selftests/kvm/memslot_perf_test.c | 1 - tools/testing/selftests/kvm/rseq_test.c | 1 - tools/testing/selftests/kvm/steal_time.c | 1 - .../kvm/system_counter_offset_test.c | 1 - 24 files changed, 189 insertions(+), 210 deletions(-) create mode 100644 tools/testing/selftests/kvm/lib/ucall_common.c base-commit: 372d07084593dc7a399bf9bee815711b1fb1bcf2 -- 2.37.2.672.g94769d06f0-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel