From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5E99330B30 for ; Mon, 2 Feb 2026 22:13:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770070408; cv=none; b=eMW5XddW5+OD56SqGMbRD4VOK2tkBGRKzMy9pycpVP8QIPC8mcSYlWVyPWxxSS8pP9NJH2O/ka/JL7pg+oPg4pnFkQ6ivQfxVfZzOAG4QiD4x2s6sImHZDllL3ZejlfPrVvSAHrhbrops5h8147l6be4TkKYDAqdP2nPJ66VSQ0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770070408; c=relaxed/simple; bh=N0sSOQ0f8rnPwD/KRhdnLNJC/bfbDb56Wa9rXTXP8zs=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=OJPmjAyqkUMSXAXC/Pwh1HxxEwjCp+u5o81EFXi2OiA9aqxFMaCRfsH6M3V6ebejGrAr2QHnSWqAdJ9V8XKAJohw02N8zWN7U4n6YTsg1m0VGVJUN82vkiO/sWHYNtbxQo+yAQ1YfMeXfYoehQGB45pM6p1MaIb92AIEXj4ZI58= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=Ltf0x0Wy; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=SR6wQaiG; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Ltf0x0Wy"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="SR6wQaiG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770070406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=NetS+z/lB9Vjk8awsEzStStR7YjfBL5uvT3v62JS7ho=; b=Ltf0x0Wy6kmHmj9tEr/RbFjqlhD1gTcAYB/I2Z+GFR4RahbluTBUL0et5uLkf/vIrkSwfh OAty3MRPDLL9JmdwicGbvQJBMjmGwT04xQLibrjXDhByihzL5PGyB8Sdte77VLy48m7qOj vkh2faPXgzcAmDgIBXPJ6IlpRr2P7bQ= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-135-tLUcFYRAOT2yMXBrKUQaFA-1; Mon, 02 Feb 2026 17:13:24 -0500 X-MC-Unique: tLUcFYRAOT2yMXBrKUQaFA-1 X-Mimecast-MFC-AGG-ID: tLUcFYRAOT2yMXBrKUQaFA_1770070404 Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-501473ee94fso250499541cf.3 for ; Mon, 02 Feb 2026 14:13:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1770070404; x=1770675204; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=NetS+z/lB9Vjk8awsEzStStR7YjfBL5uvT3v62JS7ho=; b=SR6wQaiG3cJugALih14e1Q8AYRYx0rjUn4H5fzdlrg5DlYkrYS9QaTpH/uKHYp9ATm 4iw7MXqNNsBxIMZaRx4YCuWkfZyjk1nD8UkvqOY/cthB5Kgop1ZzkDgSkZVOIkKO+7zr 2csupAfzHy1Wf85n4zuSK8Ns6DtKCtDqlPLdTsDPuGrLHs1wbBSWULcXbjXnDS54cwwx s+Bzc90FFxjT/SWoDCx9Y6SgP3PHFZ1qsueUhYubfVMcPTG1toEutKu3g1Hn1BeoB4dJ S9Z5Iw4YNv9GxBmQPVYKAN/5F6rDzEduQLDm4PBkZJjFnJgyql+N3TCa5Yp9h34J1l3S SKqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770070404; x=1770675204; h=in-reply-to:content-disposition: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; bh=NetS+z/lB9Vjk8awsEzStStR7YjfBL5uvT3v62JS7ho=; b=Z8QUq4/zetxFX9c2vMrgxZ9WvNFqZi9+JK+gUeeafZMjUwDhGTNanRJ79mzrNBNQNJ ZOFT9Cth7Ia+qY0kwvpJ3Yg6Bxqrfb/noQiqLn8TaTCGjmJJSwZgmrmYouO5LYRpiHf/ kKjDxOr39Fe2e80IRdh3iioilDiHxmx2wgJqGrrivUB3vjQaq8RZbSQtwcLiNqrEHbC1 IvAiLpaJS9OlM7YalR57JXtQmK+9xu1b09GcwtK4ftmue0UfE8I/FuyaVaSXLBZpVT/X BNr+Z+ZdfpfBGO2f5O9Y3yCcrybrQArQ/dasr9drGp3uOtuFobsveqoLFvcJrxh6hRGA MLwg== X-Forwarded-Encrypted: i=1; AJvYcCWoRNr2WWxnZJZL1u09WDqVgwawQPeiFiF3LcXDQs186mtHpuGBnxwYnG84lGHqZAkJ+wHzL3gT9yd+xZ8=@vger.kernel.org X-Gm-Message-State: AOJu0YxiCpisSBBIZCg25Yj1ZIbkRXdm38HTXP0/l/tzFBtrIS2RrDxR gea7Al1tQJSIjWdgqQm+XAsVoZ88PIkifMuUkpeLxAl4OuGBdNdEbJfsqrzc4aJKOhz1/KNfHeB XmqHdAjg8/aelZ4p/HBAvQOfTQMSOmEF5LVwNEMCCf0P4PqD5Vqo6eyjJW5D8idAO1g== X-Gm-Gg: AZuq6aJaJdIdoXT0PkD0JqK4btsUS+psRp4vThrQg3p2Y9HYvuklCFSYVHyXmss4/Y/ KvCyo3rl9T+SYsOPmZH6/s3fM/4/+ud9L/ubPDQK7yQa/jNZH0edPKxMQT98HBqpU39n1lUNS6r 0qkREuzrd7gfsBJkIkFMOVCTZYTVTZlC/kFL1cw0eYsnJuXoNkmitKJyX3kUph86mGhrlEmv6pc c4VCd+stkyVACQ0cyP6H1m8lQafUkXdgXIUEtkQYUv50SjpDr6Ob+J+tnuh8CpR5UAl0GRj5OZs VKHocAL2tCMCL5wmBKc6HANpx1pVxyDfHPj6xgwh+AiE2pJhjThEgdbUtW6tLZbrsmu14rSrxEb N5HE= X-Received: by 2002:a05:622a:28d:b0:4ed:af59:9df0 with SMTP id d75a77b69052e-505d228ac43mr152974611cf.40.1770070404188; Mon, 02 Feb 2026 14:13:24 -0800 (PST) X-Received: by 2002:a05:622a:28d:b0:4ed:af59:9df0 with SMTP id d75a77b69052e-505d228ac43mr152974231cf.40.1770070403763; Mon, 02 Feb 2026 14:13:23 -0800 (PST) Received: from x1.local ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50489d1b52csm101407911cf.8.2026.02.02.14.13.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Feb 2026 14:13:23 -0800 (PST) Date: Mon, 2 Feb 2026 17:13:20 -0500 From: Peter Xu To: Mike Rapoport Cc: linux-mm@kvack.org, Andrea Arcangeli , Andrew Morton , Axel Rasmussen , Baolin Wang , David Hildenbrand , Hugh Dickins , James Houghton , "Liam R. Howlett" , Lorenzo Stoakes , Michal Hocko , Muchun Song , Nikita Kalyazin , Oscar Salvador , Paolo Bonzini , Sean Christopherson , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH RFC 09/17] userfaultfd: introduce vm_uffd_ops->alloc_folio() Message-ID: References: <20260127192936.1250096-1-rppt@kernel.org> <20260127192936.1250096-10-rppt@kernel.org> 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=utf-8 Content-Disposition: inline In-Reply-To: <20260127192936.1250096-10-rppt@kernel.org> On Tue, Jan 27, 2026 at 09:29:28PM +0200, Mike Rapoport wrote: [...] > -static int mfill_atomic_pte_zeroed_folio(pmd_t *dst_pmd, > - struct vm_area_struct *dst_vma, > - unsigned long dst_addr) > +static int mfill_atomic_pte_copy(struct mfill_state *state) > { > - struct folio *folio; > - int ret = -ENOMEM; > - > - folio = vma_alloc_zeroed_movable_folio(dst_vma, dst_addr); > - if (!folio) > - return ret; > - > - if (mem_cgroup_charge(folio, dst_vma->vm_mm, GFP_KERNEL)) > - goto out_put; > + const struct vm_uffd_ops *ops = vma_uffd_ops(state->vma); > > - /* > - * The memory barrier inside __folio_mark_uptodate makes sure that > - * zeroing out the folio become visible before mapping the page > - * using set_pte_at(). See do_anonymous_page(). > - */ > - __folio_mark_uptodate(folio); > + return __mfill_atomic_pte(state, ops); > +} > > - ret = mfill_atomic_install_pte(dst_pmd, dst_vma, dst_addr, > - &folio->page, true, 0); > - if (ret) > - goto out_put; > +static int mfill_atomic_pte_zeroed_folio(struct mfill_state *state) > +{ > + const struct vm_uffd_ops *ops = vma_uffd_ops(state->vma); > > - return 0; > -out_put: > - folio_put(folio); > - return ret; > + return __mfill_atomic_pte(state, ops); > } > > static int mfill_atomic_pte_zeropage(struct mfill_state *state) > @@ -542,7 +546,7 @@ static int mfill_atomic_pte_zeropage(struct mfill_state *state) > int ret; > > if (mm_forbids_zeropage(dst_vma->vm_mm)) > - return mfill_atomic_pte_zeroed_folio(dst_pmd, dst_vma, dst_addr); > + return mfill_atomic_pte_zeroed_folio(state); After this patch, mfill_atomic_pte_zeroed_folio() should be 100% the same impl with mfill_atomic_pte_copy(), so IIUC we can drop it. > > _dst_pte = pte_mkspecial(pfn_pte(my_zero_pfn(dst_addr), > dst_vma->vm_page_prot)); > -- > 2.51.0 > -- Peter Xu