From patchwork Mon Jul 10 19:24:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jing Zhang X-Patchwork-Id: 13307535 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 9DD42EB64DC for ; Mon, 10 Jul 2023 19:25:19 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: Mime-Version:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=XGzc6Fel//fv/q5nRHewpmaQAWz2QX44nlvLfhEUggA=; b=NDW 3Q8dUyijPGPauWmN9lKoDoSRj9JBtYPC10H4iVfVAzab9G2RVghO8RPgd1n4fQ/ooxRgZRB5JtAFo IX5SCV+0W4f4v6u4mNqRFJLtWExhtD4Wpat/Y4sBU8pjTqkQcam/3sNgZJ042xXc45lzVY11TFTE0 62vO3tzWzl3DnsWN5MFa2u9IzAMtMzqiubk7ohAHKI4W6U6fpVhWH9bC+oyj0GeEbIZujLDhZiImt rJ3Mknb2IEtrvM3vAji7+maHhOL6LUrIDi4hiYSU0jRPf3qG875eaTl09MmES+0UKxEa5DxX+ITYf orVeJc0BjtRg/wnxm5vBeLASvqXbZcA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qIwUw-00CYII-2g; Mon, 10 Jul 2023 19:24:38 +0000 Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qIwUt-00CYHB-11 for linux-arm-kernel@lists.infradead.org; Mon, 10 Jul 2023 19:24:36 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-56942667393so59468777b3.2 for ; Mon, 10 Jul 2023 12:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1689017073; x=1691609073; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=blbJsY1tevXkpN11ExS1lzOVNoR4ZYwKCSGaaCw8t6U=; b=CjZI5HUbA9pnkqip1gs9QRVz34a6qhwBmtysgri3RzvR08LQe/zefIRLxQ+k/m3iPg JYv56WOxNaHoTpKwE8Kdwxd+9fy2kDaKvDyPOCgVA2K8cbfl7EBBK0L2h4l37E4EdZhX zSySqR/M8D2PTfPDnmbaw8xglDtx8Z0ujrIYfYsPirhgl2JWN86zptFcecJ3axv7QvQJ UCYExHaiV5FzLuUgLIJkKoy47o9Vu5ILm5ubor1wPMRJCOF7ClhYrmewvoIgvea0br0s DWMoSidn0ur8mtJts784btGXJ+AkAMAwey2q4psdIlikdsc7RalhNggPNzrCPq38GAmq 5TdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689017073; x=1691609073; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=blbJsY1tevXkpN11ExS1lzOVNoR4ZYwKCSGaaCw8t6U=; b=HO2H6jT+aaOSsIF6iQfRLib8EijgpxRHFfZ2Fh8td/WtdNIBBXX8PRZEx/6vjFsbGq O8vXCVK74Qwt64miQYvYjxW/KrytXNWXcILUNIMvQhTj0KwC8B9L8SXO7YY2G084s9BR sZc4ON9K9ufYiFQpeL5c5Iux+1kSyplyJEoUbO+cXBOS3s10yRuTYlE4btAt4RI+LLX1 KZzCQ85wLcBUvY1esosr9A1BsWpxCrRVudCbKSqMbh57xa/xiGgXSKyruIUXQ+lRx8qo G96b+qN8tkhfEnbtjgZGR/Wgohm/MAMfyypKiIrjPes0Qb8q56vuuBcY1tyLOQ1txSHp vLHg== X-Gm-Message-State: ABy/qLZISPteiA/taF3qmFbJbsu4VPsC9xrxfftAVUEzyzcpmzFEwA0q iExvTk2JtkkOXD2sPAo3LuNXapeX6PaxghI8lg== X-Google-Smtp-Source: APBJJlFfpoC9fJXsqOFcjrMpASNBzMzZhqXGDJedjyg3Esd8A1tWW4poDR1LpBHpcCPUD+QPxXBPSool9fvrH46tMw== X-Received: from jgzg.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1acf]) (user=jingzhangos job=sendgmr) by 2002:a81:cf0c:0:b0:570:b1:ca37 with SMTP id u12-20020a81cf0c000000b0057000b1ca37mr94786ywi.5.1689017073377; Mon, 10 Jul 2023 12:24:33 -0700 (PDT) Date: Mon, 10 Jul 2023 19:24:23 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.41.0.255.g8b1d071c50-goog Message-ID: <20230710192430.1992246-1-jingzhangos@google.com> Subject: [PATCH v5 0/6] Enable writable for idregs DFR0,PFR0, MMFR{0,1,2, 3} From: Jing Zhang To: KVM , KVMARM , ARMLinux , Marc Zyngier , Oliver Upton Cc: Will Deacon , Paolo Bonzini , James Morse , Alexandru Elisei , Suzuki K Poulose , Fuad Tabba , Reiji Watanabe , Raghavendra Rao Ananta , Suraj Jitindar Singh , Cornelia Huck , Jing Zhang X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230710_122435_357016_CDCAB99E X-CRM114-Status: UNSURE ( 9.05 ) X-CRM114-Notice: Please train this message. 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This patch series enable userspace writable for below idregs: ID_AA64DFR0_EL1, ID_DFR0_EL1, ID_AA64PFR0_EL1, ID_AA64MMFR{0, 1, 2, 3}_EL1. It is based on v6.5-rc1 which contains infrastructure for writable idregs. A selftest is added to verify that KVM handles the writings from user space correctly. A relevant patch from Oliver is picked from [3]. --- * v4 -> v5 - Rebase on v6.4-rc1 which contains infrastructure for writable idregs. - Use guest ID registers values for the sake of emulation. - Added a selftest to verify idreg userspace writing. * v3 -> v4 - Rebase on v11 of writable idregs series at [2]. * v2 -> v3 - Rebase on v6 of writable idregs series. - Enable writable for ID_AA64PFR0_EL1 and ID_AA64MMFR{0, 1, 2}_EL1. * v1 -> v2 - Rebase on latest patch series [1] of enabling writable ID register. [1] https://lore.kernel.org/all/20230402183735.3011540-1-jingzhangos@google.com [2] https://lore.kernel.org/all/20230602005118.2899664-1-jingzhangos@google.com [3] https://lore.kernel.org/kvmarm/20230623205232.2837077-1-oliver.upton@linux.dev [v1] https://lore.kernel.org/all/20230326011950.405749-1-jingzhangos@google.com [v2] https://lore.kernel.org/all/20230403003723.3199828-1-jingzhangos@google.com [v3] https://lore.kernel.org/all/20230405172146.297208-1-jingzhangos@google.com --- Jing Zhang (5): KVM: arm64: Use guest ID register values for the sake of emulation KVM: arm64: Enable writable for ID_AA64DFR0_EL1 and ID_DFR0_EL1 KVM: arm64: Enable writable for ID_AA64PFR0_EL1 KVM: arm64: Enable writable for ID_AA64MMFR{0, 1, 2, 3}_EL1 KVM: arm64: selftests: Test for setting ID register from usersapce Oliver Upton (1): KVM: arm64: Reject attempts to set invalid debug arch version arch/arm64/kvm/sys_regs.c | 62 +++++-- tools/testing/selftests/kvm/Makefile | 1 + .../selftests/kvm/aarch64/set_id_regs.c | 163 ++++++++++++++++++ 3 files changed, 213 insertions(+), 13 deletions(-) create mode 100644 tools/testing/selftests/kvm/aarch64/set_id_regs.c base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5