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 5B6C2C28B30 for ; Thu, 20 Mar 2025 11:07:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 39A05280002; Thu, 20 Mar 2025 07:07:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 345E5280001; Thu, 20 Mar 2025 07:07:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14E67280002; Thu, 20 Mar 2025 07:07:48 -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 D28CF280001 for ; Thu, 20 Mar 2025 07:07:47 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E3D04B7087 for ; Thu, 20 Mar 2025 11:07:47 +0000 (UTC) X-FDA: 83241654174.22.B6BBFEC Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011015.outbound.protection.outlook.com [52.101.65.15]) by imf22.hostedemail.com (Postfix) with ESMTP id A34E8C001B for ; Thu, 20 Mar 2025 11:07:44 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=nxp.com header.s=selector1 header.b=h3hYSNw5; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf22.hostedemail.com: domain of carlos.song@nxp.com designates 52.101.65.15 as permitted sender) smtp.mailfrom=carlos.song@nxp.com; dmarc=pass (policy=none) header.from=nxp.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742468865; 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: references:dkim-signature; bh=Jgk095wtDhiijs6/sxW7+h7lIxBhKudeCx8o7mNFNHw=; b=AGCXSu8ZTz4rxiPx1XNAIGdO0cjlAiDguqGDRCJx7AylsvoBaNI3r64WH7YrgiX7VhDMBb PvFcKTY9PhZ26AzL22Ad2hDfctrqbl0+WOvlRaKZurr/qAaUcpL5dC8hIokzvVAhiunIDp uF0xeIWpHzU6ytsptvfZj2VrxacGnBI= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1742468865; a=rsa-sha256; cv=pass; b=RNjtPG+OiyFa/py9KnE/DkBF6c9drxu5jli+z4prSrXAiAH6f+ynTIidtNBarDz1adyKvY BMyAXvwmc3AR7QVz5tVOx/wH+hW2nqPoMpfopp3y1JEAY6U0k4EY3AKGg5ClBun55dx2EZ oGR0ONf31+Xhsr6RadZX1UCz4MLukCA= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=nxp.com header.s=selector1 header.b=h3hYSNw5; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf22.hostedemail.com: domain of carlos.song@nxp.com designates 52.101.65.15 as permitted sender) smtp.mailfrom=carlos.song@nxp.com; dmarc=pass (policy=none) header.from=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x28nTSXTgxga7mm9m8+YbpAq5o9Z0vz4p+C/GYVm1bML8oU6yOL58HbPJZ1BOJMkSEpFbk+rdW2jILlquUc2lSGMt1bmkADFUleoFp8fdEa+GUUW9S5DSgaOUZfEQd9sLSmb9waVt14xDAGGP9Lf8J+Zyla0UNyiq6s8Bh84TBvd1vsiFsr7KicpFp9W/Zd7BCI4iyECOCUc99tulw3+q83SHSa9U/YZx9jab9klDizH58pTvjYxOEh2ZnAT/gUGEB/NKsfY7CJFiJX5CnnyKgFrMPq8M7lYeSnSEDbDTH9xHLmRkzuvPlWbY0Mnaj1qIpt8iFOoX0HO5GAbddyiIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Jgk095wtDhiijs6/sxW7+h7lIxBhKudeCx8o7mNFNHw=; b=rPb6bj1Pd6rw1zA64tDBWzTAfSlVZ+TKpfxntaVqgtwxrIlepeDGDvHu2WU+v/Mmy6XNpvT72HxsnL0IRekayrjoS5x5F8COHrTq2IjHRCzqyWEnkleseO3jmlr5ng+GZ3NBOv3++aMSPVIkiGImxdtz9WxGriABLROO08yp9na7tfna8Y6lgaAsky4rcE+A8XVCje9BTNGJBMb3hMzhec0eYSE+lbyB7Vl4iLmVWA6yeES2F/kald1Mjr1jedi0/gb93iZ9qbu28Fy+UaOmbeiNkdX7IhwBIdnlYqvEbb81eNSIHCE1VJ7Bmm67ws62O2BNRMeOiCyFcJc3WB3IXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jgk095wtDhiijs6/sxW7+h7lIxBhKudeCx8o7mNFNHw=; b=h3hYSNw5DpYOL9s8d1Izr85N9ow0CX71vtM1dvYs38JnyxEalB8u7SBVj8Wl+1LNXWzGvUkkCBd6Ok8LxL62W5lMxn5/wf37hvm2cmiztYEoExuj57J7u/FDOUCPjRjr0kArgtQW7N7GsbyZ0XNa0B6Ot0LZz0udrY0Zl+PEIpDQDdu0OBt9/bNiCAaUx5wMiHW8WaopjmmMD95khSG2n3z7q10Q1MX6v65g5NgpGDaUhCnsfxBEmmZ3NRi+Li/2c2K0385UGOwn65SntP+WBTGqQpNxwXhB9/s/dg2EYUvsA62+WBbJmEmypjOsqZQIgB5cJP3XsJb09LkF4AkkSQ== Received: from VI2PR04MB11147.eurprd04.prod.outlook.com (2603:10a6:800:293::14) by AS8PR04MB7671.eurprd04.prod.outlook.com (2603:10a6:20b:299::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.34; Thu, 20 Mar 2025 11:07:41 +0000 Received: from VI2PR04MB11147.eurprd04.prod.outlook.com ([fe80::75ad:fac7:cfe7:b687]) by VI2PR04MB11147.eurprd04.prod.outlook.com ([fe80::75ad:fac7:cfe7:b687%7]) with mapi id 15.20.8534.031; Thu, 20 Mar 2025 11:07:41 +0000 From: Carlos Song To: "surenb@google.com" , "kent.overstreet@linux.dev" , "akpm@linux-foundation.org" , "willy@infradead.org" CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" Subject: Ask help about this patch b951aaff5035 " mm: enable page allocation tagging" Thread-Topic: Ask help about this patch b951aaff5035 " mm: enable page allocation tagging" Thread-Index: AduZebW2ju8oka4lQKylDObdr1dPaQ== Date: Thu, 20 Mar 2025 11:07:41 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI2PR04MB11147:EE_|AS8PR04MB7671:EE_ x-ms-office365-filtering-correlation-id: c0cbd887-d721-4b26-edd8-08dd679f6f02 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018|13003099007|8096899003|7053199007; x-microsoft-antispam-message-info: =?iso-8859-1?Q?g5oKX5oWs/4g0G5n0tBHqmthUpuYe96XgKEaAp/NZW+P915MU75A/9R9lF?= =?iso-8859-1?Q?9Pbbk+eJeW+AXTApfcwb0aLNwdpu6XYjHivXVLKl/B0FuXeXKBI1jFvufd?= =?iso-8859-1?Q?l46E0ACCTAZxvnFj5vfISI4CUDpYwQZFYTCyYlgQhvzWZT+0mSQ7ltVx3n?= =?iso-8859-1?Q?iZ/10Lx8lk2GcytcNLDkXfeoBGadDOBIwk3Qzw/+EEvAoRAkokgo20PH8e?= =?iso-8859-1?Q?+taXCiEyRFNUgoFGO1Cq9c9wU5NSA6Ds1v+usjgBjMHwz6+3p6roIHECDr?= =?iso-8859-1?Q?LVbmQbNv4jOBrPlayEiWI4XgOswmmPSPr0JC3Z1TiU5P6BKwWMgjwczm23?= =?iso-8859-1?Q?+jbY4fxjKRXIewnok268VyN82MiJPaW+eupwaApAYunlSu3I/ckjHMNiYc?= =?iso-8859-1?Q?0SB+AqsJDLNaepMpt/3Ri0wRluY/Tq7XbcTMgYhveBY1TZk4VJzVCnF/ET?= =?iso-8859-1?Q?mPXX0jA9+ySF698DhNh+gCtm0qJZxSyJl0YN4ngoxGJeLAjPgDJLPUI4Mv?= =?iso-8859-1?Q?S1NpgAHEb89S8L+m3sU3f5yX6QaZ4vRR4Hvcn9OOmZdSHY3m3FF1zKqEw3?= =?iso-8859-1?Q?Np/vXPYCGvTv1Xd0E+/+Q7xXulXnK+LZcHnkp55E+wYmR1YgMDWlrb+Nz0?= =?iso-8859-1?Q?qOMvT+6wmc79V+EMozd1mIcqi7XmRDmvN5SbbOOjTz0eRgOXY6r/73vlOn?= =?iso-8859-1?Q?u2ujLP7wcgE+GcZs2G3tvBrKkOyLq5uM0uC3DXmmkVNwu9mM/x+hSsSE63?= =?iso-8859-1?Q?2RxX9OApOTp2y2kq/okATDIH263AqEvNfeQ0XsxOzlo6oKrV3M30F3pMSi?= =?iso-8859-1?Q?noDm+xLD7priyw14SaGjgqf59tKnIRQCSv/x8ywjCP0JyHiIUrchcQ4lxZ?= =?iso-8859-1?Q?u3uGoNVRO1XMvTIiylP8BsBg5nNI7BKehm4tznXAz0DV4/H6AkLZv2EM/3?= =?iso-8859-1?Q?gzww+S6vwI0A1MLV92T6FFfNwH16YlkG3VC6/eZmyvoenAHoDrlS93xVxa?= =?iso-8859-1?Q?yX+jjzYyKYlaU6GGBuQFdfBba3XyJKS7UPkZDT/N7EBakQF61S0eJOAYGB?= =?iso-8859-1?Q?U6mdf8Tzbs6UgvU0WaSbeL7/dPmPmK2sdmuS9aRDSrxKMsGwPx3kFJP1ye?= =?iso-8859-1?Q?ZzSywdcRIkCaHcFH0Y6h2LKfQg9ND7SAykwy5cUXEo1r7qsgnTUJsGzsxw?= =?iso-8859-1?Q?skEGagTyCSV9/j71dibKdVOpCbaB1qLBB3az+c1rcNPIOOj1bjqI0BG2Zq?= =?iso-8859-1?Q?OBkd2HldL+j8IV4O261A3Z3zyD1y0BxSlC+0RDx9v0Zdj5VnEl3Oot8+4p?= =?iso-8859-1?Q?VuDe5ObJX7E3QuWQXayBPbIoOV91MrYZU2WnTRZhXxheXVsuUlxhwLud/a?= =?iso-8859-1?Q?ZFdsc2Y/0fw6EjnvxhcJrSsfuRD1DeDQmv+U9tuqeH8DGfP4mQJIP4x4PK?= =?iso-8859-1?Q?ZQXdaRxlmCWY8Iht8kqNBcllztjhnx2sgoGVVFiifANAJERC3iMJB07LDH?= =?iso-8859-1?Q?DMGY8PaxW2Vf4XXHjZwbzK?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI2PR04MB11147.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018)(13003099007)(8096899003)(7053199007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?vrFFciwZy2zZpHXaqsBewzYagzfWCDkvaOjF/zsXHfnDZ/prl7D9LLyUQ7?= =?iso-8859-1?Q?19rJzPTaumXCt9O9sTfMntuCTxOipKg1G0V7ixdjhTKQk362yR8mni7nM4?= =?iso-8859-1?Q?o45onWD2TuWdgjQZhQKz7gRBSNKME3g9tjjiY52QlCfdHQPiNi1GeFduLw?= =?iso-8859-1?Q?X4/Mz7q5nAuPY8+0Wsa4zfaE3dMk92sCCBNzN3d499zgbgi+SEsLNPLYja?= =?iso-8859-1?Q?ck2aTnvkfkqf2QLCf3HtPuzD0u2lY2UTxPFaVsAmaNWwhFGnVzcDWokuRh?= =?iso-8859-1?Q?Gly/7CcOHpe2RaCEmu/yufoLTxVzWaW2lXVD2YqMRz+sEyKh1Ody+KM981?= =?iso-8859-1?Q?DEWNg/3tUAhOQuKkvdNEQyxxu5dk2/MjqX6fyQNXQxbJlJTMeQiwcu6xFw?= =?iso-8859-1?Q?YDixfNHEart5s+Q4wanH/BvCZdEsg+YemxOrr7gKWdciZ+s75R9N78onJB?= =?iso-8859-1?Q?TjCEacDp4d0PkgLotwa4rI9kMx3OgyT3b8ZixQGj2guDyg5Nj7Cs+Tpd3j?= =?iso-8859-1?Q?X0W3eAOQzQGfmlbVY5FuMTmjpkECcSPiCcWFG8gxkomJojDbn6mWFxIpvo?= =?iso-8859-1?Q?MT1nMbpYq59NGdQnBEYbduR4VmZndQG6o01lGBkJavfEqSoPgWHu4Z2Ytk?= =?iso-8859-1?Q?eRt5C/CNNkJfA59TcsRYsEkGOKHLo4kPQ9Inz9Ogb21YjjYMpYsIepZbwc?= =?iso-8859-1?Q?Gake3gmuB7TE2pz+mNacRkMLCi59K/RMrqYcmI2ZLYqI51vZZrdk25WIAZ?= =?iso-8859-1?Q?KYLhMQo1lmMGo+catDFufRaV/jjXXVyzFHSFTiM3vjCHJlQei06tdWlUTN?= =?iso-8859-1?Q?i6ei6aqG1APDR0MNXvsiA+01YE+a0aN46Q36lKzYZ4kkBZhy7alQh0/15X?= =?iso-8859-1?Q?niY/jCwoJDh4ok33zIa5V3hiaZW35nMONgzLrPy0J1wYheis27/bdApmrp?= =?iso-8859-1?Q?8D2x4ZrmTMVL6vX2Zoq1aFNRkbPhXA8DxnarriuhnGT8bqEEZ49vClyZz7?= =?iso-8859-1?Q?7f29cq4Nvr1YpxgLjCP/bt6Pj0mn4nnkNux1mQvsKfLVypKS5PMGCvCPJZ?= =?iso-8859-1?Q?wlGhW6VbOZY/9tU81zqpoTYj/kO53BeFWtepNtVA4hgXZgPnwSxL78JqW/?= =?iso-8859-1?Q?KaZI5umlDD8bTLjIDCnwMWbqqAdFatEail01WhmvG/yYijfhcaUvhNOVBX?= =?iso-8859-1?Q?tPxtrmbef972ihBd2Yp+5zGGHWJGU7KTlXOCoBlDDf+BaNxSAujUrKzKmr?= =?iso-8859-1?Q?Y70x3nfphVDodryGXNXWbwZXQMl4kAIpm4Y008WyqPvU2JgnY/guRjygum?= =?iso-8859-1?Q?8JX2bUbDVpyC3xwda8eOPwBLQ6w/GMzcqyk8j1H3X9cOw+EQZSz3wJZpQj?= =?iso-8859-1?Q?bd8s1wTENKitYeUVFWSrF8pL9TxIhDFSVkswqJCdkMUMo9rmS0SCCKIpgv?= =?iso-8859-1?Q?NE488WJeT7qfLfTmmYUszXQlP+14ZwN5B29qWke1bCFwFWpAjwUtESVI5t?= =?iso-8859-1?Q?sUH7onLIGcjKvHilYQNQntAinG9SpNXnNAqSuSlVNpAwlaHlv32vJazT4P?= =?iso-8859-1?Q?j/gHC2iLkhYZHZ1iVdWXDUR91flYRUQvE+Ro+BYXChgxyEZ7yn6GtPXZeb?= =?iso-8859-1?Q?N/xKvRFwRlGYyDIZMrph2tr7QPxg8mw43V?= Content-Type: multipart/alternative; boundary="_000_VI2PR04MB11147C17A467F501A333073F4E8D82VI2PR04MB11147eu_" MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI2PR04MB11147.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0cbd887-d721-4b26-edd8-08dd679f6f02 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2025 11:07:41.6029 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QQhRU9TUnR4uw+pJ8ajBlnpCF7P6tzEj3zBgpdKstTVaWKlQ+Vi5h3nmgLxCUwjoVEzJiS/DckLlGPwvuwhymg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7671 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: A34E8C001B X-Stat-Signature: y3nhdneyf46h9i9xtamnejf5w1pbc45j X-HE-Tag: 1742468864-515005 X-HE-Meta: U2FsdGVkX18LR+7Cayjh6LoR7v1/nfNv1QfFIKCO0r+hEO6EynrjB4ynrDoStP/jmfUtyIJX+3fGy58mFTxnjC5UuvUSk/MTZA0NbkQTdbLwSXaXjQ/bgADDNVIpuicEBwBYqHmL9lMZIkuKigGsRdwMju9UIEBZ+W0YQWIRnF6iBrHlvilGYw/6Z8wldTzh6BlLQmE1KljIHDSvqWUFh0LXltC+RtT/TLVmkXF3iq5nZ34IZMWdj4mMyrItOEDfZhs2XxhOCPCzExo7oOkAiyebjEapuTe9TKwnInbjqY+UkdbUZ4wzwnoLpslKtqXMDxN4/HDW8fOJb15z/oknOAW9QjJh/zh1xUKcaUzqzxzkmhiWnFk4FLype0XWuA+fMt3g6NtppdXBh76Cl6j6hDMstKaOynS5q0CelH8CTWQmP0S0/zAapUVmIl+2vswK2U252g1Xqx4+ISPUz5E8Ymm5x4s02j/UIri+t3nw+loTwW4MBZO914wGvjQBRrVOF/XZDyWqtxX6Yu7fQJYOiOmxeXTd8fqNsmrfjUxx7uJ25RlMOAs6Se5LgMsaW9Wj8z+TjqS3UZHNE9B4KyPV2kvpFJ8B9xdY8PpdIVP6koAvghy1mUe1+QibIoHNVnfaP/Z3aJkwZOuq6KWcZ2raTdIQ62LoSf0KFCpi6Uf9Mj5QMPkwp+TRMs62xfu4nCqW160FKEzNX7/eP1nD9B/idf4uX1wrn/3CFxu5/v5Rtkg8PMI3lywWFFihknubLW7PQNTOYe3nU3Ud11K7Sv8rM7tHVH91QI8JiABgYZNHRF0LrhhQKHRk6AeDTfReph7vr37/nryb1nDfQeBtlN4+jNsHc48v3bmGt0oavbNgxBlHvNhGzfehxm03QjRzJy8ZdrZwhE7yHNDusmP9hdNJGr8c5STOEBpVZrcrCwT7HzK4giqTNQQc5/5iF4TCk22h8NSJYO7aGVM9Pay+7wU dVLeBMe5 lnxqLWV8RnNMP7EXi3MKenSk2U1X4J9ROb9oPqWp26y+Qjh+7LOQTAxVVYpFqT9sIyKazLPH/wNwzvKuVNz+t8LMkNtXyj/BAwp1D5PjV2EO+IX9fyT2Vbnhzo9lUW+AgJnC1SYZ4MiwIdbMKq0hrAWL6meJqsRb7sDnFTJN5E8sswnkHr/NNVoghKcXvJkRCvYbX/SoDX1obgMZWi/PZSjxncu0elgTmZ7QlOjd0xlylpmyfjb7pd1kR42AVWYhT4+Nw6n7v6k7JmNd7asW6eWFnN6CwI1LnSPNdb3E5oUu4qdSUtmWwT+9awp6bKguk1Yw2GEe42k2fI6DGMlunKUB3lnYUf+09gTVPTiSOQSdi9IxRRwIhz7m5MIEwjl6vvyabApsEtoWJobN0Hdi50dV+Nh2Lx7+tHw+V/xoBzWvx8vDrwfzIXlR/wvtTeSMB553dVW2ywRM7mDu3LDh1/boBPC5nKY/7w+fhMcx1LHkFYgt0zWq5WxFo0GqC56qAkb/kDB6X9hB/C1jiTlEJkX0HP1oqaOThbtt+pxYXHpLJHUJVdcUNBn1ait3iPGuj+ZMTd2UH6mADxtCm4taaYdAIxwMIHNq9+VYOH815MPhdiJJWC+AKH1t540wTgPXohisQpFuxDNVx+TRP7mBoQsbK7ilgVHe0WEO5b99M47X6F0nIcWF3576lvyAMNfUw0rDUhEHx66kQtprKGpsmOyXlxsOKY6GJqi8Jpy0W8UZW+HKvkob+lsiFVekuvaV0Hh+txRMpNNGxGUv8Xye+xSsYc+rU7SkZU/+o1VjwwaLg1Uw2g/cZQHv+yoV15TZAeiZ8OCkEO3YuRdib5oMOIaVpSbSeyG7onKKmiVDA6s/5B/KHBSGS6I3DxBMgXYZON5WDxLgIufrcrHxiqAe7Ozppbkb8+ewiCI8dLi/w8gK5vfOJBA/99C5vBXosmHeC970M+Nw+nJkUHMG6fCrxWtfeNEw+ NaglFUdz RnepbWMib58mjEobVqLSwIlw61HEw5WzVTXEZv1lvaMDoyfXxl6AH6uNgevNpLNbDak0Ti/XrZPgyJJy3WuwlDcqvj7NazoTezpDJCbNmEvgbutbhfdItry3hOnGC6W0br7LflXzJWE5gS/nUq0gaTgUStLtuB69H31ZsV/O4qDwmViu3WiyLrOx7sb6R4EOgJIvpzi/IJM= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000017, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: --_000_VI2PR04MB11147C17A467F501A333073F4E8D82VI2PR04MB11147eu_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, all I found a 300ms~600ms IRQ off when writing 1Gb data to mmc device at I.MX7d= SDB board at Linux-kernel-v6.14. But I test the same case at Linux-kernel-v6.7, this longest IRQ off time is= only 1ms~2ms. So the issue is introduced from v6.7~v6.14. Run this cmd to test: dd if=3D/dev/zero of=3D/dev/mmcblk2p4 bs=3D4096 seek=3D12500 count=3D256000= conv=3Dfsync This issue looks from blkdev_buffered_write() function. Because when I run = this cmd with "oflag=3Ddirect" to use blkdev_direct_write(), I can not see any long time IRQ off. Then I use Ftrace irqoff tracer to trace the longest IRQ off event, I found= some differences between v6.7 and v6.14: In iomap_file_buffered_write(), __folio_alloc (in v6.7) is replaced by _fol= io_alloc_noprof (in v6.14) by this patch. The spinlock disabled IRQ ~300ms+. It looks there are some fixes for this p= atch, but I still can see IRQ off 300ms+ at 6.14.0-rc7-next-20250319. Do I trigger one bug? I know little about mem so I have to report it and ho= pe I can get some help or guide. I put my ftrace log at the mail tail to help trace and explain. commit b951aaff503502a7fe066eeed2744ba8a6413c89 Author: Suren Baghdasaryan surenb@google.com Date: Thu Mar 21 09:36:40 2024 -0700 mm: enable page allocation tagging Redefine page allocators to record allocation tags upon their invocatio= n. Instrument post_alloc_hook and free_pages_prepare to modify current allocation tag. [surenb@google.com: undo _noprof additions in the documentation] Link: https://lkml.kernel.org/r/20240326231453.1206227-3-surenb@googl= e.com Link: https://lkml.kernel.org/r/20240321163705.3067592-19-surenb@google= .com Signed-off-by: Suren Baghdasaryan surenb@google.com Co-developed-by: Kent Overstreet kent.overstreet@linux.dev Signed-off-by: Kent Overstreet kent.overstreet@linux.dev Reviewed-by: Kees Cook keescook@chromium.org Tested-by: Kees Cook keescook@chromium.org Cc: Alexander Viro viro@zeniv.linux.org.uk Cc: Alex Gaynor alex.gaynor@gmail.com Cc: Alice Ryhl aliceryhl@google.com Cc: Andreas Hindborg a.hindborg@samsung.com Cc: Benno Lossin benno.lossin@proton.me Cc: "Bj=F6rn Roy Baron" bjorn3_gh@protonmail.com Cc: Boqun Feng boqun.feng@gmail.com Cc: Christoph Lameter cl@linux.com Cc: Dennis Zhou dennis@kernel.org Cc: Gary Guo gary@garyguo.net Cc: Miguel Ojeda ojeda@kernel.org Cc: Pasha Tatashin pasha.tatashin@soleen.com Cc: Peter Zijlstra peterz@infradead.org Cc: Tejun Heo tj@kernel.org Cc: Vlastimil Babka vbabka@suse.cz Cc: Wedson Almeida Filho wedsonaf@gmail.com Signed-off-by: Andrew Morton akpm@linux-foundation.org Ftrace irqoff tracer shows detail: At v6.14: # tracer: irqsoff # # irqsoff latency trace v1.1.5 on 6.14.0-rc7-next-20250319 # -------------------------------------------------------------------- # latency: 279663 us, #21352/21352, CPU#0 | (M:NONE VP:0, KP:0, SP:0 HP:0 #= P:2) # ----------------- # | task: dd-805 (uid:0 nice:0 policy:0 rt_prio:0) # ----------------- # =3D> started at: __rmqueue_pcplist # =3D> ended at: _raw_spin_unlock_irqrestore # # # _------=3D> CPU# # / _-----=3D> irqs-off/BH-disabled # | / _----=3D> need-resched # || / _---=3D> hardirq/softirq # ||| / _--=3D> preempt-depth # |||| / _-=3D> migrate-disable # ||||| / delay # cmd pid |||||| time | caller # \ / |||||| \ | / dd-805 0d.... 1us : __rmqueue_pcplist dd-805 0d.... 3us : _raw_spin_trylock <-__rmqueue_pcplist dd-805 0d.... 7us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-805 0d.... 10us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-805 0d.... 12us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-805 0d.... 15us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-805 0d.... 17us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-805 0d.... 19us : __mod_zone_page_state <-__rmqueue_pcplis= t ... dd-805 0d.... 1535us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1538us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1539us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1542us+: try_to_claim_block <-__rmqueue_pcplist dd-805 0d.... 1597us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1599us+: try_to_claim_block <-__rmqueue_pcplist dd-805 0d.... 1674us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1676us+: try_to_claim_block <-__rmqueue_pcplist dd-805 0d.... 1716us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1718us+: try_to_claim_block <-__rmqueue_pcplist dd-805 0d.... 1801us : find_suitable_fallback <-__rmqueue_pcpli= st dd-805 0d.... 1803us+: try_to_claim_block <-__rmqueue_pcplist ... dd-805 0d.... 279555us : find_suitable_fallback <-__rmqueue_pcpl= ist dd-805 0d.... 279556us : find_suitable_fallback <-__rmqueue_pcp= list dd-805 0d.... 279558us : find_suitable_fallback <-__rmqueue_pcp= list dd-805 0d.... 279560us+: try_to_claim_block <-__rmqueue_pcplist dd-805 0d.... 279616us : find_suitable_fallback <-__rmqueue_pcp= list dd-805 0d.... 279618us : __mod_zone_page_state <-__rmqueue_pcpl= ist dd-805 0d.... 279620us : find_suitable_fallback <-__rmqueue_pcp= list ... dd-805 0d.... 279658us : find_suitable_fallback <-__rmqueue_pcp= list dd-805 0d.... 279660us : _raw_spin_unlock_irqrestore <-__rmqueu= e_pcplist dd-805 0d.... 279662us : _raw_spin_unlock_irqrestore dd-805 0d.... 279666us+: trace_hardirqs_on <-_raw_spin_unlock_i= rqrestore dd-805 0d.... 279712us : =3D> get_page_from_freelist =3D> __alloc_frozen_pages_noprof =3D> __folio_alloc_noprof =3D> __filemap_get_folio =3D> iomap_write_begin =3D> iomap_file_buffered_write =3D> blkdev_write_iter =3D> vfs_write =3D> ksys_write =3D> ret_fast_syscall At v6.7: # tracer: irqsoff # # irqsoff latency trace v1.1.5 on 6.7.0 # -------------------------------------------------------------------- # latency: 2477 us, #146/146, CPU#0 | (M:server VP:0, KP:0, SP:0 HP:0 #P:2) # ----------------- # | task: dd-808 (uid:0 nice:0 policy:0 rt_prio:0) # ----------------- # =3D> started at: _raw_spin_lock_irqsave # =3D> ended at: _raw_spin_unlock_irqrestore # # # _------=3D> CPU# # / _-----=3D> irqs-off/BH-disabled # | / _----=3D> need-resched # || / _---=3D> hardirq/softirq # ||| / _--=3D> preempt-depth # |||| / _-=3D> migrate-disable # ||||| / delay # cmd pid |||||| time | caller # \ / |||||| \ | / dd-808 0d.... 1us!: _raw_spin_lock_irqsave dd-808 0d.... 186us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 189us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 191us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 192us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 194us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 196us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 199us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 203us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 330us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 332us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 334us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 336us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 338us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 339us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 341us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 343us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 479us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 481us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 483us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 485us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 486us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 488us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 490us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 492us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 630us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 632us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 634us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 636us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 638us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 640us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 642us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 644us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 771us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 773us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 775us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 777us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 778us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 780us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 782us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 784us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 911us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 913us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 915us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 916us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 918us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 920us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 922us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 924us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1055us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1058us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1059us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1061us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1063us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1065us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1066us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1068us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1194us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1196us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1198us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1200us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1202us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1203us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1205us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1208us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1333us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1335us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1337us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1339us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1341us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1342us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1344us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1346us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1480us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1482us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1484us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1486us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1488us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1490us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1492us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1494us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1621us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1623us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1625us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1627us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1629us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1630us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1632us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1634us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1761us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1763us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1765us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1766us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1768us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1770us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1772us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1774us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 1900us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1902us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1903us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1905us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1907us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1909us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 1911us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 1913us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 2038us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2040us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2042us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2044us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2046us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2047us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2049us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2051us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2053us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 2055us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 2175us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2176us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2178us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2180us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2182us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2183us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2185us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2187us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2189us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2191us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2192us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2194us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 2196us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 2323us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2325us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2327us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2328us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2330us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2332us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2334us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2335us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2337us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2339us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2341us : find_suitable_fallback <-__rmqueue_pcpli= st dd-808 0d.... 2343us : steal_suitable_fallback <-__rmqueue_pcpl= ist dd-808 0d.... 2345us!: move_freepages_block <-steal_suitable_fa= llback dd-808 0d.... 2470us : __mod_zone_page_state <-__rmqueue_pcplis= t dd-808 0d.... 2473us : _raw_spin_unlock_irqrestore <-__rmqueue_= pcplist dd-808 0d.... 2476us : _raw_spin_unlock_irqrestore dd-808 0d.... 2479us+: tracer_hardirqs_on <-_raw_spin_unlock_ir= qrestore dd-808 0d.... 2520us : =3D> get_page_from_freelist =3D> __alloc_pages =3D> __folio_alloc =3D> __filemap_get_folio =3D> iomap_write_begin =3D> iomap_file_buffered_write =3D> blkdev_write_iter =3D> vfs_write =3D> ksys_write =3D> ret_fast_syscall Best Regard Carlos Song --_000_VI2PR04MB11147C17A467F501A333073F4E8D82VI2PR04MB11147eu_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hi, all

 

I found a 300ms~600ms IRQ off w= hen writing 1Gb data to mmc device at I.MX7d SDB board at Linux-kernel-v6.1= 4.

But I test the same case at Lin= ux-kernel-v6.7, this longest IRQ off time is only 1ms~2ms. So the issue is = introduced from v6.7~v6.14.

 

Run this cmd to test:

dd if=3D/dev/zero of=3D/dev/mmc= blk2p4 bs=3D4096 seek=3D12500 count=3D256000 conv=3Dfsync=

 

This issue looks from blkdev_bu= ffered_write() function. Because when I run this cmd with “oflag=3Ddi= rect” to use

blkdev_direct_write(), I can no= t see any long time IRQ off.

 

Then I use Ftrace irqoff tracer= to trace the longest IRQ off event, I found some differences between v6.7 = and v6.14:

In iomap_file_buffered_write(),= __folio_alloc (in v6.7) is replaced by _folio_alloc_noprof (in v6.14) by t= his patch.

The spinlock disabled IRQ ~300m= s+. It looks there are some fixes for this patch, but I still can see IRQ o= ff 300ms+ at 6.14.0-rc7-next-20250319.

 

Do I trigger one bug? I know li= ttle about mem so I have to report it and hope I can get some help or guide= .

I put my ftrace log at the mail= tail to help trace and explain.

 

commit b951aaff503502a7fe066eee= d2744ba8a6413c89

Author: Suren Baghdasaryan surenb@google.com

Date:   Thu Mar 21 09= :36:40 2024 -0700

 

    mm: enable p= age allocation tagging

 

    Redefine pag= e allocators to record allocation tags upon their invocation.

    Instrument p= ost_alloc_hook and free_pages_prepare to modify current

    allocation t= ag.

 

    [surenb@goog= le.com: undo _noprof additions in the documentation]

      = Link: https://lkml.kernel.org/r/20240326231453.1206227-3-surenb@google.com

    Link: https://lkml.kernel.org/r/20240321163705.3067592-19-surenb@google.com

    Signed-off-b= y: Suren Baghdasaryan surenb@google.com

    Co-developed= -by: Kent Overstreet kent.overstreet@linux.dev

    Signed-off-b= y: Kent Overstreet kent.overstreet@linux.dev

    Reviewed-by:= Kees Cook keescook@chromium.org

    Tested-by: K= ees Cook keescook@chromium.org

    Cc: Alexande= r Viro viro@zeniv.linux.org.uk

    Cc: Alex Gay= nor alex.gaynor@gmail.com

    Cc: Alice Ry= hl aliceryhl@google.com

    Cc: Andreas = Hindborg a.hindborg@samsung.com

    Cc: Benno Lo= ssin benno.lossin@proton.me

    Cc: "Bj= =F6rn Roy Baron" bjorn3_gh@protonmail.com

    Cc: Boqun Fe= ng boqun.feng@gmail.com

    Cc: Christop= h Lameter cl@linux.com

    Cc: Dennis Z= hou dennis@kernel.org

    Cc: Gary Guo= gary@garyguo.net

    Cc: Miguel O= jeda ojeda@kernel.org

    Cc: Pasha Ta= tashin pasha.tatashin@soleen.com

    Cc: Peter Zi= jlstra peterz@infradead.org

    Cc: Tejun He= o tj@kernel.org

    Cc: Vlastimi= l Babka vbabka@suse.cz

    Cc: Wedson A= lmeida Filho wedsonaf@gmail.com

    Signed-off-b= y: Andrew Morton akpm@linux-foundation.org

 

 

Ftrace irqoff tracer shows deta= il:

At v6.14:

# tracer: irqsoff

#

# irqsoff latency trace v1.1.5 = on 6.14.0-rc7-next-20250319

# -----------------------------= ---------------------------------------

# latency: 279663 us, #21352/21= 352, CPU#0 | (M:NONE VP:0, KP:0, SP:0 HP:0 #P:2)

#    -----------= ------

#    | task: dd-= 805 (uid:0 nice:0 policy:0 rt_prio:0)

#    -----------= ------

#  =3D> started at: __r= mqueue_pcplist

#  =3D> ended at: =   _raw_spin_unlock_irqrestore

#

#

#     =             &nb= sp;  _------=3D> CPU#       &nbs= p;   

#     =             &nb= sp; / _-----=3D> irqs-off/BH-disabled

#     =              | = / _----=3D> need-resched   

#     =              ||= / _---=3D> hardirq/softirq

#     =              ||= | / _--=3D> preempt-depth  

#     =              ||= || / _-=3D> migrate-disable

#     =              ||= ||| /     delay      &nbs= p;   

#  cmd   &n= bsp; pid     |||||| time  |   caller&nbs= p;   

#     \&nbs= p;  /        ||||||  \ &n= bsp;  |    /      

     &= nbsp;dd-805       0d....    1u= s : __rmqueue_pcplist

      = dd-805       0d....    3us : _= raw_spin_trylock <-__rmqueue_pcplist

      = dd-805       0d....    7us : _= _mod_zone_page_state <-__rmqueue_pcplist

      = dd-805       0d....   10us : __mod_= zone_page_state <-__rmqueue_pcplist

      = dd-805       0d....   12us : __mod_= zone_page_state <-__rmqueue_pcplist

      = dd-805       0d....   15us : __mod_= zone_page_state <-__rmqueue_pcplist

      = dd-805       0d....   17us : __mod_= zone_page_state <-__rmqueue_pcplist

      = dd-805       0d....   19us : __mod_= zone_page_state <-__rmqueue_pcplist

   …=

      = dd-805       0d.... 1535us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1538us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1539us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1542us+: try_to_claim_blo= ck <-__rmqueue_pcplist

      = dd-805       0d.... 1597us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1599us+: try_to_claim_blo= ck <-__rmqueue_pcplist

      = dd-805       0d.... 1674us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1676us+: try_to_claim_blo= ck <-__rmqueue_pcplist

      = dd-805       0d.... 1716us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1718us+: try_to_claim_blo= ck <-__rmqueue_pcplist

      = dd-805       0d.... 1801us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-805       0d.... 1803us+: try_to_claim_blo= ck <-__rmqueue_pcplist

     dd-805=        0d.... 279555us : find_suitable_fallba= ck <-__rmqueue_pcplist

      = dd-805       0d.... 279556us : find_suitable_= fallback <-__rmqueue_pcplist

      = dd-805       0d.... 279558us : find_suitable_= fallback <-__rmqueue_pcplist

      = dd-805       0d.... 279560us+: try_to_claim_b= lock <-__rmqueue_pcplist

      = dd-805       0d.... 279616us : find_suitable_= fallback <-__rmqueue_pcplist

      = dd-805       0d.... 279618us : __mod_zone_pag= e_state <-__rmqueue_pcplist

      = dd-805       0d.... 279620us : find_suitable_= fallback <-__rmqueue_pcplist

      = dd-805       0d.... 279658us : find_suitable_= fallback <-__rmqueue_pcplist

      = dd-805       0d.... 279660us : _raw_spin_unlo= ck_irqrestore <-__rmqueue_pcplist

      = dd-805       0d.... 279662us : _raw_spin_unlo= ck_irqrestore

      = dd-805       0d.... 279666us+: trace_hardirqs= _on <-_raw_spin_unlock_irqrestore

      = dd-805       0d.... 279712us : <stack trac= e>

=3D> get_page_from_freelist<= o:p>

=3D> __alloc_frozen_pages_no= prof

=3D> __folio_alloc_noprof

=3D> __filemap_get_folio

=3D> iomap_write_begin<= /o:p>

=3D> iomap_file_buffered_wri= te

=3D> blkdev_write_iter<= /o:p>

=3D> vfs_write

=3D> ksys_write

=3D> ret_fast_syscall

 

At v6.7:

# tracer: irqsoff

#

# irqsoff latency trace v1.1.5 = on 6.7.0

# -----------------------------= ---------------------------------------

# latency: 2477 us, #146/146, C= PU#0 | (M:server VP:0, KP:0, SP:0 HP:0 #P:2)

#    -----------= ------

#    | task: dd-= 808 (uid:0 nice:0 policy:0 rt_prio:0)

#    -----------= ------

#  =3D> started at: _ra= w_spin_lock_irqsave

#  =3D> ended at: =   _raw_spin_unlock_irqrestore

#

#

#     =             &nb= sp;  _------=3D> CPU#       &nbs= p;   

#     =             &nb= sp; / _-----=3D> irqs-off/BH-disabled

#     =              | = / _----=3D> need-resched   

#     =              ||= / _---=3D> hardirq/softirq

#     =              ||= | / _--=3D> preempt-depth  

#     =              ||= || / _-=3D> migrate-disable

#     =              ||= ||| /     delay      &nbs= p;   

#  cmd   &n= bsp; pid     |||||| time  |   caller&nbs= p;   

#     \&nbs= p;  /        ||||||  \ &n= bsp;  |    /      

     &= nbsp;dd-808       0d....    1u= s!: _raw_spin_lock_irqsave

      = dd-808       0d....  186us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  189us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  191us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  192us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  194us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  196us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  199us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  203us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d....  330us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  332us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  334us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  336us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  338us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  339us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  341us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  343us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d....  479us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  481us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  483us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  485us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  486us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  488us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  490us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  492us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d....  630us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  632us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  634us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  636us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  638us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  640us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  642us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  644us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d....  771us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  773us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  775us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  777us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  778us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  780us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  782us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  784us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d....  911us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  913us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  915us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  916us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  918us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  920us : find_suitab= le_fallback <-__rmqueue_pcplist

      = dd-808       0d....  922us : steal_suita= ble_fallback <-__rmqueue_pcplist

      = dd-808       0d....  924us!: move_freepa= ges_block <-steal_suitable_fallback

      = dd-808       0d.... 1055us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1058us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1059us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1061us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1063us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1065us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1066us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1068us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1194us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1196us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1198us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1200us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1202us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1203us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1205us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1208us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1333us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1335us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1337us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1339us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1341us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1342us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1344us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1346us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1480us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1482us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1484us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1486us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1488us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1490us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1492us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1494us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1621us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1623us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1625us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1627us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1629us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1630us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1632us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1634us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1761us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1763us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1765us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1766us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1768us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1770us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1772us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1774us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 1900us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1902us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1903us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1905us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1907us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1909us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 1911us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 1913us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 2038us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2040us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2042us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2044us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2046us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2047us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2049us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2051us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2053us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 2055us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 2175us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2176us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2178us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2180us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2182us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2183us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2185us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2187us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2189us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2191us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2192us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2194us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 2196us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 2323us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2325us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2327us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2328us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2330us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2332us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2334us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2335us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2337us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2339us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2341us : find_suitable_fa= llback <-__rmqueue_pcplist

      = dd-808       0d.... 2343us : steal_suitable_f= allback <-__rmqueue_pcplist

      = dd-808       0d.... 2345us!: move_freepages_b= lock <-steal_suitable_fallback

      = dd-808       0d.... 2470us : __mod_zone_page_= state <-__rmqueue_pcplist

      = dd-808       0d.... 2473us : _raw_spin_unlock= _irqrestore <-__rmqueue_pcplist

      = dd-808       0d.... 2476us : _raw_spin_unlock= _irqrestore

      = dd-808       0d.... 2479us+: tracer_hardirqs_= on <-_raw_spin_unlock_irqrestore

      = dd-808       0d.... 2520us : <stack trace&= gt;

=3D> get_page_from_freelist<= o:p>

=3D> __alloc_pages

=3D> __folio_alloc

=3D> __filemap_get_folio

=3D> iomap_write_begin<= /o:p>

=3D> iomap_file_buffered_wri= te

=3D> blkdev_write_iter<= /o:p>

=3D> vfs_write

=3D> ksys_write

=3D> ret_fast_syscall

 

Best Regard=

Carlos Song=

 

--_000_VI2PR04MB11147C17A467F501A333073F4E8D82VI2PR04MB11147eu_--