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 DEE34C36018 for ; Wed, 2 Apr 2025 21:17:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 800A8280003; Wed, 2 Apr 2025 17:17:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7ADE8280001; Wed, 2 Apr 2025 17:17:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6289B280003; Wed, 2 Apr 2025 17:17:03 -0400 (EDT) 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 41588280001 for ; Wed, 2 Apr 2025 17:17:03 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id CCC9412092C for ; Wed, 2 Apr 2025 21:17:03 +0000 (UTC) X-FDA: 83290363926.17.BEC008C Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf22.hostedemail.com (Postfix) with ESMTP id D66B9C000B for ; Wed, 2 Apr 2025 21:17:01 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=wZ3xrLH2; spf=pass (imf22.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743628622; 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=Xc/zZ+DuPIPBwVNZBMJ0HujjjSUEiZ7ohcynsD7aA4A=; b=hfUpbcn2hM/GwssC4+6G2MzUuMQM9XHPL7c8qBTSYuhWKM+f4qOaRdrAp9Tut1M70yFdCs NPusSKoFOoHj2yLLEnWVYZnxWtLrxTvDjoysV+edEK5enRhuhmaaNpTN1DTFSP5hQIVo+G LYQPfAuG0ONxw44qaLbg/PjNz2voEek= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=wZ3xrLH2; spf=pass (imf22.hostedemail.com: domain of david@fromorbit.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743628622; a=rsa-sha256; cv=none; b=AtZASz/9zzbHmnFxfq487UNuhKZdEtVSwhIDJezE0e/6qaNulaswWpXohshjB2MNkOAteM 0D6jQfNpAy1NkGMElEPAi4kbchURJH4bvaF5Z/tB7eP9CO0u8MpHSS8/gY5wrnXqNqVxK/ UQsV8ZZeqH87h6fm/1tRxWadZMr+a7U= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-736dd9c4b40so520054b3a.0 for ; Wed, 02 Apr 2025 14:17:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1743628621; x=1744233421; 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=Xc/zZ+DuPIPBwVNZBMJ0HujjjSUEiZ7ohcynsD7aA4A=; b=wZ3xrLH2KKoMCP4skvZc9bI1EjC5m+8tnGltCQqpqKmXafxSc/QG7l0hhAI8yaJsVs adTXvgJTmibM3uSpXe91mH7r8sSSBECftm9cOt2dcZ0JH9q6yfZ0EmHfYS4I+ECau82I viyWx9qGDy53S0i7mQ6OoUHWaX+c0SaU/D7ILrKBEKwy8W9wp3V2DZLAnWwDKVmekG/k tkg9CvN6Z/YIMDtVbkzUYSGIoPIfMt+ZsvGlurAR75kCdk6dSscwQsNt+VIf+iYZCAdi 1ektO+FIjA24sTjzXxR38UWXPTPmc4b3pO7W3lgzq0rFSLkAMEkSGquN3z10IaDKwIym tLqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743628621; x=1744233421; 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=Xc/zZ+DuPIPBwVNZBMJ0HujjjSUEiZ7ohcynsD7aA4A=; b=OlCG+Ckwdtg5N9/fmHs/hRHRmMofPNCP9qLflZAJqgkraixMLyIFn1t98FR8SkPD4R On97oFCYu4H5zv3MJRFMlCN+vKPjJMTUk6xghZAPw212fHjy2ZrQ+bbw8jJ+VMDdK7HO Zu1JSjlN3HrxHDjL18kNHmz1sbW8gFdzEDuzltrEp323UdzxzYgTYVSa3kwvZWclxcqQ sn2zCVlMtkUf8158G/NrJ2q/0iVJkARxVmFl1VuuorDg0W26NTajMDGRH4xtK6zFR8GL ID61gV5jN1j6YN3mnLwvmgBg4kfZdO/rrpMoNm++aD/5g9Rm+748KPFrbqoN92olBu1f mSag== X-Forwarded-Encrypted: i=1; AJvYcCWJNJv1Ntvh/YXrbYGt1D7ZKQHbTVkl1P9cGog13RVMKj/QNSI/u0cePgCrYNFk/2nmeg1Y+rIzVQ==@kvack.org X-Gm-Message-State: AOJu0Yw4c5+P9qo2qmAz4jq7ZqEVETo87bSzPO1E9xiRT/oiiROrvXd+ hT2NBJ5LuQN5yA5REJH62BlMCHbGkhd5N3OTsWyLcH1sADNYLW7av7txxE9JDg4= X-Gm-Gg: ASbGnctohqrLksIQj7SLOA3DSOsl1w5l5gobByo63o1Zj8CKWRiWhLYkPGHQ87Akbgx veClSkjVigPxzMEd725mIYKwREjZN0ZfmBLGMJz1TF/vUcqXcE64tvC+RcA+y6uVrJCIDyB9BZr WbEU13bZI9QTd7RmobD1WwAhMZmPQGi+CZcPPXnsihpjg37pty17Ppuj361T2h5o88cCWx7Emgc WmJW5R7xPIAyZrDFBOZJrEA7iE00sQoYUoSoMEowFVkFRlQn+NEBbT0nk+/aapbxhXJLpishf9e eMKQOeV9l8W23aWH1EiofJBrki9jrp6iM9dsxAII8BB0Emha32yM+pRNQkqBQYed/Bb3fdfa5mB jCnkGE2Onbdph0M1C6E3/Q/rL7IHZ X-Google-Smtp-Source: AGHT+IETTieNbw/k3oeNyL1K32Iu4F4JpFYjFu/JJSEnpgavTw/4tVMQ23H2f0Cx5addp90wkEKvIA== X-Received: by 2002:a05:6a00:4c17:b0:736:4c3d:2cba with SMTP id d2e1a72fcca58-739d6457e2dmr1406094b3a.9.1743628620577; Wed, 02 Apr 2025 14:17:00 -0700 (PDT) Received: from dread.disaster.area (pa49-181-60-96.pa.nsw.optusnet.com.au. [49.181.60.96]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-739710636a3sm11855554b3a.94.2025.04.02.14.16.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Apr 2025 14:17:00 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.98) (envelope-from ) id 1u05SC-00000003h3r-2yeA; Thu, 03 Apr 2025 08:16:56 +1100 Date: Thu, 3 Apr 2025 08:16:56 +1100 From: Dave Chinner To: Michal Hocko Cc: Yafang Shao , Harry Yoo , Kees Cook , joel.granados@kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Josef Bacik , linux-mm@kvack.org, Vlastimil Babka Subject: Re: [PATCH] proc: Avoid costly high-order page allocations when reading proc files Message-ID: References: <20250401073046.51121-1-laoar.shao@gmail.com> <3315D21B-0772-4312-BCFB-402F408B0EF6@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: D66B9C000B X-Stat-Signature: 1qq15f6yjr5pmz9jw58g7ex1k4yp5s33 X-HE-Tag: 1743628621-727577 X-HE-Meta: U2FsdGVkX19AGBhdMi5rOsEeMnQ02ChZSPVUz2B9Uj8f0u9vTAqdY4k2C9E6B7kzgQQ0FWvbeYeS2bR6RNoyiK/WzdndnS6g7HaIfoL1knkhX2ND/iLhZQv0bok5Eee+NSxUtkXyom4QRLHp6YUhP7l0rZeKAF4W9V2qNhIMnjooMplxqP06UlZ9zumZ19+0nTXTitOZ7vqXmJbiKtioDtqwhXJEQS10bZah40V6oaVyDBiPCkEDoHnivXMH/x4dQbwYOAwmiFxwJErEXmK7p5ZJ5I+lYXDcHa1MnY2GUIabzB2XHoXHO2aIzJctae3R/OeqtOVzL+kQxVL8asiEpJksz8zpvQM55PykLwX6JdDgfDz7wzf06NxWRxLY9Pc8D1MI/VM/d2dAbb6oVjlXJtqqO+jVvrbGUS1fUsT1OQ/oyvf4a5S2rbOK8EspvqfoZW/g4KVOBazTEKot1xVe6v63nyP+MB1tTBZB8ACS64I7RIrEqS1E8SzQQ5eB7rYz590SZjTeRpE0IFtBdczOM6L/KOAo0qG1vcUWws4taPacnu1GIzLmv+/0U8JjvzxlFfo9SZFyppMwlLN8utKPtGFGR7TksYCL3axeR4H9D72qi1ax2lnh4nqHdOJzTYeMOiaaoeF+z653Uzdc9l3tR6hajWzrDcbnDAgvsYt8RdaPPKOfsNMaarg+xm309Cm+9+gk7stCwzzKl91JNboBv7R/A9wy2nh7YDEkfxQtz8c3QAENfkXMeg0V1qIRyvF7WgD3OpvNqZWxCB0nk3kXz9QmcAXuwbTJbpuGnsebm4H3MmcCUXXZ9dBFOiqYXVVMOkiocx6bZZSVxgKJ2mPXh0D+wxfVcAs4G0pqPfmKbByCo4Z0ePpIJbkZtJWZMzu1Lv1BZXKl8fRNHtwjFmdkfzw4FnhPoFBu4JXzd0ofk9L78DV6d3mDeuMufm044CvMyIAhCA0A4Sql3OHxF5F Di2ObGeg GCSZiSZhQasfz6rNqfDAXnMkGQK+s+YotR0iSJ/s4uwe0t/Xom1Bkw5QtLAwZVJTZ6XSyFtLlyP8OyTYkBP9b+SvWwwYUFb60BxyK/pfH+zeC/2Ux1763Hq3PGKzKTWphE6kGQylHDU+8pFgs/BMubPvIYRqOUUqWSLeNZoBiiXQDKKjlQznrY3jFrlYsS6yKHaXKhtXMHe746I2OgFUQPSKfqsUly2qne4kBB7z9h819+AA2ryUjSYXBXzzkMBpB6esgbmbPCBPpx/0i+QskBE7dLlSIsyW1jx4N/ymGUIvv3yWeR/8s/uqmKCD1OlkoKpD09ozzZs1dCaU0IsA/jpdAhDqHQliUN3xtL1QANe8JLb9AUg4xWNCSNDRnDPRpVPfUGkL2DMdaHhHa85cGa+6NnY1X+THacRaqdSkoEGAP+KjdoFzMW3/ZRig87uI5WPsI0r55uafjmPAU9Xt0rVnTE55hDL0DoSAebTY60DsNIxE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000058, 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 Wed, Apr 02, 2025 at 02:24:45PM +0200, Michal Hocko wrote: > On Wed 02-04-25 22:32:14, Dave Chinner wrote: > > Have a look at xlog_kvmalloc() in XFS. It implements a basic > > fast-fail, no retry high order kmalloc before it falls back to > > vmalloc by turning off direct reclaim for the kmalloc() call. > > Hence if the there isn't a high-order page on the free lists ready > > to allocate, it falls back to vmalloc() immediately. > > > > For XFS, using xlog_kvmalloc() reduced the high-order per-allocation > > overhead by around 80% when compared to a standard kvmalloc() > > call. Numbers and profiles were documented in the commit message > > (reproduced in whole below)... > > Btw. it would be really great to have such concerns to be posted to the > linux-mm ML so that we are aware of that. I have brought it up in the past, along with all the other kvmalloc API problems that are mentioned in that commit message. Unfortunately, discussion focus always ended up on calling context and API flags (e.g. whether stuff like GFP_NOFS should be supported or not) no the fast-fail-then-no-fail behaviour we need. Yes, these discussions have resulted in API changes that support some new subset of gfp flags, but the performance issues have never been addressed... > kvmalloc currently doesn't support GFP_NOWAIT semantic but it does allow > to express - I prefer SLAB allocator over vmalloc. The conditional use of __GFP_NORETRY for the kmalloc call is broken if we try to use __GFP_NOFAIL with kvmalloc() - this causes the gfp mask to hold __GFP_NOFAIL | __GFP_NORETRY.... We have a hard requirement for xlog_kvmalloc() to provide __GFP_NOFAIL semantics. IOWs, we need kvmalloc() to support kmalloc(GFP_NOWAIT) for performance with fallback to vmalloc(__GFP_NOFAIL) for correctness... > I think we could make > the default kvmalloc slab path weaker by default as those who really > want slab already have means to achieve that. There is a risk of long > term fragmentation but I think this is worth trying We've been doing this for a few years now in XFS in a hot path that can make in the order of a million xlog_kvmalloc() calls a second. We've not seen any evidence that this causes or exacerbates memory fragmentation.... -Dave. -- Dave Chinner david@fromorbit.com