From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1B7747CC78 for ; Fri, 25 Sep 2026 22:04:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790373869; cv=none; b=O/hEFxkiUPDJLilMkX15LNokmlymDyk1QjaLuXoa/5deTbkOoZeb8ZmvrA2CJe7bZ5nvhlA8wr2PPOC94O9adaFDUqNnUiIlLRdOWkhDI1yV4Bq/muSLF61Dj18vln/g7Z6rjTBz8PD08bgUS/8lFqZ8FqVv6E5JrJFAfxjsLD0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790373869; c=relaxed/simple; bh=HAP/sFklTJPiQKLsjznjzZZN3nbst3jpCvp5m9djKik=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=k59xNjjqL5jxlFT44s3dGVLuiqqaoxnMztRMGBAnqK2PFF4y+HveBpvOklBdL6gU8Be1E87dA3bcmfWJOVwKhMWHDj0RM2MVmjfAs9Xqt2tdWWczZ54YcdQKe7heRkV3i/+vghPdbG63t2IZFYqiPMVTZyhKPxTh+UID9XH+rM0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Vn3bnv/r; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Vn3bnv/r" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2d8fd7a3f38so10925ad.1 for ; Fri, 25 Sep 2026 15:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1790373867; x=1790978667; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=ksyuSwUH2dGx1asD3+Rht2rW0CHu4s19+UlL6wUtms0=; b=Vn3bnv/r56IioWKUSiP5ascRSINxgMXtSxvPJU+Jch8/YXzNS8HcmS1cO3AQJrypG7 DxY0YWyv40gN9phTHEV0agjk+7RMqnoGZ5RYUxyDfjgYl3OgKb2Pj8tZjwmFu9ir3Xlc 0j0a8U4Skwl30PTHKzrv/TjGUMxZQIgF1l6opYcQ77SaQqQl2gcp1FMHWWEjdsjwpUb/ rko4FOMiyKaV9RS5lAkzQZNVxSdZio293+5Cem7ZtUBsahg30MyhWPkYr+oFrhI6Dsdd B+nbtPmlRrCv/+nLFNZFpALELn9TfoK9pDD4abC1fXaaBVsiEre9kjUcfrWiFrdpyGkX +XGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790373867; x=1790978667; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ksyuSwUH2dGx1asD3+Rht2rW0CHu4s19+UlL6wUtms0=; b=Zhu9Zjv4d1TYin4jPIEo4kCS7StbXGY1QaJXZgxmjkGikSKGiuGCLpmQ8+bncgMuGZ WrwVKCjKUa+U9H9ogXpdRFX5I/COG5FgPXC07g2rk/O+COFk3VaE857eakUkknZyyKZC 1/e8/o21KF24accpHTI00aihD0WT+WrHprM5iIqxb6OwEeLJZfdlxNSsYunUCK6Lm54E x3RBQQ/qkNgA9p+tO0Tku7xdWTdV4hk2lCl/ICCsEId13iIvlwK90sDYF8Tly9hHLalu uLD/pc4rxl6m4ZZhpnvUmgc2BLkimjxvMu+Fiedz3N5ogO/6Xzxgls2gqbt4knVbC+V6 murw== X-Forwarded-Encrypted: i=1; AKwUvBzzYBkutazWQYnDCaojrlW/QCf9ZjUR3SYVb712IkyPmctyavAKQwqH2gg3Xsg1Uhr9oufNFz9YhZfAvD4=@vger.kernel.org X-Gm-Message-State: AFuF++nVnHfco4ujNe2XLz7YkGb2FwTM/4sz2e5pjcUjXpZ8JORmfcWS wa12Onfc0p8SA9xS5UHitW4Ro9GyYimur62xPHkUJzj/asvTSTbkXIB7DcjZfQAp/g== X-Gm-Gg: AYBFou0Y9u55SIAq0d97Z2VFeeRugvkHqyd3lBWXmnjX3WTneGHiKbsGWoLoJ5HhWER IDh7vqWqirKrRJ+0vNlumofw5TnOuKj5QVloHynTJgVxKAkaSVE0z8Gtb6mqF7KpoaC+/BMXbUS FJvXzuj1ByiqQ/ZV8tnVnsL0fRkK5WbHIlyauii4fRs92jCeTwmcMZqkzj2v4luuFRpyR0OynCm 1WGUWLggpHbKA43cTTGCAksMdeLdELHwAPErMW8UlsHti5LBNXOmcB06J5D7ErIVlRkyFCCOQm8 Qhw/QQiwlCfXF1sjMXZDXhnp7HjrcTkUBIFRVYuXMBTvESXaDiXEpDFDqFMuEEQ8NitCSV1XvNd B2AeXpKxIbemVx8inUTZfNVk8efPWI7s9D6Tce9w4vlEyz/BpnVozElcskiPOP2WiOF/Qrc5n9s LYqRJonoc46K9xf3z0+YfZ8pmOkMxVioJhdOGGBOALm8AwXSN6ppZpyzi4hUN2MftgYvy1T6t3z +L/dnjxfuXJHCGkVGa+fSICpHU0CWIt X-Received: by 2002:a17:903:46c6:b0:2c9:d89f:fd98 with SMTP id d9443c01a7336-2dfa968787fmr718815ad.1.1790373866593; Fri, 25 Sep 2026 15:04:26 -0700 (PDT) Received: from google.com (230.0.127.34.bc.googleusercontent.com. [34.127.0.230]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3a097663fd0sm12373594a91.9.2026.09.25.15.04.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2026 15:04:25 -0700 (PDT) Date: Fri, 25 Sep 2026 22:04:22 +0000 From: Lisa Wang To: Xiaoyao Li Cc: Andrew Jones , Ackerley Tng , Binbin Wu , Chao Gao , Chenyi Qiang , Dave Hansen , Erdem Aktas , Ira Weiny , Isaku Yamahata , Kiryl Shutsemau , linux-kselftest@vger.kernel.org, Paolo Bonzini , "Pratik R. Sampat" , Reinette Chatre , Rick Edgecombe , Roger Wang , Ryan Afranji , Sagi Shahar , Sean Christopherson , Shuah Khan , Oliver Upton , Jeremiah McReynolds , kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-kernel@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH v14 12/22] KVM: selftests: Require guest_memfd for TDX VMs Message-ID: References: <20260722-tdx-selftests-v14-0-15ad654a50db@google.com> <20260722-tdx-selftests-v14-12-15ad654a50db@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Fri, Aug 14, 2026 at 03:42:48PM +0800, Xiaoyao Li wrote: > > static bool is_guest_memfd_required(struct vm_shape shape) > > { > > #ifdef __x86_64__ > > - return shape.type == KVM_X86_SNP_VM; > > + return (shape.type == KVM_X86_SNP_VM || shape.type == KVM_X86_TDX_VM); > > Instead of updating is_guest_memfd_required(), I'm thinking how about just > replacing is_guest_memfd_required() with vm_arch_has_protected_memory()? vm_arch_has_protected_memory() returns true for SEV, but an SEV VM is expected not to use guest_memfd. If we replace is_guest_memfd_required() with vm_arch_has_protected_memory(), we need an extra test to ensure SEV VMs work well without guest_memfd. Thus, I prefer keeping is_guest_memfd_required(). > > @@ -27,6 +27,7 @@ static struct ucall_header *ucall_pool; > > void ucall_init(struct kvm_vm *vm, gpa_t mmio_gpa) > > { > > + struct userspace_mem_region *region; > > struct ucall_header *hdr; > > struct ucall *uc; > > gva_t gva; > > @@ -37,6 +38,13 @@ void ucall_init(struct kvm_vm *vm, gpa_t mmio_gpa) > > hdr = (struct ucall_header *)addr_gva2hva(vm, gva); > > memset(hdr, 0, sizeof(*hdr)); > > + region = vm_get_mem_region(vm, MEM_REGION_DATA); > > + if (region->region.flags & KVM_MEM_GUEST_MEMFD) { > > + size_t aligned_sz = align_up(sizeof(*hdr), vm->page_size); > > + > > + vm_mem_set_shared(vm, addr_gva2gpa(vm, gva), aligned_sz); > > + } > > this diff about the ucall needs to be a separate patch. What's the reason to > add it to this patch in this version? Thanks. Will separate in the next version. > > for (i = 0; i < KVM_MAX_VCPUS; ++i) { > > uc = &hdr->ucalls[i]; > > uc->hva = uc; > > >