From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (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 49A2C355050 for ; Tue, 13 Jan 2026 22:06:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768342016; cv=none; b=aaHhFSQ2otrGTepd16q2CfCotAzM2X7LTgdyYgyvllZb0zwMCsu8Agnod2AXBgjH71mO+JLxF0MMDka2wOKL/VLWWKld41zDJeFiNcFqSzRfGRszq8imw4nClobJTXnKp3wd82uH0Kj+MsrdCeDm7v+DuRSP2T1VveqwV2wr+sY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768342016; c=relaxed/simple; bh=iW37PkhVimeAsRI9+U1iwDmo+G0sNY16lfYsThWb4ME=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=KSjfjhLsB5hvzoLM+gmWdYP9zxMsdqdsUPNIk5dLnC0zPNi67ufSdoyWYpvyDLhg7G8njLbIl31q3ppoI2LBJiNEABRCejmlzTQRq7ZgHI9Govt+Dc5yEowlf9fei9A8ShP7fM+bv4Sgzq0ce3lVYNU4IB/2mJSmIKt5JDbWXCw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jPqWjmn6; arc=none smtp.client-ip=209.85.214.202 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=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jPqWjmn6" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-2a0bae9acd4so58986365ad.3 for ; Tue, 13 Jan 2026 14:06:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1768342014; x=1768946814; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=H47TubffnoB3LJi9WbWx6JWYlmT0g/2zrK7ql8Qwt/s=; b=jPqWjmn6vDFiJzWjPVKGUIEfRWL4pdVITKO4+2Qrho4nJQtoE+SUue4YfIK55WQCNK NDxNnXrkd8QjEgv3eaN9X9HlluoMGWHXKTmVRzt9ObJIRqgu2a/j3ss+JpgABLS/XDqg yUyG05WTDdIMWPxYFVl+XXM5w4Ew4S4DUZGqUKdgwFkgbktb2UNnf5oVtUbUoVbBoe7L 4ohZ7vWX206dggfndM11BKeQ1gjRuGvUsa1nM2obi6ciEy7E3os/LLZQ/o5gx3RY6EeT pAT96Y0shL2OGzNf3eRHLSefUs7vOqHBjIgnFPGRoPsVOH9UGmtOgoqJF7wwqVVWn0HY fCfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768342014; x=1768946814; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=H47TubffnoB3LJi9WbWx6JWYlmT0g/2zrK7ql8Qwt/s=; b=PU7YqCKFZfJYUMPHWJxfBFJnmDaJwXPJ5KOhyjrRQVMJv2kHtNdJ6p8fICrHvcElEI sMD1kSuvEaT2Qitfpg/AGQCL30kt4WfljOEIfo5W6mVX37BpnmA3JR+Byn9nCS337GUF 2O7SqvAgq+h6+c8p10NckUO3WeayM3/vTJtHqRYZyvyTX5lj3r3LaR1Oco22U0Hk6hwr 54TE+4Dmb/SWVKouTv0cP+6lMqAzU31ZdckLxa3qtTZWyoRzrw5X/8KRIkqgPExsUycD JzxrpA4UvnKZZLkA5s5rl2YdezIj8JSSOHsnX7pJiOKaYUjr8ZzehemmOOtIk+sSop8h K4ww== X-Forwarded-Encrypted: i=1; AJvYcCWL8/rtI8duRrqRzv288LuTofiEurOvDYdSrwgj6zhUPvYBlG9AVRho771FBwWqZQRbaxIrfVlL6yxp4ck=@vger.kernel.org X-Gm-Message-State: AOJu0YxwVplFDxwQwNjIGROIU/H8vDBCutamqri5c0QivYoXN54MLU+x GM9HhhS2gRa4UsxxvSrvflbksJe0MMV7gvCGCnUMyKLwmskMmTEhGIgm36iwgeQhGHKyWS3enUL fPoBYrg== X-Received: from pllj12.prod.google.com ([2002:a17:902:758c:b0:29f:22e:147c]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:1c2:b0:2a0:b461:c883 with SMTP id d9443c01a7336-2a599e2ed67mr4408825ad.45.1768342014462; Tue, 13 Jan 2026 14:06:54 -0800 (PST) Date: Tue, 13 Jan 2026 14:06:52 -0800 In-Reply-To: <20260113213556.rwihf3v3ek3c5kwl@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260108214622.1084057-1-michael.roth@amd.com> <20260108214622.1084057-7-michael.roth@amd.com> <20260113213556.rwihf3v3ek3c5kwl@amd.com> Message-ID: Subject: Re: [PATCH v3 6/6] KVM: guest_memfd: GUP source pages prior to populating guest memory From: Sean Christopherson To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, thomas.lendacky@amd.com, pbonzini@redhat.com, vbabka@suse.cz, ashish.kalra@amd.com, liam.merwick@oracle.com, david@redhat.com, vannapurve@google.com, ackerleytng@google.com, aik@amd.com, ira.weiny@intel.com, yan.y.zhao@intel.com, pankaj.gupta@amd.com, Kai Huang Content-Type: text/plain; charset="us-ascii" On Tue, Jan 13, 2026, Michael Roth wrote: > On Tue, Jan 13, 2026 at 11:21:29AM -0800, Sean Christopherson wrote: > > On Thu, Jan 08, 2026, Michael Roth wrote: > > > @@ -842,47 +881,38 @@ long kvm_gmem_populate(struct kvm *kvm, gfn_t start_gfn, void __user *src, long > > > if (!file) > > > return -EFAULT; > > > > > > - filemap_invalidate_lock(file->f_mapping); > > > - > > > npages = min_t(ulong, slot->npages - (start_gfn - slot->base_gfn), npages); > > > for (i = 0; i < npages; i++) { > > > - struct folio *folio; > > > - gfn_t gfn = start_gfn + i; > > > - pgoff_t index = kvm_gmem_get_index(slot, gfn); > > > - kvm_pfn_t pfn; > > > + struct page *src_page = NULL; > > > + void __user *p; > > > > > > if (signal_pending(current)) { > > > ret = -EINTR; > > > break; > > > } > > > > > > - folio = __kvm_gmem_get_pfn(file, slot, index, &pfn, NULL); > > > - if (IS_ERR(folio)) { > > > - ret = PTR_ERR(folio); > > > - break; > > > - } > > > + p = src ? src + i * PAGE_SIZE : NULL; > > > > > > - folio_unlock(folio); > > > + if (p) { > > > > Computing 'p' when src==NULL is unnecessary and makes it hard to see that gup() > > is done if and only if src!=NULL. > > > > Anyone object to this fixup? > > No objections here, and it does seem a bit more readable. Will include > this if a new version is needed. No need, I'll fixup when applying (already have, actually). If you want to double check that I didn't fat finger anything, the patches are in kvm-x86/gmem. Thanks!