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 1F4D5C433EF for ; Thu, 23 Jun 2022 03:02:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ADAA06B0085; Wed, 22 Jun 2022 23:02:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A88866B0087; Wed, 22 Jun 2022 23:02:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 92BE16B0088; Wed, 22 Jun 2022 23:02:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 7D8736B0085 for ; Wed, 22 Jun 2022 23:02:09 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 51A4A138A for ; Thu, 23 Jun 2022 03:02:09 +0000 (UTC) X-FDA: 79608001578.20.61F82F4 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2042.outbound.protection.outlook.com [40.107.94.42]) by imf05.hostedemail.com (Postfix) with ESMTP id 86C39100015 for ; Thu, 23 Jun 2022 03:02:07 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XdNB7gEAFlw8CR6SCp1Jzcr2Okp8CnrMIG+mnkRh6bK16eqGA+bMqQxcrQQXYqTkdgt2GeIrItfg3ePTSBIgoFNfo5CkaFH+kZYrXGzQQkfWuUscPb+pqeHfJ1xZiinx/aIJypa9fDSSAtqMjqHKngNdZkN2t64xjlXH6Jyk8SRRqTs7V3OFGQ1eqW1VuqQLdze2xaJnT++p+8oNaDHP3yCBW2vu6Z0Cpnu+Ju6WJq7HACjEQGdq50rKUxYAYJS2WfXJBg47WBITnGeg2DiE2UhCm0KjIIaZl3RZT2I7rZH0kRWTJo03E4quE7InfPkzM/2X1rxHIygqvx8nd1YAug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=1XRCxLLcER1Q4Zg3vki2ZxDR9KNdWnmgvPt9yPFKxA4=; b=Jm+s/gOMXMzdKi0A2uFNiSVaxdphRovQQQBbxnCpU74S3ldnNe8MGhT6+TatADgSwcdQn/RVD6gznW+ugw/JRtM8mUBXQwKWt0nWJIYnKH6Uv0JyrV5IV2sYFCIEEwJqUjZ56Z7AbMOQ//859YCSkj/1+UF2EVAY3Eq0Fqw7PmrHnfIEuQ8PER0Um6BgVcGzCKEIfCdplXr24h2qNoIaTTUo6JKSjbmmj9fYXBRJoE/p8rwnixiHztMHmFP2Yc1t8hJLvbUtNKCTV8jYnuzQe/+layHyFYflxitm0Y3vqpv5/ChX3imfWDMD+0nIPIwNJQt00yUB0b+kbLQebs1hwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1XRCxLLcER1Q4Zg3vki2ZxDR9KNdWnmgvPt9yPFKxA4=; b=s9Abd0A2qq9iGGS5sF4U5mDdDozlIZ1pyqO51PvAqSngcnXB55dJ4hZuax/1+o/Ii3wV2BRQfMuJSW+DHKIV6OJoFPYlHvPl/FqA1YxG26hqC9BJ9Xx4ABjaNnJblHS3u/CBJwdIxCDyg5w9+Wk+t1Buls399/MHAo7ocNdZxkUgQ45dURSEBBqY/VOW1Di8u1+cwZtS8HH/fu8yaOhrq0Us4UO9jaIerv8saBhQ0TYo3ztcjR3TRgLP4l1q0IXTIAX1YS2Os+F7ARCJrR0KHUQMNbUgkMPLR6T19AnsmU/iHf9vm7xwSDTVXp6M/DQlsyIRfLySpZCIbVtvtBa91Q== Received: from BYAPR12MB3176.namprd12.prod.outlook.com (2603:10b6:a03:134::26) by MN2PR12MB4390.namprd12.prod.outlook.com (2603:10b6:208:26e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.16; Thu, 23 Jun 2022 03:02:05 +0000 Received: from BYAPR12MB3176.namprd12.prod.outlook.com ([fe80::eca6:a4a7:e2b2:27e7]) by BYAPR12MB3176.namprd12.prod.outlook.com ([fe80::eca6:a4a7:e2b2:27e7%5]) with mapi id 15.20.5373.016; Thu, 23 Jun 2022 03:02:05 +0000 References: <20220622082513.467538-1-aneesh.kumar@linux.ibm.com> <20220622082513.467538-10-aneesh.kumar@linux.ibm.com> User-agent: mu4e 1.6.9; emacs 27.1 From: Alistair Popple To: "Aneesh Kumar K.V" Cc: linux-mm@kvack.org, akpm@linux-foundation.org, Wei Xu , Huang Ying , Yang Shi , Davidlohr Bueso , Tim C Chen , Michal Hocko , Linux Kernel Mailing List , Hesham Almatary , Dave Hansen , Jonathan Cameron , Dan Williams , Jagdish Gediya Subject: Re: [PATCH v7 09/12] mm/demotion: Demote pages according to allocation fallback order Date: Thu, 23 Jun 2022 12:53:10 +1000 In-reply-to: <20220622082513.467538-10-aneesh.kumar@linux.ibm.com> Message-ID: <87czf06q1i.fsf@nvdebian.thelocal> Content-Type: text/plain X-ClientProxiedBy: SJ0PR05CA0117.namprd05.prod.outlook.com (2603:10b6:a03:334::32) To BYAPR12MB3176.namprd12.prod.outlook.com (2603:10b6:a03:134::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ab11019c-a369-489b-0042-08da54c4c096 X-MS-TrafficTypeDiagnostic: MN2PR12MB4390:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dMuh+o1irb0TpJrjJU2U9dhn9zKyit8sd+BN0busMHBRCCAF9l0PJRq5J26aPvKZB1dBirOOmNQAw6u8I/v50g0dnT/LI7p04CLmABjGtmiw4iZ3bjmcA29aTFWu92oJtddydfrYHKaVE7aEKTVfjey5L42UUa9RWwRui18U9NKcN1uEo/ol0kWRMpqkTHElt63Xq/05z7gFRJ5FDfcVrW7GH8S5n65yYjnrMN+PSTUgiEQAVhiPRAIlGAHGL29o4JhA0NG/1JqhmWq1t/b09P0Gi9X/q8m+8JTRTgjD+602g0CAWW3kxoEuhcv2l5+c9/A6RaPUwTRzzELwdXbG3cOhMImaYs+SeOTPszQQncEdooZIKXLXL6vE7r/8pP4BeSGtNPs7TEGFU9dlv6qDEGfjwZ6dbjvvv34uxJdtE3gIaawBVLmNWurMOJ6g+IwI8Mf/AwqAig6893KakbC6AdX1oe61HFuDrOTvYu44OrfxhUQfXOQBOK1ZOR84scBPnSfwYkuNrn0jq+9xd5vOM6EeeDvsaj6UwaudHAXms7es9o/EISJ1KhnA8d4Y7B0Q2fLjocw1ZjzkcU9QTkpnun+nslddCM5YHy+9npJPR5Hpe6VfgMLUK8IkQNcl3R6roeMMkr+Aedc9jNrrLZVFWcZvGaaguQ6BCzlOOwKIEb3vN+P4zdqyj362WNtqtkYY6AyWUBXcuFEk6KYaWckEvQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR12MB3176.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(396003)(39860400002)(366004)(136003)(346002)(376002)(38100700002)(6666004)(6512007)(9686003)(2906002)(316002)(26005)(41300700001)(5660300002)(54906003)(8936002)(7416002)(6506007)(478600001)(186003)(8676002)(83380400001)(4326008)(66946007)(66476007)(86362001)(66556008)(6486002)(6916009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AP6h90Or02hEJ40sqdcj+E0OqM1itt1X/4XrRVomME6S9VoMdjqrOI7WNIbi?= =?us-ascii?Q?95fvsUvZss8D1C3OV3/dpB6AHtgfo5FCAsVVsPhdem9tP80a00AutfESE3xB?= =?us-ascii?Q?DFip4jX7xr0Utx5Fm4TCq6KQLknpcICvEDqW009L4BF8wlbFhVFyGHKHuW/q?= =?us-ascii?Q?Xseyvv/iRDSbTCl2pBiNBO1GHi1/KkEYOCGeFh+w2zcI115wlH45aWFv3kQ8?= =?us-ascii?Q?EfeR2sCwt4qTURK2jixMXZAdWsXi2JcGmhXh0n2xK2q2eRCfvOVytF4uE8Rg?= =?us-ascii?Q?BA3F7CZ7C3l1cjLxlvlVGS6Ik2O1PMCQhWAqcnImOl9Gw4xvSamF/GSL9ghO?= =?us-ascii?Q?3GfTkyWQkdD5kRIB3ZxuOBsfR2GQy9iscLmko3X0/ZJPU5A84QTqd16dvpGH?= =?us-ascii?Q?M8sbDm/pnm9dtHM0fqPCjn8iXxHm/6exNx+W50tAj75qYbyVF5JGlL+6iAmc?= =?us-ascii?Q?MxytzRTxNxPh5nsowvz32rDtnYMIHOAQpCBAJL/EYI2WlYnJXHpq0xAyIx8D?= =?us-ascii?Q?Wn65jte2p7QACLmp2ONm6XGqDXqh63YfHzKxp+ApHcXoxWECQV3TEAQGX41J?= =?us-ascii?Q?RDP6+eVCXDPgfI8v8UdVdRfdbCG4v23gfePxwcbKmskeNhZ0uFXU30fSKBSI?= =?us-ascii?Q?1UbtGlc6vpo7HXUYeLga4OQfJjAtJpLYyGmGTAVH/qlJ84Cx+bLX9ILepAgm?= =?us-ascii?Q?eia70OE9+6erFepWTgNR170sT3YPRkJ9lRWMHVVEkt+fWfmFyLfNhjr3cu/j?= =?us-ascii?Q?38FaLjFOSqd9+dE5ssEBVYP8SKKZs4hRu7mdHD88qYhx2weu9ZLjiKs7JAtb?= =?us-ascii?Q?b4sfksdcskDWGDiJLAJsZYUS5A7m9QcvhRLuKif6kPJ0Utr7PfFhb1nCaNIR?= =?us-ascii?Q?0EKJ1JNMkiAkuvGHh0an7ympFipoQxso9frQsUbAWLKzj9YIgBR5rrSh33vc?= =?us-ascii?Q?b7eOgc6Fic3Bn/7qrP4rdeSs1eDi+fwbClqQlpS8xllAWG3sve+2RUnBF7zz?= =?us-ascii?Q?QOhY+S/BOsvA1tIucxS457AapAQZXQ9S00gN/gHZooR2BIkHXb7wwfciXLYX?= =?us-ascii?Q?n/vAGM0fRn7U/k20zXhMGbGkYtvdj9SZaR+LtvGUFoHzjqa6cP0BwtJC6t+Z?= =?us-ascii?Q?7LoZ/AwfOj9wYFtaM3wln1Ng6Z0wkcnV65z2qhigtLpOOd/OuUWN7vjz/is0?= =?us-ascii?Q?FPnU1Az0WMrChNbK0p4Zz7SOUIBM786NUOtVABaBoHxG/tc79uJsW1wvUC3X?= =?us-ascii?Q?Jd2amSeyk7lLCqUFQq7X3wDc0zqqyQU4g1PWmIrxzfXbLRnnin2mlNQN9Aid?= =?us-ascii?Q?kfTbk2FrPAGtvwOmdzy7MHSOLROGNTLuuGdX2qhOBzLD4o2GtPArb11NpYw4?= =?us-ascii?Q?qzUhHu6Sfp3NQyytnLWH6wXBnTPit9+tznd/mMUupw7+njg+Cne1Ag1QHmTp?= =?us-ascii?Q?ZYFkMnTbw/upuazJYXyMsBoyI0it/cOjNPXq5j0AAhBoDjxlUgKoDvzNTpZ3?= =?us-ascii?Q?lcCzQllddrsAeF1SHvgZgHsTdfnxgEZpaF13cm+ayyrploFy6xYt2z4guAuU?= =?us-ascii?Q?3Z1VBBQEb19Cicr82sDs8zm6fQRR4xpiolE+w9N+rWebYbSCnu8mgosVAmmx?= =?us-ascii?Q?kstQXrcpiBlXjarKEC+B4LPjl0PKQmmsBkAOIxjzOgkmLpYGm9gI9eX3+R2x?= =?us-ascii?Q?HLQQeHxUN+w1vdLD0gHe+LQjYaEbgUpiS83PgTi9V3VYxbI2ocFOsiIWFpdI?= =?us-ascii?Q?WsC6AQHekA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab11019c-a369-489b-0042-08da54c4c096 X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB3176.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 03:02:04.9756 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MO+Es8qrrXWeGaRkwvsfO/24l4gFGTl5PIWDsJd3FAl/Ul+nh2GP7I+MzcDiF2610OVQJUK6xax57gQpPoROdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4390 ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1655953328; a=rsa-sha256; cv=pass; b=2gDJXu3uvHWpOcMDPWgDmDR/BsefSpFld4eJM2HDo3AgOhHBZakWwrw9jluRPk5klb8Wvj VwnPgKuOWRAgm7A9FN3NaDVnD2URr73750SfYFR3kwri46/1QqGdhtxmneDYsiFhaDjerq wJz/UclhGGz410AKyfKKJZ4R8wQZKLI= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=s9Abd0A2; spf=none (imf05.hostedemail.com: domain of apopple@nvidia.com has no SPF policy when checking 40.107.94.42) smtp.mailfrom=apopple@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655953328; 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=1XRCxLLcER1Q4Zg3vki2ZxDR9KNdWnmgvPt9yPFKxA4=; b=L64fRpYwtEIc3APVzAyzJOwPyu7Gefi/YP4+6L4l52dfQlfMQtNOeMlhBgMgsb+qO7yOgr SHxFyA9fQ6hrCfDXiFuVtc/45ho2gsGXrQSrYR/A4iUWEx7KEtnKH+KwX+wzIf4qLxuBQp y0VIOEYMhrfKvqwDidHzjQcOgOOY3a8= X-Rspamd-Queue-Id: 86C39100015 X-Rspam-User: Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=s9Abd0A2; spf=none (imf05.hostedemail.com: domain of apopple@nvidia.com has no SPF policy when checking 40.107.94.42) smtp.mailfrom=apopple@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com X-Rspamd-Server: rspam08 X-Stat-Signature: 9r6biom8tj7k9m3yjizyuiqxx3uipua6 X-HE-Tag: 1655953327-762763 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: "Aneesh Kumar K.V" writes: > From: Jagdish Gediya [...] > -static struct page *alloc_demote_page(struct page *page, unsigned long node) > +static struct page *alloc_demote_page(struct page *page, unsigned long private) > { > - struct migration_target_control mtc = { > - /* > - * Allocate from 'node', or fail quickly and quietly. > - * When this happens, 'page' will likely just be discarded > - * instead of migrated. > - */ > - .gfp_mask = (GFP_HIGHUSER_MOVABLE & ~__GFP_RECLAIM) | > - __GFP_THISNODE | __GFP_NOWARN | > - __GFP_NOMEMALLOC | GFP_NOWAIT, > - .nid = node > - }; > + struct page *target_page; > + nodemask_t *allowed_mask; > + struct migration_target_control *mtc; > + > + mtc = (struct migration_target_control *)private; > + > + allowed_mask = mtc->nmask; > + /* > + * make sure we allocate from the target node first also trying to > + * reclaim pages from the target node via kswapd if we are low on > + * free memory on target node. If we don't do this and if we have low > + * free memory on the target memtier, we would start allocating pages > + * from higher memory tiers without even forcing a demotion of cold > + * pages from the target memtier. This can result in the kernel placing > + * hotpages in higher memory tiers. > + */ > + mtc->nmask = NULL; > + mtc->gfp_mask |= __GFP_THISNODE; > + target_page = alloc_migration_target(page, (unsigned long)&mtc); I finally managed to get a system setup to start testing some of this out. However it quickly crashed due to the bad pointer in the above call - you need mtc not &mtc here. > + if (target_page) > + return target_page; > + > + mtc->gfp_mask &= ~__GFP_THISNODE; > + mtc->nmask = allowed_mask; > > return alloc_migration_target(page, (unsigned long)&mtc); And here. > } > @@ -1487,6 +1500,19 @@ static unsigned int demote_page_list(struct list_head *demote_pages, > { > int target_nid = next_demotion_node(pgdat->node_id); > unsigned int nr_succeeded; > + nodemask_t allowed_mask; > + > + struct migration_target_control mtc = { > + /* > + * Allocate from 'node', or fail quickly and quietly. > + * When this happens, 'page' will likely just be discarded > + * instead of migrated. > + */ > + .gfp_mask = (GFP_HIGHUSER_MOVABLE & ~__GFP_RECLAIM) | __GFP_NOWARN | > + __GFP_NOMEMALLOC | GFP_NOWAIT, > + .nid = target_nid, > + .nmask = &allowed_mask > + }; > > if (list_empty(demote_pages)) > return 0; > @@ -1494,10 +1520,12 @@ static unsigned int demote_page_list(struct list_head *demote_pages, > if (target_nid == NUMA_NO_NODE) > return 0; > > + node_get_allowed_targets(pgdat, &allowed_mask); > + > /* Demotion ignores all cpuset and mempolicy settings */ > migrate_pages(demote_pages, alloc_demote_page, NULL, > - target_nid, MIGRATE_ASYNC, MR_DEMOTION, > - &nr_succeeded); > + (unsigned long)&mtc, MIGRATE_ASYNC, MR_DEMOTION, > + &nr_succeeded); > > if (current_is_kswapd()) > __count_vm_events(PGDEMOTE_KSWAPD, nr_succeeded);