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 1C39BC3DA41 for ; Tue, 9 Jul 2024 11:04:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A212E6B0095; Tue, 9 Jul 2024 07:04:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D1C96B009B; Tue, 9 Jul 2024 07:04:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 899D26B009C; Tue, 9 Jul 2024 07:04:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 6BF576B0095 for ; Tue, 9 Jul 2024 07:04:37 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id EDBF2C1854 for ; Tue, 9 Jul 2024 11:04:36 +0000 (UTC) X-FDA: 82319930952.25.E58893C Received: from mout-p-101.mailbox.org (mout-p-101.mailbox.org [80.241.56.151]) by imf07.hostedemail.com (Postfix) with ESMTP id 27D554002C for ; Tue, 9 Jul 2024 11:04:33 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=dTFTeER9; spf=pass (imf07.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.151 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720523059; a=rsa-sha256; cv=none; b=ntH/o/nkVGi3qEEvhPO/u4tMIF/gGE8n7g13lNtTigPizhjdxMPD0W8z9c15V5pOCcJH7H gvSNGM94BvtHPRChPE8nfUODlGIG0iUJhH7Ot2nRCiV57zVrTV/pTFgqm2qGE7vh/37UCF Ba2lYCxpugeplSAx1ZwwiN3HLf2gG+w= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=dTFTeER9; spf=pass (imf07.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.151 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720523059; 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=2YMROL98ACsOZCbRP94pX8oI7L1VGneWeIslewdStiI=; b=N/kR7Wr+Pxv7YcNH2xyMuLNPwAqt2wqOtx9Tn2FUgYbTuW7rqNZWcvrelZ+qANsmu4i2av rKyne1wd8/D25jQD+07zi2DL5uiyKdIEyOAWFCyE2HeW540lYOpH3I34m+M+zJ6yNfc9Ht evRpIqgMQju1ebpR9w4o6C160hUt548= Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4WJJ6512cMz9sSR; Tue, 9 Jul 2024 13:04:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1720523069; 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=2YMROL98ACsOZCbRP94pX8oI7L1VGneWeIslewdStiI=; b=dTFTeER9w1KiAWkewX1ODbkftF6ZHwV8ad2JP5xNGR+iy2JGrpfxqmdNhgVgqrtvjijb9J h5VJ4RU/9Klt1lI/rMOjn2DLibhblgzmojwoV8Lcml49hXbcmbJwt48TP8KfkT6sG3JbmY TjBJVZeNw+y5zamFqscYZ0U04kX2i94Q/EfpM+2GPg9ENXUryRj8znydhKV6BNAr+KKXNg T8PcGTtiIBfCrpE83jb4hJ6V2O6o9hmHGCHsrqh0foW1HZt3S7YrPuhNJOqVjm5f7XZTl5 B0ND5YGqJiKpE5kqQ26urle6qM8b1Hy8sL992+1mM1yJ5aYiovOG/1MZAAHdqQ== Date: Tue, 9 Jul 2024 11:04:23 +0000 From: "Pankaj Raghav (Samsung)" To: Zi Yan Cc: david@fromorbit.com, willy@infradead.org, chandan.babu@oracle.com, djwong@kernel.org, brauner@kernel.org, akpm@linux-foundation.org, yang@os.amperecomputing.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, john.g.garry@oracle.com, linux-fsdevel@vger.kernel.org, hare@suse.de, p.raghav@samsung.com, mcgrof@kernel.org, gost.dev@samsung.com, cl@os.amperecomputing.com, linux-xfs@vger.kernel.org, hch@lst.de Subject: Re: [PATCH v9 04/10] mm: split a folio in minimum folio order chunks Message-ID: <20240709110423.wdteahoeufrt22jk@quentin> References: <20240704112320.82104-1-kernel@pankajraghav.com> <20240704112320.82104-5-kernel@pankajraghav.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Stat-Signature: zkxcoxzswgfc7qnut6okgtttqinjjc3a X-Rspamd-Queue-Id: 27D554002C X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1720523073-389186 X-HE-Meta: U2FsdGVkX1+T4hYsmcqknATmqeOgSpwg1++drstHf+FWm/u2FlmT8t2mAyg774Pfe+YW4q4M12AzE94skcbtiPYoi38C7WiaoPhbIkWCBd62ANzf6bt+d4tf91FtCXiTbW21hBizGt9TOtcWTyf6c3XL6JWeg5FZh1qqkZpukCKp1GdnSMRPRiF6++pg3HAivYC3cvJrkZAhARcbOQYMeUtDx//D+uClhCYbUSWv96oSlm70q7ES/+y4q37Aepud1pT6kd/Av8uTR5xCZPutXpZYwEeF91AyBOlRbNcyKMOpacLd4ob7cSDjWqxL5mzY15jkFRL1N7p+E9LHRwFZqQS0mYveRCKDiRz2+8tOXgjzR23o3rbfHP8NEXg+lEL4u6F24CMTdCgwTu7N/7B3wH/H0bEvW9zwxm3oYVa1oBeLQWs1SM4nhO5SSO83HwWSsY0zYM4cG6tcKSXGBJaOe+g2Pr/CKvt9OJZlQ+0MseoXsRXWQG9XGYN02Lo+1z6wNgcO9spNKIqe5GECjhr7qpnaPrqpw434dk96vJHfcTfDaMFXiwhFi50dHGeM+xL+uTo2h98t8szgKW/4erENCFO7bGwj70B+CmbPU45sJZSUhssA25e2GCXQqnwbHgbqh++nN3/bxGNwe1UfGu95bKjRbz1Ylar3thr4oQjOk6O8n0IoutkpekODQJVFXUvdKsz1uR1+OYs1gC/6YkJ3YuDjBeN15tissbePEqSHzgFIG1gyBN17qnevN7pBHmDQAow7Ab6B9e8gOtZY1nDNtNIf1gm4z1mwawS527f2CLR+H4t/hBtf9hNs4HkVgoq7EFzWAg1+9h+PFEj7rLyUguMVfxyBYIluszLldixFq4RBmIB6nJkL043gpS4Sqy7XJ4wZrHKkx2nkl0GfjFzWpNGE6QxRVubsqOsOv/ENxQoYzh9lAulIcCoNffRY946ZjJB++QCKXK0Qoxj8aq5 MZwrSrT6 9cCVb/rpAVsK1h2s6KpBRPop+aIIyYSpwJ/nRIscR/kg8GbWyyRDYoLHOijaxyY5JSQ5oFO1dwVoOIqxZ9UR8AXo0yigrf6DI7q/iD7nUwW+US+OqjHARB9RFkZuzSMss6TflmeJBbk4aNA8lW+2DVqgBLhx2f0Nr7hdw9dVeL/RT37/I61Isy7xp2G+6tSs+GN7DYpMXFl8HeioVgYtffvvtzGkZjE26eJ70 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: > > This should be > > if (!folio->mapping) { > if (folio_test_pmd_mappable(folio)) > count_vm_event(THP_SPLIT_PAGE_FAILED); > return -EBUSY; > } > > Otherwise, a non PMD mappable folio with no mapping will fall through > and cause NULL pointer dereference in mapping_min_folio_order(). Ah, of course. I thought I was being "smart" here to avoid another nesting. Instead of triple nested ifs, I guess this is better: int split_folio_to_list(struct folio *folio, struct list_head *list) { unsigned int min_order = 0; if (folio_test_anon(folio)) goto out; if (!folio->mapping) { if (folio_test_pmd_mappable(folio)) count_vm_event(THP_SPLIT_PAGE_FAILED); return -EBUSY; } min_order = mapping_min_folio_order(folio->mapping); out: return split_huge_page_to_list_to_order(&folio->page, list, min_order); } Let me know what you think! > > > + min_order = mapping_min_folio_order(folio->mapping); > > + } > > + > > + return split_huge_page_to_list_to_order(&folio->page, list, min_order); > > +} > > + > > void __folio_undo_large_rmappable(struct folio *folio) > > { > > struct deferred_split *ds_queue; > > > -- > Best Regards, > Yan, Zi >