From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A94D2C3DA4A for ; Fri, 9 Aug 2024 17:14:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 217106B009E; Fri, 9 Aug 2024 13:14:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C6EE6B009F; Fri, 9 Aug 2024 13:14:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0B5BA6B00A0; Fri, 9 Aug 2024 13:14:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E14476B009E for ; Fri, 9 Aug 2024 13:14:07 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 83A5912121D for ; Fri, 9 Aug 2024 17:14:07 +0000 (UTC) X-FDA: 82433354934.04.511F6FA Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf20.hostedemail.com (Postfix) with ESMTP id 94A5A1C0039 for ; Fri, 9 Aug 2024 17:14:05 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=La5pC8pq; spf=pass (imf20.hostedemail.com: domain of vdonnefort@google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=vdonnefort@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723223593; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X82rK3vly3bHNJXevneup4t5s+6w7V3sCCQPbEHfLcQ=; b=M9cYi7i208clIDIxjuCFLUaGlOx8Dzln/ApLo8bHbUsnf8anjsyVhPNa2FmfIsNB4CvLwr MJikne2ORDUw2kuwHcucZDLKWl/v3dXRVyjn2YGdfomVHcX4rb0TXmZCwGiTSIk1i1WHjP 8y+unR1tAXf/JbTeKQOfWfvy0uP3Cbg= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=La5pC8pq; spf=pass (imf20.hostedemail.com: domain of vdonnefort@google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=vdonnefort@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723223593; a=rsa-sha256; cv=none; b=XgNvTLwyZNmlOjv1E642uP/K7qoZ+Vv3ViOT+WjqMI+hNJvVSfjZVeV8LaRRo8Yu8WuuHh FKSpElyFwDSMImDiUWrzH66QbQP2doR4xp/NiVFUAYCev8XhjA4wAKlh3FQciksEBV7mv6 j/oc+RtDCRMeY1seJ2/OsW50DtwYGSM= Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4280ca0791bso16635035e9.1 for ; Fri, 09 Aug 2024 10:14:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1723223644; x=1723828444; darn=kvack.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=X82rK3vly3bHNJXevneup4t5s+6w7V3sCCQPbEHfLcQ=; b=La5pC8pqm2zJmUhJnwkqY8Dqx7gK+a/zwD3e12ixUwsHzoaz9CtbmY9/M4CyWxGMXp yVrLO3aS61+ebwgc4pesPSB2qYkfdCUxsj70zy51gsA+bVi+WwQPOxn/ZcAsx4g0VWI0 /zL86iS4kwo2dBs3H/XV0LICGuxCOUqVZHei94khlvwdEUaWVXCYtlRa//ZDsVCZaoG5 9yVCyBU45CKrFExH8FI9qoKAzvgETPF52PYqyKMUZVxcf/MEC2d1ha39t+olyvhi6j1r vtnro/mNiAUjldHlLtJlzSRweFJbzMIH0CA/GAvG3d/vgNuRbwR9pS5QUxd3HUn3q80H pGMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723223644; x=1723828444; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=X82rK3vly3bHNJXevneup4t5s+6w7V3sCCQPbEHfLcQ=; b=iqi0fTe9lvlODRzjf2HyZhk0mY0jRdYYK2nKR/7xsaKnDxkvjZe92fWsHbBpnEGCMH yvcj57xWQHIBbvAzJsyZOuGsGgp+rhBKD5w8QInflmOnS4RI9wO8Ea6oF8lZe0q25vpj bXm2DPvOf5bOFRmEFkoiWbLgrxqfbc3hLastUR75TO8EGZYwSHuxS6JVdc1A27ZK2iCy ILfv0LgsjUZ5958nwXXszZBbE8VpQY2TJdMSyELDzNJrT+G6iajaCjq1nzIiMzffdqiN AHVCnM7vFGoXap+gu3bCewCVz/3ce6zVglpAwv5f57YckdFbbr2vs4peNJyYLi68DPzQ rXiQ== X-Forwarded-Encrypted: i=1; AJvYcCW/I6xC5LlDIR5O+dN5S5VaV4OaIZ5CY1Cci7bmRIuD5ej7lg4qHbJU5ByywCfWPELUIWRzDJ+9+qRQZqotR4uFQCw= X-Gm-Message-State: AOJu0YzpLC9hgRFDxZePinChvA9+QWMfTUhZSpmrc8Xt7zSY8AJx1k3f uW9nIbipufQhfc/bKNxuiH8Tho9lLjBkVu/rMvwveqOpoWeRkoXJlsA6/IE35oBCCiGjvRu3HhC GaA== X-Google-Smtp-Source: AGHT+IHkIcnpn2ila8zjxAIDAcXfD2VxBs3tHbDTxk8bRQdeit1pwxjEHXAXVNITEiRV7TV5IPZOyA== X-Received: by 2002:a05:600c:46c5:b0:427:9a8f:9717 with SMTP id 5b1f17b1804b1-429c39c4341mr18452555e9.0.1723223643580; Fri, 09 Aug 2024 10:14:03 -0700 (PDT) Received: from google.com (203.75.199.104.bc.googleusercontent.com. [104.199.75.203]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-429059cd2b3sm135730695e9.44.2024.08.09.10.14.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Aug 2024 10:14:02 -0700 (PDT) Date: Fri, 9 Aug 2024 18:13:53 +0100 From: Vincent Donnefort To: David Hildenbrand , g@google.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , "Matthew Wilcox (Oracle)" , Hugh Dickins , Ryan Roberts , Yin Fengwei , Mike Kravetz , Muchun Song , Peter Xu , surenb@google.com Subject: Re: [PATCH v2 08/40] mm/memory: page_add_file_rmap() -> folio_add_file_rmap_[pte|pmd]() Message-ID: References: <20231220224504.646757-1-david@redhat.com> <20231220224504.646757-9-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231220224504.646757-9-david@redhat.com> X-Stat-Signature: jcad3ebo1r9wjgntez5ff7wfqn6hnmb3 X-Rspam-User: X-Rspamd-Queue-Id: 94A5A1C0039 X-Rspamd-Server: rspam02 X-HE-Tag: 1723223645-100578 X-HE-Meta: U2FsdGVkX18+BAF19hsmXjAyhWupvtjLhxK/NHpZ1ZELa3/RwSMqxnB7w+lbWMGSlvqhc9Jmo4mS3qxynt0wz6yT7BGHLXtVCXz/R+25bDef/ry3/TdBkwCwICBao8k/dorp03Ypg9j5QNSoUzIIWywrvDvWowVMmAFdPkfeTxcTvjJ3xprnWzLy9hvk7sFs4IP8yNm+1a5ATu1L/bRBEdyqykelUVikkNVUaUa83sgKzgmVXqXyksAH7WAJr2LSEmnxsu4LlWDFERx/PU65FjLL7hv8QSRi4nxgDmAdYsfXnSHMvOdyin9idW/m6FTO6ouR3rNQ3pOjDVeDv2JReJuKsHuPqs80s4rAwf9yt+oaWy9QMHnNtCc1VB/ERk/OV4sSqyafikyXK0ZbP1mfBUt+lMqdI1Rd7btiwPUr3qsEf840hoeoTsJVOZQ/d+MzYIaX5dALcZUfdUIOuQGeBXhquQkRzVY79ieqeKc1r+GgwRNBuyL4g4G6kUEPBUUFu8N0iWHcxg15kSlpFeY/CueQa8Ykw/I/mYV2tOyFT8f70x1nNDwjJcx2zY8YLtGNTVn1ATrJBpvqNy7M5eoeU+I1h8aPLOonWMvn1CwUO/Q6EDoFRRTItxI5mOUjl11Eug/aOWgyK7mWiTJ9dYciVNRuPaYPW2NHtpT3ZZFmKuPOFP+H8CH3oeK4uCxvpTczdd4MC/XktpNjKXR5oik+4d9lOXkKef9fTWDmN47DI045B1w0qPceeHV3Cii/BTKm820Ee7MM9xPbmX5Om/Ho+zmPqn7eV4ICAau09bU/Z/pMkpIomoEZWIkpi07sU7ZoBBPOg7inOsdWLd/ieVkFJsRK2ztkpQq6oz0wcG+NGfz0pFaYGtrNsoIIXxGH6dZgXvJqjn2JdrScM2amkQ2vhOZkOMyWMKlksGFqDPzH3EEEoQZtylNWz4OW2kAfDxVv15qKIPx7hcEcWdY6XDj roIwHmEY ME0AYHukbHvyTZUQU+Fjw5JvWCPfdPLKsabc3LTqahR8A6mZw64ireSBrvQ/SnrEGwlocWAvTYpdpwm/rrDZ1/xRSJHxvY6YFvf9i9WtmM2c+Nh+CfIr6ntxloQAe2xCiNXSrBXzpXlYoYS9FUIf7pJ8SJ9Y/zjtXKqwZDZ3GqahuS6oBmqSyRlKcbT1DCECZYlNbgE1KpX76KlPjNt/BtNAmgZx1fKDlC8NnQSHDNFpa13teDOO8YtjBhWFdIKgDtcnGW2whK8lbHgsN1QjhdRcScwk6qjIb2FCY2//X5t6+dqRXq9KsVCHctfKYQ6XVHWHYJWrbrZpcDgiK3p+ThpFu1cFBa7mn1fewijvdny9viLT7WGJl+sYeDG4b6gu3aaeA+V6eUpNeF9V/Qo9hnSDvTZvQQq/LBKPpHpPxX9w7rF4Oa9SzWotPtWW1WMhMgR+zoYtNnelLsvYOen35Jjp7TjAelriJkh19awu885rKnxg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, Sorry, reviving this thread as I have ran into something weird: On Wed, Dec 20, 2023 at 11:44:32PM +0100, David Hildenbrand wrote: > Let's convert insert_page_into_pte_locked() and do_set_pmd(). While at it, > perform some folio conversion. > > Reviewed-by: Yin Fengwei > Reviewed-by: Ryan Roberts > Signed-off-by: David Hildenbrand > --- > mm/memory.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 7f957e5a84311..c77d3952d261f 100644 > --- a/mm/memory.c > +++ b/mm/memory.c [...] > vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > { > + struct folio *folio = page_folio(page); > struct vm_area_struct *vma = vmf->vma; > bool write = vmf->flags & FAULT_FLAG_WRITE; > unsigned long haddr = vmf->address & HPAGE_PMD_MASK; > @@ -4418,8 +4421,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) > return ret; > > - page = compound_head(page); > - if (compound_order(page) != HPAGE_PMD_ORDER) > + if (page != &folio->page || folio_order(folio) != HPAGE_PMD_ORDER) > return ret; Is this `page != &folio->page` expected? I believe this check wasn't there before as we had `page = compound_head()`. It breaks the installation of a PMD level mapping for shmem when the fault address is in the middle of this block. In its fault path, shmem sets vmf->page = folio_file_page(folio, vmf->pgoff) which fails this test above. > > /* > @@ -4428,7 +4430,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > * check. This kind of THP just can be PTE mapped. Access to > * the corrupted subpage should trigger SIGBUS as expected. > */ > - if (unlikely(PageHasHWPoisoned(page))) > + if (unlikely(folio_test_has_hwpoisoned(folio))) > return ret; > > /* > @@ -4452,7 +4454,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) > entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma); > > add_mm_counter(vma->vm_mm, mm_counter_file(page), HPAGE_PMD_NR); > - page_add_file_rmap(page, vma, true); > + folio_add_file_rmap_pmd(folio, page, vma); > > /* > * deposit and withdraw with pmd lock held > -- > 2.43.0 >