Received: by 2002:a05:7412:b795:b0:e2:908c:2ebd with SMTP id iv21csp502070rdb; Thu, 2 Nov 2023 09:33:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHqsvinL4zTOkOhYF68JYFH0WNkuWgRYJ8//CisTNyutF/tKRyucpJ62FAKgP/GM3fIoxN9 X-Received: by 2002:a17:903:120b:b0:1cc:7e40:de39 with SMTP id l11-20020a170903120b00b001cc7e40de39mr4337512plh.18.1698942798508; Thu, 02 Nov 2023 09:33:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698942798; cv=none; d=google.com; s=arc-20160816; b=IMRNxvWxu7gL2ez8YTubhL0NchZYSygi/byFNdnY5avnvTC77FTqUiUKvU8Si1igRL 0/groTNiWsKBGj4L/g05GZUVZaaf8DgM4MG+1eK8XGaJF/aiGGKh6XIZH9ZO4F4+yfpw 5uG9ncMd3Q7nCSvWGm3G5PWHk7Ln2XoUbS1FJTi4N68o5jHpkh7D2NzvTBkVctzkI8IE pQVueYs2KEuvUiIqRxPIGvxeb1r2Xh5e16G/nkaruIvNSDFhyJ9bttQy2z5yMmnHta/e pzRU69I3chTWHlHLjQuBBOrXhrk2yBKI5buJZgwJ0qankbsxEFSWe4kHTxqT87F3dqh3 T5/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=C8XpZHsgm6ih0IGnkMjeUalxzu2sGrQm9fwI04DMP80=; fh=6JwHlBVSRz8/CCfEMsFxO1FUFDrS/4AFHqLx91nDsIA=; b=ucjMpeXJ2tgRRZNogqLTC3mjHnhUVSeL0UyOfgecGzglkNVhFpwkQEihMndKL7NzsB duJAq/oszCEfmcahfnnAWwhSGW4pktCnjDSd3p15KIhUlbdEH7vLcjvpJX5YlwSLWhqq QLahJKks13Ot+eFbL8epKo1oW5dLmjyzjBULBXmWRIiIu7NTWa9bYuQqKQGbcYESxlIy KLZhe8NMRyBdg4eczxq39/bBUOYnvhvXaiba65mtJ6FUZRfvvwUgG9VtysiHEIyk/rFn 5adIYDcFr/qhm5/pavGpFIb4fVUdkfHitXqtMRKwUuFazQBIYiZmzsLdtprTV8qYaiOp jVag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Th0d6+eU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id e5-20020a170902e0c500b001bbaa5e95fdsi123789pla.102.2023.11.02.09.33.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Nov 2023 09:33:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=Th0d6+eU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id CAF2F828818A; Thu, 2 Nov 2023 09:33:14 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229534AbjKBQdN (ORCPT + 99 others); Thu, 2 Nov 2023 12:33:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229458AbjKBQdM (ORCPT ); Thu, 2 Nov 2023 12:33:12 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4CBF2123; Thu, 2 Nov 2023 09:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1698942787; x=1730478787; h=from:to:cc:subject:date:message-id; bh=cdPiSKd/31m3AqChZgVeKDRUhuu5sQ7j4sET0CgQF7k=; b=Th0d6+eUPgQLiytFXHm+dPltt4U6RNigxg9+JNUpSjWu/5mc+8YlUDT5 pMWr+2LE8bIRfT/Pbbp40TsUml8rrcssG7z/hmDk6aekPD1XpocxJ6njk dIpRLKUVCADRi/TtBocaJ9LJ7ir2FiGxZoGuLlqO/ODEDyBC7S9XxYFpp oqRzrFuyQcS1jTliWVgajmB22NLFX/yZaJYx9RKDgr6855mRaxYOd6F9l Fd2+MfXVKlU/Wv0Vus1GlAi/RpwWL/lEZTJKu0YjLyqcVCdWfltkGRgdX CgqvFFwXEDv1OZ09aVTpOrubX3mGS8rAEoMJ1LIaCtKNk1f5fdyFzFyvM A==; X-IronPort-AV: E=McAfee;i="6600,9927,10882"; a="388570836" X-IronPort-AV: E=Sophos;i="6.03,272,1694761200"; d="scan'208";a="388570836" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2023 09:33:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.03,272,1694761200"; d="scan'208";a="9448383" Received: from arthur-vostro-3668.sh.intel.com ([10.239.159.65]) by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2023 09:33:00 -0700 From: Zeng Guang To: Sean Christopherson , Paolo Bonzini , Shuah Khan , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Zenghui Yu , Anup Patel , Atish Patra , David Hildenbrand Cc: kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, Zeng Guang Subject: [RFC PATCH v1 0/8] KVM: seftests: Support guest user mode execution and running Date: Thu, 2 Nov 2023 23:51:03 +0800 Message-Id: <20231102155111.28821-1-guang.zeng@intel.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 02 Nov 2023 09:33:14 -0700 (PDT) This patch series give a proposal to support guest VM running in user mode and in canonical linear address organization as well. First design to parition the 64-bit canonical linear address space into two half parts belonging to user-mode and supervisor-mode respectively, similar as the organization of linear addresses used in linux OS. Currently the linear addresses use 48-bit canonical format in which bits 63:47 of the address are identical. Secondly setup page table mapping the same guest physical address of test code and data segment onto both user-mode and supervisor-mode address space. It allows guest in different runtime mode, i.e. user or supervisor, can run one code base in the corresponding linear address space. Also provide the runtime environment setup API for switching to user mode execution. Zeng Guang (8): KVM: selftests: x86: Fix bug in addr_arch_gva2gpa() KVM: selftests: x86: Support guest running on canonical linear-address organization KVM: selftests: Add virt_arch_ucall_prealloc() arch specific implementation KVM : selftests : Adapt selftest cases to kernel canonical linear address KVM: selftests: x86: Prepare setup for user mode support KVM: selftests: x86: Allow user to access user-mode address and I/O address space KVM: selftests: x86: Support vcpu run in user mode KVM: selftests: x86: Add KVM forced emulation prefix capability .../selftests/kvm/include/kvm_util_base.h | 20 ++- .../selftests/kvm/include/x86_64/processor.h | 48 ++++++- .../selftests/kvm/lib/aarch64/processor.c | 5 + tools/testing/selftests/kvm/lib/kvm_util.c | 6 +- .../selftests/kvm/lib/riscv/processor.c | 5 + .../selftests/kvm/lib/s390x/processor.c | 5 + .../testing/selftests/kvm/lib/ucall_common.c | 2 + .../selftests/kvm/lib/x86_64/processor.c | 117 ++++++++++++++---- .../selftests/kvm/set_memory_region_test.c | 13 +- .../testing/selftests/kvm/x86_64/debug_regs.c | 2 +- .../kvm/x86_64/userspace_msr_exit_test.c | 9 +- 11 files changed, 195 insertions(+), 37 deletions(-) -- 2.21.3