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 C93A1C4829A for ; Tue, 13 Feb 2024 22:05:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D0B26B0089; Tue, 13 Feb 2024 17:05:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 57FF66B008A; Tue, 13 Feb 2024 17:05:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 41FFC6B008C; Tue, 13 Feb 2024 17:05:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 298786B0089 for ; Tue, 13 Feb 2024 17:05:16 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C5FC91C1420 for ; Tue, 13 Feb 2024 22:05:15 +0000 (UTC) X-FDA: 81788162190.28.5C848C3 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf03.hostedemail.com (Postfix) with ESMTP id B851520016 for ; Tue, 13 Feb 2024 22:05:13 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=EhxInDNY; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf03.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707861913; a=rsa-sha256; cv=none; b=RLjpjnnbpA9i4IsV1HkaNavQr57DYoQ03g2BsOGFOhRhRs/eYqe15Clhk74TOss/ihA2Ht 41yMbxOSSWhspEdFIn3fNPR96tgg9EVK+5vblhwVktDuZwvbng1DNogLu5Sdi6XaHS+pKw s8GLtT4AAGunkt8yaSMdsm00+rLZ744= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=EhxInDNY; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf03.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707861913; 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=zxTPnHMwho/QvBEAp6J5gSJOcoigdJFb8fFY0i0+CiE=; b=iYgqku3yGcdBfwKWaHFliY7CFQ4IPXG6grUhUt8TJ5JtZLnDMsYZcOVMg4ZY+aKgvX5QHc hl4I25o+WEHBn/4jSOJLhc+r61MNrHtfQqoKdonZrkOHW8efq3iQX1OtKuFlAiRGPcAx6i ljIpGFNL4vwUXpo+wWw07y+IZkf4l6w= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1d746ce7d13so41762575ad.0 for ; Tue, 13 Feb 2024 14:05:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1707861912; x=1708466712; 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=zxTPnHMwho/QvBEAp6J5gSJOcoigdJFb8fFY0i0+CiE=; b=EhxInDNYN79KoAoJLgWt/P5uZXe7Cd7U7YP33Otl9LSmcDMS/7TXDR1ZwKMXjL2BFG BiFIRnkiqAAaysskZvWG1nuU0wbm3WYZJ9YjqXHzNYLv8ISt9BDkWRF6TJdcl1a03Bja Afx7a0GkhOFnNq7unrOTntmIw2lnRM35C6oIiWVMGt2CoI6ME2x0+pqNYAP+fTSg4X/V zSSW9InidHY9/gmptM3J0s3Ut7DR4VODO+zxUUE+PWLmDcfInK2Hqqa7Y6aKseGTtoWt wWisiSFCfebo5PuNyLYQzWEKxDxwwwDQk5lQRLKG4enpKNwmpJP5em1N06LLEDm/SFhD xyEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707861912; x=1708466712; 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=zxTPnHMwho/QvBEAp6J5gSJOcoigdJFb8fFY0i0+CiE=; b=hxO8h3tProxZmqRQcG5IyEQ+wnEqTXqI6uHe2ii62wR0TccK8PkmILg1b3s4p/Bcip PH+Yly9UKA+hYM6WzhM4Giz2bgFEl2FuwKZPwwAf9svUW77FVor/gH8hVLaZPtmY8ufr fEKlAIgeYIMo7UpnkJsws4h50wiEjfk9IrrWglwPyYzCbieT8MjHatvuwWegJBVjky6l zGJ7vnOj+jzKlNLby0Kh3+WZinDN4AI90zrzaldobHyfWvz5F7EVseWdFZlvFOSqDCNp HPKbA+f19LZ5YMMvUFKTZxGNBNSqJ2XS8qGdbO6pmz5HuT2N9Y/Qd/w8xr1+ja2aGxOU eEwg== X-Forwarded-Encrypted: i=1; AJvYcCWRiD+AfMQ9GPhjEU+aHI56jqeJvscWB/CcqP7pCBXI5ayLWp6M7VU3gRgjJBrIpc3QaGBnlB7Ys6tQkfo2wSCTx84= X-Gm-Message-State: AOJu0Yy05iK+y88f2FX9/MMoVT0+zF5haDkPV0eDNN4eCG/0EQDCPggV t19BW0wGnkloDvSQCoN7Qm7/7JbaLeQH7QOkaTnY3nOjLYmflRVNcamo6/nDCZE= X-Google-Smtp-Source: AGHT+IF82en1msSr2UUhz5P7myVs3qqnSdr1YnVJOITnYKQsqXLIAKVz29FyzyRjKRLmgtgEUGksBg== X-Received: by 2002:a17:902:f54e:b0:1da:2122:be72 with SMTP id h14-20020a170902f54e00b001da2122be72mr877913plf.62.1707861912460; Tue, 13 Feb 2024 14:05:12 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWNVslcy2CAz1NRb/5d+KN3jJLtTQJtXWrTgq/ta8v3FFRBl6CGiVGbsxOxKDs8m422Tfcq+8vCkdU+sYP7LGeX++phm+S55+t26MXMMsndkwwqRnwnU9xZg2Qgi6m/5l3O0VrPOkw9FbLFt1NWtZtryQlowAELa9JkEnPBQ0GrygFTReZIowO/4rLg8f+I7l1HA95NVGHE4YTrLE3iFDiZRboLYSS3YKTsLLA5LbBk5iueCIQUVyhOpfkINgrxD5PSHWE8B015H9REUdxQPXoU+/tVqkS/QdjvmhXJCcsP+ArU7MDdjrOz+M0pX6gIUqgmKcXNXBZldPXK2iPEWrJRrtcgd+kEbeCr9M6oVZWH5bQhn3BU7NRnNRHGSprdqdBbZ3K6qah/usHW1tB+c0gBSzP7rhQ6IlGVzUA= Received: from dread.disaster.area (pa49-181-38-249.pa.nsw.optusnet.com.au. [49.181.38.249]) by smtp.gmail.com with ESMTPSA id l4-20020a170903004400b001db45bae92dsm1056308pla.74.2024.02.13.14.05.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Feb 2024 14:05:11 -0800 (PST) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1ra0tp-0067eX-1P; Wed, 14 Feb 2024 09:05:09 +1100 Date: Wed, 14 Feb 2024 09:05:09 +1100 From: Dave Chinner To: "Pankaj Raghav (Samsung)" Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, mcgrof@kernel.org, gost.dev@samsung.com, akpm@linux-foundation.org, kbusch@kernel.org, djwong@kernel.org, chandan.babu@oracle.com, p.raghav@samsung.com, linux-kernel@vger.kernel.org, hare@suse.de, willy@infradead.org, linux-mm@kvack.org Subject: Re: [RFC v2 03/14] filemap: use mapping_min_order while allocating folios Message-ID: References: <20240213093713.1753368-1-kernel@pankajraghav.com> <20240213093713.1753368-4-kernel@pankajraghav.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240213093713.1753368-4-kernel@pankajraghav.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: B851520016 X-Stat-Signature: pe3811jgxj4f74ucb6cqtywfcbfq8sac X-HE-Tag: 1707861913-632701 X-HE-Meta: U2FsdGVkX19OfkgWHJURJCXgRPR6meLldNNSrM8KLy2DuDVhcTcPmFec8YxWONOOwi/FmbVv/PILcdFXENiN2UiFtr3ZC9DvxacKTPBm4dE3vRwD9oHRlUQDgZE3KMLqkhwAGulI93Xtx+Zj3i5DLGjvuvqOwqcpqGrFoE14BW9fecKzY7oC0QsQVhbeX3iGkRlcgwxjI7jBRGAgs1+o5lMdv7N7Pu6o8+Q+GUQXQnqBh0jrsmRqtos4vzlDDlPxeCMe6kh6UsLgPIsrrpuuiimWZg6CNWR9PMagdPxTRz98PMNfHSS37xBj2IcT2z1YQiz3bqkotMGtDlVJJVqDq7mHm6n8HGHrwBkfapBQZn7LUjOa2umi/ZQySjfRgSGBBd9Gk1xVz0drk8vdeVjNygnky/++YDO1tL3FqZ0aWx6SN18De1ZMonmQu4JZF/umcm+AAZdPxSSpARfSQHt51M4hBGF06Pe1ajmSNhluGQFH8zbveBM3ZgKE27j3Wi6+B8A3hKVwRgh3Tn+GmB6fYKCPrR5uwyv6NeHcVohKo0Sh0RJgvMTlIAiWpejBQeLg5uhqQINWgIOP1ZP+eZmOWpLvS3OXO8t6kQLdmmZk6bfoe8To0mI5K6TGhBoSAF/ADm1B+W/BaavRnMJ2Fr6oUVA1lFS3D2f2mi88oeQ+IFV0NCvQE1R7E+zrHS6GSCt/YGz9ZmCT10MzCnUKGzYruO9APWIJu526WslEohtduYh6axAqSgkKJHk8TU6dASMgWt3kViY0jxHVtuJr7ElcXMCVFjJ9uH8F23ee47VbpkB/rVuPUPGZqVP/cWEe4J9wHj/9oWxeAab0GYrEKCUwcUIIW4RjqRQBvqEEsxE8SZPoodLp/WXPv5QN4+u280qzmD5tS7KUGr1BC68q4/wpjQnP5K5Xxdz3NhwiugpXDBNuj5R+VCGKFeYWz+rvCIt5w/SymuDdTnOyhnEc4Lh AZPSHyAb YK1pC3x/dVxGrV3B939AxGxaPl0owiEMIikjU/FTFvblkzeC0NVLfCwQiMOCtvQO9QENKp6zCbEKRjQEBkiqnMDz3aWfPtFIkZaBc4FiqdB9eBkZL5u/mS6JRZFDfHR/6VRCrpkT+dvfcYq+/TEnsdaSQBPTiG7rsSENOeIEkvVsiIhBoLV9OZCH6ZtgWJH6Y+MOQ2ia2CcXY+5RZmzwfAH6z3afN+tJLtZ7AS6TxNO7ycOa59EshlhBdpJVsHxiRzWTFrFrTjOhXde4sF7vyC8zXJHJvHxhkfW9XEJF100VdACDgByi1bxxLyfTBQB7tmHMqSUr3hcxnRkXrQ5mn0ZRzF0B6a1cu4yV3+APrgQ4XBxpt1J4jTk80Ra3lHmW7pQvk5MJZym9/DCP2DGBCih5QiwGvI49keAcHlQVYukoWgc45udPZenSpJGuLiX+GxOdIfUZuf4IfdQg4K3O75rpjy0Vxq1xa3OeI+XtURbdzOjve7wM6Xa/lqeztVq+kcRKtDE3htxe4NYPrhKhDA5oZgsFItwnfUSB2TdwGzhhsrPisQFHGXq2TihIZiYcJ4Yo03+K233r62kQ= 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, Feb 13, 2024 at 10:37:02AM +0100, Pankaj Raghav (Samsung) wrote: > From: Pankaj Raghav > > filemap_create_folio() and do_read_cache_folio() were always allocating > folio of order 0. __filemap_get_folio was trying to allocate higher > order folios when fgp_flags had higher order hint set but it will default > to order 0 folio if higher order memory allocation fails. > > As we bring the notion of mapping_min_order, make sure these functions > allocate at least folio of mapping_min_order as we need to guarantee it > in the page cache. > > Add some additional VM_BUG_ON() in page_cache_delete[batch] and > __filemap_add_folio to catch errors where we delete or add folios that > has order less than min_order. > > Signed-off-by: Pankaj Raghav > Signed-off-by: Luis Chamberlain > --- > mm/filemap.c | 25 +++++++++++++++++++++---- > 1 file changed, 21 insertions(+), 4 deletions(-) > > diff --git a/mm/filemap.c b/mm/filemap.c > index 323a8e169581..7a6e15c47150 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -127,6 +127,7 @@ > static void page_cache_delete(struct address_space *mapping, > struct folio *folio, void *shadow) > { > + unsigned int min_order = mapping_min_folio_order(mapping); > XA_STATE(xas, &mapping->i_pages, folio->index); > long nr = 1; > > @@ -135,6 +136,7 @@ static void page_cache_delete(struct address_space *mapping, > xas_set_order(&xas, folio->index, folio_order(folio)); > nr = folio_nr_pages(folio); > > + VM_BUG_ON_FOLIO(folio_order(folio) < min_order, folio); > VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); If you are only using min_order in the VM_BUG_ON_FOLIO() macro, then please just do: VM_BUG_ON_FOLIO(folio_order(folio) < mapping_min_folio_order(mapping), folio); There is no need to clutter up the function with variables that are only used in one debug-only check. > @@ -1847,6 +1853,10 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, > fgf_t fgp_flags, gfp_t gfp) > { > struct folio *folio; > + unsigned int min_order = mapping_min_folio_order(mapping); > + unsigned int min_nrpages = mapping_min_folio_nrpages(mapping); > + > + index = round_down(index, min_nrpages); index = mapping_align_start_index(mapping, index); The rest of the function only cares about min_order, not min_nrpages.... -Dave. -- Dave Chinner david@fromorbit.com