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 94A72EB64D8 for ; Wed, 14 Jun 2023 20:33:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D0F0B6B0074; Wed, 14 Jun 2023 16:33:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CBF1E8E0002; Wed, 14 Jun 2023 16:33:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAF248E0001; Wed, 14 Jun 2023 16:33:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id AA6036B0074 for ; Wed, 14 Jun 2023 16:33:42 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 665C7807FC for ; Wed, 14 Jun 2023 20:33:42 +0000 (UTC) X-FDA: 80902504284.27.91EE799 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf01.hostedemail.com (Postfix) with ESMTP id 9461A40003 for ; Wed, 14 Jun 2023 20:33:40 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=pSwEuI0a; spf=pass (imf01.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686774820; a=rsa-sha256; cv=none; b=U/FJrgGv2Jko/U9FIFqHgq9XCTpu7Avl9df9uMscW0dlgj5FD3kKiVegSPUz1m/6hujrz/ hUXL4gnykc2ba9Vkevwp6rllPyg+yesk++fcUDWXQjDPWI37P3tCLfobWlrEQla4v6645U NwwFFezaR4N6lEtnymPCsXlL8d6y2Kk= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=pSwEuI0a; spf=pass (imf01.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686774820; 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=pci6EDon77OtCV0BnHgINYW7IyqL7JVWxKePM0ScYBI=; b=FyFIG+pWDX9QYxeXEAowxjOCu+7pgTcAv1m7E78rTbm0pa6DPufHBxHTvHQtPau1hSUuYL bzPfbK/9C6/JXUKWdak+cYPYBthPIn+Z4kCIv8YLp0ZmRr/xwIFPMppl7ETK5f2M/B7nQ4 YnQQ+kmyemVLeBzvUygv/KP8aYNJujw= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8AB9760F4F; Wed, 14 Jun 2023 20:33:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C85DBC433C0; Wed, 14 Jun 2023 20:33:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1686774819; bh=Iu93SuweVrRX7FVAD9kDUf9pdECryvqWZ90NRtl/CPM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=pSwEuI0aIqzS/2+x/BhbgWOiPFgdB3tHAXo9/s4EEeQpUBC6DL34uboA1uV9fel// tmwtpHlh9olp17mtfnOvFdKh/SZJsYxpZEZJJ7bTf8mz1FSNkjAHrQm0Y16fIoU0dv KR9VvyNtVnVajWAOyJ6WJ+MtyO71bVnyYORfmY/U= Date: Wed, 14 Jun 2023 13:33:37 -0700 From: Andrew Morton To: Matthew Wilcox Cc: "Vishal Moola (Oracle)" , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/5] mmzone: Introduce folio_migratetype() Message-Id: <20230614133337.f5eb6ef530d7d6cb1edbcf0d@linux-foundation.org> In-Reply-To: References: <20230614021312.34085-1-vishal.moola@gmail.com> <20230614021312.34085-3-vishal.moola@gmail.com> <20230614131305.2939f29e4372c94a8c6a56a8@linux-foundation.org> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9461A40003 X-Stat-Signature: 5ij87eqquhobu8uc9iutns8obr6564ca X-Rspam-User: X-HE-Tag: 1686774820-775138 X-HE-Meta: U2FsdGVkX1/9oPbPeT77/ml/S+ILojTFreyscwDdF9+flPXML0iwNZFEpvFW0fKOT8hkcnbYhO9iXZNIIp5nmIFNqMThdpe8UlnVooIFK/4NX5I8+MTW8OhcpJYc9r7Ymf3Mps8NFDWVpophLUHk/qpEQTihSarGWCluMGBSZJaAP5ZxgSxHvS223mWafJeCZWeh7IPV5hUYyPrQhv+zbFHsphSAhXJp3oENqZbKZE3qFh8gZd5o89kKkqAJ6ZetSWinW+j48jEgQM9Tn+O7C6RbrxNufOSPT1fgKuiLLRVtlkEbOuZk8ZofRPU/0j0u6AF2vc1tErvGi2Kv1L72k2wQGlAiu0Ee1YM336opL4yB2N30DYxLnLjazOyN66cisPTJkyrEvNQupQZFxrf2C+F2cUL/OeLulOkA7+EfTxPr/JUTSvrTNrE+iAXbpfD4GjvprRNfqgLK3aq+40/lULaW4We012y8aIGQAMMcNyJsZ0H1iiEJrb6tOHBNJjTSOddR8WZ/X70dCDH43TVbJ4gmAHocXBcwKpYG26mlOn8V525YcNliXLG0rATObIwR2cqdLTe+6HFHcCjyc84nI+vaH4F4xWEIT+w7KorZvnr0vbYFs59R84RAXDRGdl5nIvM7y8/E7YhPBUOzMWqpQTiXXz5zrfM+5a0RX/i9ux9A8GDcbEttXnYarYI9DD9Jms9WB3LRhXdJHZ2PchbBlfa46gKtturPjz5agUSiWlxzCcaKdcdMTP3XdZp4e35+pbbJf7bA1gjgGVJ59TQ2oWUjqZKFVU9Cw29DBLWtg8HlJyV5/rSKuZkj6iN58cxoVabmJExpEg+BqRGvI4GB9dA27TienYmz5SSS9MKti7NBw+eAffTpLEpFC9Q0/bByUUEmiCkIPSCOPcd92JxfommaUaZ5tjKD65B7I8raPhKWgzB6yETTcxWImEvqjm3tq0O7g/6HQqy9Ijtbgav 5OQojePH iXM9VQLmMz1+DAUsVwm+0bff6XEvMyMce2EHN6eeVubO2fmixioqgY/wizHUgDKoTAPDSSmePOZeWDcPAYTaZgb5BQ2nkcs9Ob8xeZTWNw6zvGeBj7hS5ihEB264QOMGeYnwJc6lfF3OPT7SUGw6V+HiOtyKElZSdL05Cy4JVTmEKzmVYTtqvovR6WM+Vamg0GJCeBUMd0d/K/WmtfM06YANi9e0ePoSfsqj7w8CBmrCp1c+1XIgpLLw8uaGx9BQNp4Q2c5OU0AR+HfOkbgRF09v0iEAtxcKklbq4gZ9ULCI5hhWw57P0AT4JstB3yZ+t/AJhb/PKALHPuWpeCCEMhBU3jwS5PoTXW6AEawQ0JwiA5M3jLpTLGUbMByP9AcdG7sQUeqRUQibyg92TFWpuTooiEJBJjYYny4gQZOAqg2ezx4aou+BrhI4xSb7zqARwTSyPYTLojn9Hs9wh8DObCXkVkJT9eKXpplv4d0J1/xhjyRUW3Bbah0MAN1YXd2umysMDn4hdEk2IYK+6PpKIH2CJ6A== 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: On Wed, 14 Jun 2023 21:17:34 +0100 Matthew Wilcox wrote: > On Wed, Jun 14, 2023 at 01:13:05PM -0700, Andrew Morton wrote: > > On Tue, 13 Jun 2023 19:13:09 -0700 "Vishal Moola (Oracle)" wrote: > > > > > Introduce folio_migratetype() as a folio equivalent for > > > get_pageblock_migratetype(). This function intends to return the > > > migratetype the folio is located in, hence the name choice. > > > > > > ... > > > > > > --- a/include/linux/mmzone.h > > > +++ b/include/linux/mmzone.h > > > @@ -105,6 +105,9 @@ extern int page_group_by_mobility_disabled; > > > #define get_pageblock_migratetype(page) \ > > > get_pfnblock_flags_mask(page, page_to_pfn(page), MIGRATETYPE_MASK) > > > > > > +#define folio_migratetype(folio) \ > > > + get_pfnblock_flags_mask(&folio->page, folio_pfn(folio), \ > > > + MIGRATETYPE_MASK) > > > > Theoretically this is risky because it evaluates its argument more than > > once. Although folio_migratetype(folio++) seems an unlikely thing to do. > > folio++ is always an unsafe thing to do. folios are not consecutive > in memory (unless we know they're order-0). OK, folio_migratetype(expensive_function_which_returns_a_folio()) or folio_migratetype(function_with_side_effects_which_returns_a_folio()). There are many failure modes. > > An inlined C function is always preferable. My quick attempt at that > > reveals that the header files are All Messed Up As Usual. > > The page-equivalent of this also evaluates its arguments more than once, > so it doesn't see too risky for now? We got lucky. It's just bad practice.