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 F218DC27C75 for ; Tue, 11 Jun 2024 15:24:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 887936B00A9; Tue, 11 Jun 2024 11:24:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 80CE16B00AB; Tue, 11 Jun 2024 11:24:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65FEB6B00AC; Tue, 11 Jun 2024 11:24:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 419906B00A9 for ; Tue, 11 Jun 2024 11:24:44 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id E151B1C06BD for ; Tue, 11 Jun 2024 15:24:43 +0000 (UTC) X-FDA: 82218980046.16.48C7ABA Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf02.hostedemail.com (Postfix) with ESMTP id EF3B080022 for ; Tue, 11 Jun 2024 15:24:41 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=ySyEkJyn; dmarc=none; spf=pass (imf02.hostedemail.com: domain of abrestic@rivosinc.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=abrestic@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718119482; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=j+70rPRbTmia/VEIc1/MKb7Bbc21YVKTZi4Axx4ZXvY=; b=hcFNutdwTKKVWA7Uwk4qJ7WFfHeTim5gOgTx0akESBiRp1D9jqVasFI2VOMoSZX5i6vhZE LdIszvs9g8OxgI5mYzUgfYHKQI1PK0wBNgibU/9yClYns1ic6gN5jd2VioqTBxILWXRAPM FoXA2WMtRit7GajAM9WXLXwVY8RskQs= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=ySyEkJyn; dmarc=none; spf=pass (imf02.hostedemail.com: domain of abrestic@rivosinc.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=abrestic@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718119482; a=rsa-sha256; cv=none; b=L38fzW/oZJ8AGlA7PtHX/VBHMuRLbx8s9+ms9WFUCbEXOC6oNO2CVr+dKJeFYnVS2i3dCB sT9rjbVFkd3qlZ6wk4iW4TTckQUdWZrnZhLiFoLDelcsQWKsOr8K6LPhlGhhF1LqFNf9VM pqDJk8WxjyOPJEKwXCZkmj4BoqUcdi4= Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-57c83100cb4so2748323a12.1 for ; Tue, 11 Jun 2024 08:24:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1718119480; x=1718724280; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=j+70rPRbTmia/VEIc1/MKb7Bbc21YVKTZi4Axx4ZXvY=; b=ySyEkJynMqJNLaPjPA9ffw5Rc95n5ooJp3EqN6DwYC0HiXe9bHQIqHnAOcnWHKFbUC DDnch8P8SV3n0HDCeLRmeMjwA12ACm4vZG6jyGaGeL5HaPZWUC+rTQkOdWhMTRD8bnZC B/jhtgHGkEcSoj6XK741IWoURZklt8+cIIjYtNppX/FhcEW4X2mU4IwSh4OV3jrT54YX W7Z4yToEaJdTWB75WQb52xXHVHfTWcLoi2oVI6TjXtaVS08HiXxqn8WkXOCCWCOBuRm3 5edogE8jknftfunIIcQ4F6JpKHDF0S7pPivoWXYMogxlM0p2fdgpFdphiYXzcYc8nKd/ MkVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718119480; x=1718724280; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=j+70rPRbTmia/VEIc1/MKb7Bbc21YVKTZi4Axx4ZXvY=; b=SKQ5N2dDzImB0AMCN8PphuIV7abjs6IKLVJulxi5DuP9vVEQouvYHux1+p8CR1y0ck Lbkn61W5JFpepbsQES/Mea5eN0hiLilHN9sLyrJ2uTvK90wt7RbNUsS3cYfIyb3JDHyf Hm02Bm8chNLpmoM0ihvwX63Qk1FNnW32G7gMPYmhyuIGGq2nEbdx0Vo7ikePHRB8m6wP YZhVKCy1wLAWstUq92JKkxJiYMyUx4BoaIRD71+b66/BtgvTORu48A8VKjD4YRF8aJk+ DaWdOcaamHqKx3vxwWv9fWAeqts/Rd3pXg5x3BerNCOBG/W9ChCn8h6bQ9RggSls4y3s 90ZQ== X-Forwarded-Encrypted: i=1; AJvYcCWRdjWHdacckvo0CNfBWes8a2oP8Gm9hjgMYJ49mW2di2b5uuYV2IMYAzhoRkEkBXlbBwDJnmHGAhjwwKkemDx8VR8= X-Gm-Message-State: AOJu0YyXQsZPZvO33HAeedOJvMJtpnVq4gll236F4Ym8A567fOTWz3yM yQB/4qBdEIJtTL/NlYVL1QB6ooRZ3WMk4M9wXhdBhq0K7raYoBXk7nxKys8h4dULByIYmM/ZBkQ exMdB+s2x8OIPuLjxp3hz6kN7CE+NTA/zXrHP/g== X-Google-Smtp-Source: AGHT+IHWWWOkriPN+KE2CITqDSoNEiVlJsEhFm+lzJh/A8Jg4Wdvxi/Mv2AisOMO+RU+t5zcPZFRFSgiNLS4Lk4twq4= X-Received: by 2002:a50:9e4b:0:b0:57c:5637:b2ae with SMTP id 4fb4d7f45d1cf-57c5637c846mr7651818a12.12.1718119480355; Tue, 11 Jun 2024 08:24:40 -0700 (PDT) MIME-Version: 1.0 References: <20240611141849.2788693-1-abrestic@rivosinc.com> <6b5392f5-209d-4d3e-b5c3-ba875bf8416d@redhat.com> In-Reply-To: <6b5392f5-209d-4d3e-b5c3-ba875bf8416d@redhat.com> From: Andrew Bresticker Date: Tue, 11 Jun 2024 11:24:28 -0400 Message-ID: Subject: Re: [PATCH] mm/memory: Pass head page to do_set_pmd() To: David Hildenbrand Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: EF3B080022 X-Stat-Signature: fturg4ziamm6joy4wofiyaxwqg31hmcc X-Rspam-User: X-HE-Tag: 1718119481-842294 X-HE-Meta: U2FsdGVkX1/mEcTMJGFQAWBHvfK83OHs8T5xsbuRHPnws1GIJzIIQ4vy+zBJUDlBIva6V3/el3Q1IG1cvcBw58ZdP0toz+fxFWFIfyGsEmNrtWNsAU+A3708xTqXdxPmgvJMvFWzYnC6/eSYeDIrTMkGOniRKUQsPrnU6b6ajblnVmI40058eOzc3E9zfN11brCwZHw4fxCDoBIzu6N41aH4Ba8s0cwp1WJHi7l0RbOJlVPdDxxcbFGEXv0ovJSDiE6bDwB6dfySc9CnSnCutBn5YiH6DkGqhxw0tbvwacXAbkQMqbPOggA1dX4qIGm4s1UQ3wdsALzcBbTAbIDPPvYUQIGDak9Y0W8ko4Bvm9/o8OWXkXSyPP0cHgIzpHGzVhj7TfyCflDkzlOfghozPkWSTCc7lXK5gQWl/+Sw2Vww31Xmino0qLfDQ+8P0PWoG02D10HMJQ2l0hjmQ3Y3jsfFV+gTzWbaY4PQrWOoip/tB05PazIB1t+inu1vG8kuD6zLKlVFiVTTAXyJc4SX88dKVJEf7mD6STfpCt4iBycbxml7JdBlp8I5RcNdkklg8sgop9qmIuiCTsj838dW815ITC9F+OVnIt/xh7o2iXTqTA0L9gHtKm8OIzKT3Qn6AOC4dH9ue1jvv1Z19ZDJIaKPmPm2ePTMYE9D6cwIv3RiVx5iYeLOn12IyPaGL0ryvJd63uRmEsUXrZcqbCI8dJgdHj8qh5dDNApAtrwNMFCj5QUX7e3veqQINKJsSgRHe4APbIhg7PgxPX7fORclszCDIHCQaWFHobKJ61K1dG7OE6mPBP/gTwbLwRIINlAVUOqKe//c8bejhYg86fA+pbVKjlYpohcF9v2boetrOOiLnDVxrPrbseqQ8sPh8IrbpebwZ8w9lQGUv2Dm36sC0WQHA+u9JrxFqXvKaC44x5O02NzPbwkS0ikVcU1JA6yrjnytjmCnZJJ+C5Oc5us rRHCRGnb /4W/fL2KfvztS8OJ3EL1ma1eCJeoVX+2ojCZ6d61q+Dybv/ZPptiPrzgApPed4Z9+8CQeHvc0l6JXGs+LorjMWEz5iOms3kVxhYVVnQXJo6Hsaj6wSE/MSA7cT68hZwkzF3su1//AgLHgxbBk+PCmwBJTkbaszaVPBrFzvGr1NmlAcBsUQWaF9L51PhS+3a3Jrr4uMagwpID4R3BE8bAydwRC1Sp8pFwfak+fp2srpqoXPkgL3ARr8ts+rGVT3UZZAuWgpx7DqPz27raRtoaSbYcbWtZW47S9VwDsZRBd/mBeblD4dcwc4NVYKw== 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: On Tue, Jun 11, 2024 at 10:46=E2=80=AFAM David Hildenbrand wrote: > > On 11.06.24 16:18, Andrew Bresticker wrote: > > The requirement that the head page be passed to do_set_pmd() was added > > in commit ef37b2ea08ac ("mm/memory: page_add_file_rmap() -> > > folio_add_file_rmap_[pte|pmd]()") and prevents pmd-mapping in the > > finish_fault() path if vmf->page is anything but the head page for an > > otherwise suitable vma and pmd-sized page. Have finish_fault() pass in > > the head page instead. > > > > Fixes: ef37b2ea08ac ("mm/memory: page_add_file_rmap() -> folio_add_file= _rmap_[pte|pmd]()") > > Signed-off-by: Andrew Bresticker > > --- > > mm/memory.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mm/memory.c b/mm/memory.c > > index 0f47a533014e..f13b953b507c 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -4764,7 +4764,7 @@ vm_fault_t finish_fault(struct vm_fault *vmf) > > > > if (pmd_none(*vmf->pmd)) { > > if (PageTransCompound(page)) { > > - ret =3D do_set_pmd(vmf, page); > > + ret =3D do_set_pmd(vmf, compound_head(page)); > > if (ret !=3D VM_FAULT_FALLBACK) > > return ret; > > } > > That certainly makes the "page !=3D &folio->page" check happy. > > It is *likely* incorrect if we would ever have folios > PMD size (which > we don't have on that path yet). > > I assume that the thp_vma_suitable_order() check would detect any kind > of "different placement of the folio in virtual address space", where we > could mess up. thp_vma_suitable_order() checks that the folio fits in the vma, if that's what you mean. > Question is: should we instead drop the "page !=3D &folio->page" check > that I added? Indeed that's probably better as I'm now noticing that filemap_map_pmd() has the same issue. Will send a v2. Thanks. -Andrew > > I think I added that check because I saw the "compound_order(page)" > check and assumed it would return 0 for tail pages, but missed that we > get the compound head first. > > -- > Cheers, > > David / dhildenb >