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 BB2CDC47077 for ; Sun, 14 Jan 2024 20:55:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEB7F6B006E; Sun, 14 Jan 2024 15:55:22 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B73FC6B0071; Sun, 14 Jan 2024 15:55:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C76B6B0072; Sun, 14 Jan 2024 15:55:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8817A6B006E for ; Sun, 14 Jan 2024 15:55:22 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 4125F1203F0 for ; Sun, 14 Jan 2024 20:55:22 +0000 (UTC) X-FDA: 81679122084.25.E240E07 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by imf24.hostedemail.com (Postfix) with ESMTP id 5A4C4180006 for ; Sun, 14 Jan 2024 20:55:20 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="K/S3vDGX"; spf=pass (imf24.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.167.42 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705265720; a=rsa-sha256; cv=none; b=rHFFIBI9mmtII1+rmBK1dOmYz9cJFF6EJx9e6YIq4QcOzHP4fOnwUNo8U9xpnO6RcA93pz EfEdhXeqKxVgrCejfrpGiW13Ow7Ku+V2ShL/DxFbuhTKB4CTkcztqEKHAx1+NqS8AUFp7J RG08iiUUXOfzwJOCsqm2cc5MIrzH7vU= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="K/S3vDGX"; spf=pass (imf24.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.167.42 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705265720; 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=OjdwhhShuxIM1mqbVlzcS4sQ3O1tzPChgxO0uqhf+Bw=; b=NO0F29ROl9B7ADx6qxrZZaMtkCaLYYaLuTqi7DYkp9T9lwQgadBZ3RPUvlPeAiTTLEWRuG f9qhVitjow3e8K7KGaIWhh/8d9thOc6PcG1p9BrBcvlq9kPVZkXDH9mrKeRIStYMv68Ljo DbRsPgers+njlFKvc2g1WgZb8xtChSs= Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-50e835800adso8700963e87.0 for ; Sun, 14 Jan 2024 12:55:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705265718; x=1705870518; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=OjdwhhShuxIM1mqbVlzcS4sQ3O1tzPChgxO0uqhf+Bw=; b=K/S3vDGXvGlPZgm4ZeH740R4w7sISjV5ylWKNhD4cqwfsIqWeHjU20HY4cflIGaV0U Bwwsds5Y5NknxpZdfdg8l/UIhu01JMPs7kAGKbvasyBstBGGUv9stiQ6tBNOojXeXRT3 9NNO3qySdymNbxv7fEmnB0gFc9YrHpfR7JyTcSfp7NdD/NOrHTQWMaySRFqieW3vWo9x cXoQnMv/WHMm4ZwbCmLzqVvKZLgaOyelg8OlheTQrQWTrTYaeb0C3c/jjkMmTL0ayhIL i/3gau+8b76pMygXEMjeqvo7Pm/mjLmfoatJYzeaQaWhW83pIGmjsRsGXrjY2zhc35n6 gSTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705265718; x=1705870518; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OjdwhhShuxIM1mqbVlzcS4sQ3O1tzPChgxO0uqhf+Bw=; b=xLjsLwUjGYLbcHYoP2yKdoomWF9kcLjOpv2de5I2gyGWZTbrIA1L31dNkRht9dzKh7 zea440TC/SO+eLldRPTdJ7LTkfYMUUOC3Y13RAfxlCDIghK47Kp1BKASOIW5E2PmbQX+ SMmzhOfgj/bhfhFuLLo3/hc7FH3LN1BhWciVphOXQUXjD+JoxRXON3gxUOvIwhQNMHUV itFj3/o6hs2rSCSoL+sGPxuhLdBRjeycxcOzcz26yiZmPyqDTzHCgrkdnUFPuCK/VNey yTlwIZCBLbLnlHe5G/bzQwPA65o5RgoWw6Jjm+m0zRcGW4vNkRks4rSEN3d8AhFUVQK/ sznQ== X-Gm-Message-State: AOJu0YwK62M298RmCiZWPz4aB0DHIEZ+l++UtP+5+ybsgN5jR+KAMuw8 YIU10k6uHdxMDBtK0ll9+nY= X-Google-Smtp-Source: AGHT+IFSg7sPPT5du0kGDtu5w62WANdm97nr297wUbBkWA5r0LG3EslmUwuam5znWD2kqpR+oYiCFw== X-Received: by 2002:a05:6512:39d5:b0:50e:902d:b44 with SMTP id k21-20020a05651239d500b0050e902d0b44mr1718048lfu.8.1705265718182; Sun, 14 Jan 2024 12:55:18 -0800 (PST) Received: from krava ([83.240.63.77]) by smtp.gmail.com with ESMTPSA id vh1-20020a170907d38100b00a2daf80d017sm823904ejc.6.2024.01.14.12.55.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jan 2024 12:55:17 -0800 (PST) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Sun, 14 Jan 2024 21:55:15 +0100 To: David Hildenbrand Cc: Jiri Olsa , Ryan Roberts , Andrew Morton , Matthew Wilcox , Yin Fengwei , Yu Zhao , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , Kefeng Wang , Barry Song <21cnbao@gmail.com>, Alistair Popple , linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Barry Song Subject: Re: [PATCH v9 02/10] mm: Non-pmd-mappable, large folios for folio_add_new_anon_rmap() Message-ID: References: <20231207161211.2374093-1-ryan.roberts@arm.com> <20231207161211.2374093-3-ryan.roberts@arm.com> <41dc7dff-1ea8-4894-a487-88d46ec2b2d8@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <41dc7dff-1ea8-4894-a487-88d46ec2b2d8@redhat.com> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 5A4C4180006 X-Stat-Signature: jp1xjf3i3pehjq1hkht5cjoq4n9zmwc7 X-Rspam-User: X-HE-Tag: 1705265720-543456 X-HE-Meta: U2FsdGVkX18xtwCzVldrtKSp2LTixgJeFPPnRZprT6xQjcqJOLcnrgFOMHuwIx+Kezy7JisXp70m0Zcb23zKrlTalUSm9xhNhzuR2r5Les4mbe3D7c2fUYb/SnD+t4lh+o1zeSQjHgS/P/f50+LOBy+HpFCDeAfj1yKqfdMmpn1IgEjwxG9iHEZDXrc7Ne/inv6F3O0Xx5tviEHxRkvqdjIwexHKGNz4dCnlLN6ihFbU3+gHGS+Hc7f3aweT4Xt7IwAjHvwBRo+xd11M4LP5qG763cqYtDQ64cFHscSCsjSlKzrNgyqQ5IYlDISEshEaFQuaRWPBqJEqpo9W4VytnZtXQE3SsBuPRpRTjax/GbUK/wU/LOAXeEqdNCcsqHysgPJIWiDMQoYd98ydFP1sOJNq3+IvJBF2yubd1gMuC9+Dq/BFJpYZMFzFd+zsuaxevQ47NxBdaEaVdDUYNqUuIYRHasFtBHOIlq8+JHlMq0zlSjiCu6ePr1B9L9BEcigUCIFcGLdgeHlFIfiXorBHvE3LUDvikfqOQfqRi78IBncwoWqYmbS/BuZKKQDc07H/VKh4a+B8HA0uBotuBMrmLTb0/CXZr5I0CQo9sZOMptI4syQKG4HDhjA8OGeng3jD4qLbGzUYiMLajYQ9SvuI4j1Jen9ZgpJMxKcLnDmS0KmqizDlozkjQNiklcvKtbg5dlI44YO0hyMzkw8bMMBlhsC+sUze9zNj/tqfCVMYRo639ds1qYdgJZTMPg3qMFk1I86VRTmh2yiEQ0vMAChyDoycv4HXbqkXUF9dqibEb6mDnk46QlG5X7pQiciUjQq7AFZV6OKvoVMEHIk68B7YFcSqJ2pNwkWhWsO2NDHqSr1JiWCewSV/A9zHNEQsiqlGBODBHJMEC+mtaHTBAeP6AadLLaqCsCo+RpupTJNcd5n2gJpK0x4STd/3RrJilttom3E7LU2ssUGZLVBO2bF dgi2WAnE ypbAQrYTEdJrEpdAdojwEPnTHOpKqpbNW9zGk/1gNcuxEA2PJ3GLPwpzI/5CFCDJFEX6aQqjWsCvQWgUGO5/xy7CMTeR2wpP0q90FnIwUjl52R5bVJZygZjn2fKdELsIWq4zi7n0AVimynzJaS/q/xD9/uFpGOhtICImIGCWBFsPm707jRZVUHf1s1su8P2dxx05t9XFSP4utD6ybHLGTVCcaib6DXgj7/iqQxiE/BpnBYJaVGV8zmYYikVObaf/b1/GBFx3EVYhYgcktlpP3WhOIvd/ZkFz0qCDzEF3Im5eQE57uDNc3xiO1/P7KzpX1JK8KXe3EcXIIFQ8HcOsVMiWNCHKHbQ/IvFzs/GotPFFiORFWk6Au/XIIL5kLcizQ6xXhEcwZ2msjKYEw0Mdf3dsRPBSYZxy9VEtctl+NvwPc1cojzIMJQ57p1DIClAV3f6LwiUR/o0SPpM3Ia410PSyUqSJ9MVV2/h89D4nlkJ9uSXUzdVZYF7clwc2OjqZNSC6N2parX8O8TdvPw4mkYgAvioZezomCYxMDodQwT0YTWm9kVxMZaIRYG0Py/3KrlWUgX2rjYgQPkWO08E/M2zHNdNzveheSPT0EeO+5nAIB1c9PLop9UPDTKcSdQeofCkuubksIya/U7TQHOYdRM8oVufuIgNGFmNdvGZR5myHRn8YqZXCfAOmiHC6r8P+TSqOl5zIwPzyma0rC9Zz8Dep/w0gCUpeEshIKlKnR8XBEoPVZ+aP8mEug5rJC1J74BelXNJ9IiAJ/XpqvADj3JUfWJzi4VO8QySPVT2N6BvFP9/L6rG++0uB2Q60ebHYdPau8vY4xYlwxwoo02+NpLgbKAg== 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 Sun, Jan 14, 2024 at 06:33:56PM +0100, David Hildenbrand wrote: > On 13.01.24 23:42, Jiri Olsa wrote: > > On Thu, Dec 07, 2023 at 04:12:03PM +0000, Ryan Roberts wrote: > > > In preparation for supporting anonymous multi-size THP, improve > > > folio_add_new_anon_rmap() to allow a non-pmd-mappable, large folio to be > > > passed to it. In this case, all contained pages are accounted using the > > > order-0 folio (or base page) scheme. > > > > > > Reviewed-by: Yu Zhao > > > Reviewed-by: Yin Fengwei > > > Reviewed-by: David Hildenbrand > > > Reviewed-by: Barry Song > > > Tested-by: Kefeng Wang > > > Tested-by: John Hubbard > > > Signed-off-by: Ryan Roberts > > > --- > > > mm/rmap.c | 28 ++++++++++++++++++++-------- > > > 1 file changed, 20 insertions(+), 8 deletions(-) > > > > > > diff --git a/mm/rmap.c b/mm/rmap.c > > > index 2a1e45e6419f..846fc79f3ca9 100644 > > > --- a/mm/rmap.c > > > +++ b/mm/rmap.c > > > @@ -1335,32 +1335,44 @@ void page_add_anon_rmap(struct page *page, struct vm_area_struct *vma, > > > * This means the inc-and-test can be bypassed. > > > * The folio does not have to be locked. > > > * > > > - * If the folio is large, it is accounted as a THP. As the folio > > > + * If the folio is pmd-mappable, it is accounted as a THP. As the folio > > > * is new, it's assumed to be mapped exclusively by a single process. > > > */ > > > void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, > > > unsigned long address) > > > { > > > - int nr; > > > + int nr = folio_nr_pages(folio); > > > - VM_BUG_ON_VMA(address < vma->vm_start || address >= vma->vm_end, vma); > > > + VM_BUG_ON_VMA(address < vma->vm_start || > > > + address + (nr << PAGE_SHIFT) > vma->vm_end, vma); > > > > hi, > > I'm hitting this bug (console output below) with adding uprobe > > on simple program like: > > > > $ cat up.c > > int main(void) > > { > > return 0; > > } > > > > # bpftrace -e 'uprobe:/home/jolsa/up:_start {}' > > > > $ ./up > > > > it's on top of current linus tree master: > > 052d534373b7 Merge tag 'exfat-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat > > > > before this patch it seems to work, I can send my .config if needed > > bpf only inserts a small folio, so no magic there. > > It was: > VM_BUG_ON_VMA(address < vma->vm_start || address >= vma->vm_end, vma); > And now it is > VM_BUG_ON_VMA(address < vma->vm_start || address + (nr << PAGE_SHIFT) > vma->vm_end, vma); > > I think this change is sane. As long as the address is aligned to full pages > (which it better should be) > > Staring at uprobe_write_opcode, likely vaddr isn't aligned ... > > Likely (hopefully) that is not an issue for __folio_set_anon(), because linear_page_index() > will mask these bits off. > > > Would the following change fix it for you? great, that fixes it for me, you can add my Tested-by: Jiri Olsa thanks, jirka > > From c640a8363e47bc96965a35115a040b5f876c4320 Mon Sep 17 00:00:00 2001 > From: David Hildenbrand > Date: Sun, 14 Jan 2024 18:32:57 +0100 > Subject: [PATCH] tmp > > Signed-off-by: David Hildenbrand > --- > kernel/events/uprobes.c | 2 +- > mm/rmap.c | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c > index 485bb0389b488..929e98c629652 100644 > --- a/kernel/events/uprobes.c > +++ b/kernel/events/uprobes.c > @@ -537,7 +537,7 @@ int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, > } > } > - ret = __replace_page(vma, vaddr, old_page, new_page); > + ret = __replace_page(vma, vaddr & PAGE_MASK, old_page, new_page); > if (new_page) > put_page(new_page); > put_old: > diff --git a/mm/rmap.c b/mm/rmap.c > index f5d43edad529a..a903db4df6b97 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1408,6 +1408,7 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, > { > int nr = folio_nr_pages(folio); > + VM_WARN_ON_FOLIO(!IS_ALIGNED(address, PAGE_SIZE), folio); > VM_WARN_ON_FOLIO(folio_test_hugetlb(folio), folio); > VM_BUG_ON_VMA(address < vma->vm_start || > address + (nr << PAGE_SHIFT) > vma->vm_end, vma); > -- > 2.43.0 > > > > -- > Cheers, > > David / dhildenb >