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 40B8DC282EC for ; Mon, 17 Mar 2025 15:05:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 738BA280002; Mon, 17 Mar 2025 11:05:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6C32F280001; Mon, 17 Mar 2025 11:05:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 56CF8280002; Mon, 17 Mar 2025 11:05:14 -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 37C71280001 for ; Mon, 17 Mar 2025 11:05:14 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0DD241401B4 for ; Mon, 17 Mar 2025 15:05:15 +0000 (UTC) X-FDA: 83231366190.04.6D5318D Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) by imf24.hostedemail.com (Postfix) with ESMTP id D9357180031 for ; Mon, 17 Mar 2025 15:05:12 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=L+XNVz7I; spf=pass (imf24.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.174 as permitted sender) smtp.mailfrom=gourry@gourry.net; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742223913; 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=Do4PfAhRjN1ZE9q+tkrUXzMGcEKWLaXah+vytV6rKAI=; b=ecgScwVN9X80ETAm5HrP1VvY4Xs3G5nnOBhC3VBuy1R1Iy++i94cloYC24zPF3PmI/wppR jvghprS+1ZLy+M3zC2h96QsYd747XrnPK2r0IqiJ57QfyHilYoMHPUy30Z4BbaXlVIyDbr k6LDOJx6W0XUGOvvkFwls7OxOU9q9aw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742223913; a=rsa-sha256; cv=none; b=j4PHwOcB6XO6XZBP7cPQ7O88QJG+TQLA3GapIF1BXq/EesDBObfxSNxcjIGNvX14F0lnmm 0dDPIhOntW9jrI0XfLqu0oE3p5WG1qaJq8zVQsLtfyVMhaYjd8bRrnSkWGZSXQtB0pAHjL TS6a/JMB1LjIOEeA5JaD6ZBEzMp7/y4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=L+XNVz7I; spf=pass (imf24.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.174 as permitted sender) smtp.mailfrom=gourry@gourry.net; dmarc=none Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-7c55500cf80so343459485a.1 for ; Mon, 17 Mar 2025 08:05:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1742223912; x=1742828712; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=Do4PfAhRjN1ZE9q+tkrUXzMGcEKWLaXah+vytV6rKAI=; b=L+XNVz7IJF7CCXxZVzPlZaUi5Mvi1nCLJKqyLGykz7aXUTjdtKNZ+rqEZ3+8GNHLdc w/wPcGHdBuGBiXBiO0A4CIQ4Zw8jczlWJcZ2qjWf14vmSqyRy+XJhL/Y6Grv79v+o5Dj l0LZEYoXau2KWzLzeusnp3FFbVpDCelbA6mfmAjtSAwhAS7ryqU6RWyq2WWnVf8GAlJQ TB2ifZ56Zf3SrWN3TeWbpYw2tupfs+FoMGWzJH4+qLXHn0IVzqFwJGC7vg5zFgwaWrZn dL1YXR4abPjYM3JzM2sbBagCXSnJEkDPC18oYRvcWLVzc/T6txtVxhFuTkaL0H20YwAi t3Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742223912; x=1742828712; h=in-reply-to:content-transfer-encoding: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=Do4PfAhRjN1ZE9q+tkrUXzMGcEKWLaXah+vytV6rKAI=; b=JS8dBnumfEy8ZeCs3/NTqt6uL+jBoCi7EHX6vHSI7n0DHqEGtE+Sp3VqtoIQk6jF3W KiKNwZZJwGekPe29FOlRkeDQSvaT+MncqlAHHPH928dvW8mAs6M9+IIJqBzQsSu7MsHB eNsV0jQUhLzGaaJZkbAv+8yRMy911/17RUICdWM0jYzCLc/A0DkTvwB2TNlF5+kaWX32 KmUnYeXX6lEvdd17PYGfzm1BKjiEWWr9Em+4cIOkTkVme4mACpBi4TRpPFbp1eUKS5oV DvcVv4VBzD2a22uEZGVjQBerUl2RaT7BVQAYJIqx/+m93VfzYqD9sTWmuhM6CuU/mPWc Zv2A== X-Forwarded-Encrypted: i=1; AJvYcCWyQ/Otf3IF6aGX40WLyvXBc5TJW2XtwVe698mdpsBMSuQ9C0cpQu1cpjrbntI6JpYVpMr2ZrXb8w==@kvack.org X-Gm-Message-State: AOJu0Yw52I28Boo0SD91N8tsldLovNv052XUmruUH8EMqS/Eca93HqRQ NPojwNoIZJjtZnoPkEsdJaJ9xJlGggTndFw2BsXk7AczjP6quuDoIAVeNzBBQhQ= X-Gm-Gg: ASbGncsyqRH5ndg1Cc4gIssqCr0/ma41/n8gVhNiClU2d0NMIq6l07LRoBnrvsSTk8g Wkob7DIVF44URelaJIb+INzwu5JD9dBixz6wobwEkbk8Zefq0nKOfHKsVkqBDkLlZfoaaiHvqzX 53eeAxZBfnsZG4H6ebYoQw0x6WEqo2zcid78nkpZCAjgH2xWeG1HhuTWuNBEZnzNqbJXY9xhxoa DYjbUfTkK/+7NxA0kLzh80Tp0egTpJSCsYlpW8AfviEzhxBRLPfZrp+hcJx3nO6z6CSX1UPMsSC lY74Pp/VQ9gZvXeJlYZCGJowE8/0PwCyeLEWXz47H4AgG8852zYwQXNYm+GGcER7SZMQmNKYAgX ElYubr1EPpbZDgtUXTKflyU4iR+w= X-Google-Smtp-Source: AGHT+IG21+kCqbdPsFmlT3qZ0Ku1ARmrjRaphX6XmemOTmyDUqobP8hrLzB24w1nkifNUyeEnm3Lvw== X-Received: by 2002:a05:620a:1d0d:b0:7c5:4711:dc54 with SMTP id af79cd13be357-7c57c5acf88mr1721265485a.0.1742223911830; Mon, 17 Mar 2025 08:05:11 -0700 (PDT) Received: from gourry-fedora-PF4VCD3F (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c573da47ddsm593190685a.117.2025.03.17.08.05.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Mar 2025 08:05:11 -0700 (PDT) Date: Mon, 17 Mar 2025 11:05:08 -0400 From: Gregory Price To: Bharata B Rao Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, AneeshKumar.KizhakeVeetil@arm.com, Hasan.Maruf@amd.com, Jonathan.Cameron@huawei.com, Michael.Day@amd.com, akpm@linux-foundation.org, dave.hansen@intel.com, david@redhat.com, feng.tang@intel.com, hannes@cmpxchg.org, honggyu.kim@sk.com, hughd@google.com, jhubbard@nvidia.com, k.shutemov@gmail.com, kbusch@meta.com, kmanaouil.dev@gmail.com, leesuyeon0506@gmail.com, leillc@google.com, liam.howlett@oracle.com, mgorman@techsingularity.net, mingo@redhat.com, nadav.amit@gmail.com, nphamcs@gmail.com, peterz@infradead.org, raghavendra.kt@amd.com, riel@surriel.com, rientjes@google.com, rppt@kernel.org, shivankg@amd.com, shy828301@gmail.com, sj@kernel.org, vbabka@suse.cz, weixugc@google.com, willy@infradead.org, ying.huang@linux.alibaba.com, ziy@nvidia.com, yuanchu@google.com Subject: Re: [RFC PATCH 2/4] mm: kpromoted: Hot page info collection and promotion daemon Message-ID: References: <20250306054532.221138-1-bharata@amd.com> <20250306054532.221138-3-bharata@amd.com> <20250313164430.bzkfyqmx6a5dj7d2@offworld> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: D9357180031 X-Stat-Signature: swuufuobh9p8rz8ec6chpewnk46pzrgd X-HE-Tag: 1742223912-655368 X-HE-Meta: U2FsdGVkX1/nA1QhIQtjXdRSUVdPKOCE5E+ST623BqDUxj6BGTmaNfupR9ZArSqGK6+G/wJpiYkyfdziQH9EvjfaRCbIubPX/TSBeDhK0eQbCPSa95oaY3w+U7ZEE7g5eJQ2WAD6JDKOtOlqGdgcJ3DsRa3GYqRJeEq+lRu4XZ0Y6FFRV7sFGfr7hdH7xYtYpgyEd++EhxjylpyYKhsQvEePNq8LxVU0uWM8hXR3xuRiNqr8xD7ZFpWT4yrvpL22swInX+cbanFoCfkz5Na/6eaFUgLe1pvlpywFFspcbNaDF86kDl8zsjoXyotCUNaapAGLC0TXPXijO3TbU4ZRKwkKGYxUlD8MVswD7Wr2ZNacG0u0DvbaIgfvzCXVmrq5miDRDcrhBMTTXwfxoRY4Fv15znE0KyK90BOP5cwu50dnX3NN5lPXc1JcXNVHZs39Mg9Rh7L0FfwTwwP0ykF0KTnKseg55rFcgw1Y2y1pGJx60fdJShMdLYJTvGEE6vjsEvpf5Y/ssxQ5uc+K1HJxEgKgTbUEMmSW8eVgdnZY2b9dezwvhNA1Q/6m3x/wRF16UAl0HHiebSx/1eboROzXcbiciqot2fDSJrvHd8hMEggy7BqN6Yq9PjzZ2DoY8QNpCOULIkiHyUumFLVCWe40jv94fDRLKOoCNdIO8aQVWlQOtEFZNaftx/UK/M6ntrqHBMN/elc22ZnLaE+M7USTtiOhBNQ9yhrg9IrclVM83idv7VXLbrLARCUP+6q/J1KMtOpyc89ZIwyczAq+bSI3LClCzf5IPeoN8RWexrRGwTzzA1G3A49zXhfHs2N2AJI7bmje7sqgpQFiMXXrXk4Ipcfgl8OiizAaq0298kxTLZDJP03+HsSlJ3P7WSP/FiZmnsggDyXNWHAu8/bbdcfq2LLM7vACbRYbVBAsMLInOK0vDFt9DGcjwke0IjUrAxYC87ArZTVQSEYYYgWPPsN D6SsRs/E M1sucg0/sdFi5mnkk3+tSZ8teOAkxXY9FPkiWFLmqoT4nwElyCxQmNO0cPwsjvgR4R3XMZ5PstsxOtTKSoGgKs4eHd36SM6ya4SZ3BrTj/O0TT6/gIyOfHcutR+FJb+N9UiTp2dkRAq9L5IvvCFf72QHQj0SncYiL9EowiADWNm0n7rRumLzjQ38owdasrVXXh9nOZKCTD7k4I4A6xdD7coxAAV09JYgMYX6ss5x4+YsTFQq7cEv2/ztmj3m1+mL1kYJQA1FnkiuEqnoPX9YK9eQeJ6FFda3CrpPFqTFJQ5t/Q+nFC5lzUN2F2yhcoiONyDc7q8Bjs9ZOj6ZIxEiiEfZ1ZUbYL1Rl29CwMbPbCvQilpC7cu1di7LPYQa1vWdDgN1TrlbD0gE6nBwXzqXpwkvfkhdci2AJoST1Cf8bhAxRGZ8= 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 Mon, Mar 17, 2025 at 09:09:18AM +0530, Bharata B Rao wrote: > On 13-Mar-25 10:14 PM, Davidlohr Bueso wrote: > > On Thu, 06 Mar 2025, Bharata B Rao wrote: > > > > > +static int page_should_be_promoted(struct page_hotness_info *phi) > > > +{ > > > +    struct page *page = pfn_to_online_page(phi->pfn); > > > +    unsigned long now = jiffies; > > > +    struct folio *folio; > > > + > > > +    if (!page || is_zone_device_page(page)) > > > +        return false; > > > + > > > +    folio = page_folio(page); > > > +    if (!folio_test_lru(folio)) { > > > +        count_vm_event(KPROMOTED_MIG_NON_LRU); > > > +        return false; > > > +    } > > > +    if (folio_nid(folio) == phi->hot_node) { > > > +        count_vm_event(KPROMOTED_MIG_RIGHT_NODE); > > > +        return false; > > > +    } > > > > How about using the LRU age itself: > > Sounds like a good check for page hotness. > > > > > if (folio_test_active()) > >    return true; > > But the numbers I obtained with this check added, didn't really hit this > condition all that much. I was running a multi-threaded application that > allocates enough memory such that the allocation spills over from DRAM node > to the CXL node. Threads keep touching the memory pages in random order. > Is demotion enabled by any chance? i.e. are you sure it's actually allocating from CXL and not demoting cold stuff to CXL? > kpromoted_recorded_accesses 960620 /* Number of recorded accesses */ > kpromoted_recorded_hwhints 960620 /* Nr accesses via HW hints, IBS in this > case */ > kpromoted_recorded_pgtscans 0 > kpromoted_record_toptier 638006 /* Nr toptier accesses */ > kpromoted_record_added 321234 /* Nr (CXL) accesses that are tracked */ > kpromoted_record_exists 1380 > kpromoted_mig_right_node 0 > kpromoted_mig_non_lru 226 > kpromoted_mig_lru_active 47 /* Number of accesses considered for promotion > as determined by folio_test_active() check */ > kpromoted_mig_cold_old 0 > kpromoted_mig_cold_not_accessed 1373 > kpromoted_mig_candidate 319635 > kpromoted_mig_promoted 319635 > kpromoted_mig_dropped 1599 > > Need to check why is this the case. > > > > > > + > > > +    /* If the page was hot a while ago, don't promote */ > > > +    if ((now - phi->last_update) > 2 * > > > msecs_to_jiffies(KPROMOTED_FREQ_WINDOW)) { > > > +        count_vm_event(KPROMOTED_MIG_COLD_OLD); > > > +        return false; > > > +    } > > > + > > > +    /* If the page hasn't been accessed enough number of times, > > > don't promote */ > > > +    if (phi->frequency < KPRMOTED_FREQ_THRESHOLD) { > > > +        count_vm_event(KPROMOTED_MIG_COLD_NOT_ACCESSED); > > > +        return false; > > > +    } > > > +    return true; > > > +} > > > > ... > > > > > +static int kpromoted(void *p) > > > +{ > > > +    pg_data_t *pgdat = (pg_data_t *)p; > > > +    struct task_struct *tsk = current; > > > +    long timeout = msecs_to_jiffies(KPROMOTE_DELAY); > > > + > > > +    const struct cpumask *cpumask = cpumask_of_node(pgdat->node_id); > > > + > > > +    if (!cpumask_empty(cpumask)) > > > +        set_cpus_allowed_ptr(tsk, cpumask); > > > > Explicit cpumasks are not needed if you use kthread_create_on_node(). > > Thanks, will incorporate. > > Regards, > Bharata.