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 9561CC3DA4A for ; Fri, 26 Jul 2024 21:56:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 168B56B0082; Fri, 26 Jul 2024 17:56:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 119576B0083; Fri, 26 Jul 2024 17:56:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F22936B0088; Fri, 26 Jul 2024 17:56:05 -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 D37EB6B0082 for ; Fri, 26 Jul 2024 17:56:05 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 6C90640176 for ; Fri, 26 Jul 2024 21:56:05 +0000 (UTC) X-FDA: 82383262290.11.1AF9A18 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by imf07.hostedemail.com (Postfix) with ESMTP id 9739F4000F for ; Fri, 26 Jul 2024 21:56:03 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=lDGa1hCr; spf=pass (imf07.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.182 as permitted sender) smtp.mailfrom=gourry@gourry.net; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722030938; a=rsa-sha256; cv=none; b=TrD+gMJf1tKAPtOT4WDJfZBaHJB4Xt1RF1c2d77y2acVvFQXIBB41VERQa+q5S2c8aCrvA hhVz01cqrgGHpMTcR0XXx7725XUvspPevh+qfenjHVVvtSanCN+bguFKbIiaPVecRHQek2 4CjebChemdSN49KzgsztrgeQZZTCbvM= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=lDGa1hCr; spf=pass (imf07.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.182 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=1722030938; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=vYo20ihtC42TqqCCz+7a2VTWK+V1RqG4C3Nqajh31so=; b=JJjUF3Vd8F0N1MWC8b4w04AXsTaAqrULivxuhIBV1VADyXbM4mDKpisZ9sUSc/X7kXDxT1 DNVTuAUvHcsbN5NhqFwc89K7C34LL4hnQuNGsHS2FYItDOTnPqogZ/wPgiAcuCSWk17wgu 59YH5ufhxR4hvvfqtyppFuQKQFbFIFQ= Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-7a1d066a5daso76766885a.3 for ; Fri, 26 Jul 2024 14:56:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1722030962; x=1722635762; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=vYo20ihtC42TqqCCz+7a2VTWK+V1RqG4C3Nqajh31so=; b=lDGa1hCrym3vxSmciD4JJPMsObeAnVBjj38brBgZLoxbo/5fwR+4U7W7au+eSV0yNM 7cWVIc8qcwJ6Jb6Hr9VNup5wAxvouLuIijnzaNTM/vwWoYp8k6PNkj1rxAVQMEJCKsrh aHeVB4cOPpSRkN33CQiM/CkkZ/JP5x4wsBHqyvTLjV7iwEZ/q8b8rwai/GnPOolb+ANJ CjjUSTOLkJgjXDgveMKkn2OwRAI1cWLyVmZBwdvGC0wraNPwlBbY1jW1RKaUA3KprKdi BTrUutQU4SC0T9uNMduq22H+LYutu8cQrmVj7htzFlM/DsLHUhl7zSDACKUeQtDNMEi3 r12w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722030962; x=1722635762; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vYo20ihtC42TqqCCz+7a2VTWK+V1RqG4C3Nqajh31so=; b=a4GtngFaChlA6OrfUhg3Wt0MU10OHr1Zz4ljdXkyArsmj+xF7tB63XvuwVNn6tYYGL dnDgtOXdLO+szwT5U2rXz6BEZ2jvFG4gp+CO2CsVE5BZD+wwx6Qt4VB7rsD0dFa0iOp+ uEy37Hc+cxoDh6gA/A3OwCny+4PoJglRPH410jtETXf0a172xKxF93MaBz9YAKFO9D5q bRAA4AAPBC+czlTb3iOU6RBwjEhOLu41AwEyVnF5kxtCf84bODLHYUR0CHW2uf+nYPaG GhBrp4q9ask5OckI/7bKgCjSOhNCAGZL79NEUvjITZLWN+QMKXrpCaDcFbzh9uPxmapQ mJQQ== X-Gm-Message-State: AOJu0YyAZRRPYMkgMLk2kvJlD+f47URF+gAzJRkeaNCw/IbyQhbdXTt4 fX5qmf8/r8YsoUL1zbAumTzZwVA/wiPeDpG4v7UhHmZZtdQiXpozzpmH4MU1r/P5Y0tG8di6gwd /nGA= X-Google-Smtp-Source: AGHT+IFUA/fLnYCWnsDHvFpZtDoWfetBhvPxCxdD6Yap2Sp22Tks1MSFqHnaHQ+QoyS/S2H4JSnUuQ== X-Received: by 2002:a05:620a:171e:b0:79f:108e:249d with SMTP id af79cd13be357-7a1e52f046cmr145741285a.60.1722030962254; Fri, 26 Jul 2024 14:56:02 -0700 (PDT) Received: from PC2K9PVX.TheFacebook.com (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7a1d7398d3asm215044985a.7.2024.07.26.14.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jul 2024 14:56:01 -0700 (PDT) From: Gregory Price To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, ying.huang@intel.com, dave.jiang@intel.com, Jonathan.Cameron@huawei.com, horenchuang@bytedance.com, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, dan.j.williams@intel.com, lenb@kernel.org Subject: [PATCH] acpi/hmat,mm/memtier: always register hmat adist calculation callback Date: Fri, 26 Jul 2024 17:55:48 -0400 Message-ID: <20240726215548.10653-1-gourry@gourry.net> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: qie35pzqi75odk1fcunfeideato87tc4 X-Rspamd-Queue-Id: 9739F4000F X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1722030963-134351 X-HE-Meta: U2FsdGVkX18T1BQlvTCn7FiduKrXU7mBctFCoZKpFQksw0BbFWneU0faKY8e7qH4gc+/C+X9qc4VSbHCehAmk0vL8mDfIshkkOWSRvLTPRTu/SOlfFTR/bi9TmIkHJz2NwFwtzSfW/BLXuUkgScdNJBClnyiqDxz1VEd6asOIaC46+7f45JrlBCdWVYTAxS+q6P3S5PzvvdT766j0zlyn6lWcut5BaoEbocaButnHuIQcU4w8gPgeJLVl7wgZT4ccSF48HAyDgVoi+3QDra8vqNDfsf7rGbFfykKwXkDOKpOupRbiLQnMg4eF4R7vwgd1+7OJkMbSoI5l+sGncdvdoViLPDzejTKBXoulT8kkJeN/Rx5bu0OozhbWgVYPi9I1gHpNicZcL1sqMU7j0LQ3DKsorhZnsnE76EbfvVEp97JmuTuPjwCe0YdOt8ch4HyVvtlzNjBEApOlOC70G2MgXoaLD6yFnNKmrDNvPS3PXe9X+BXM7MQ0A8S6uEWABLKvLltFCLuLE8szhqW/QX9oTmGdWJWFAPofO5zE8bToiZVeeVysTNauB2Spyyu5YRf1hrLu0AJCZ4stzmhGLnpDhbqIUYBjz2p6yTGEpamLMwo1WHOVCI1GrhlDCZ7UeBho5/P5ykKPZ8FqpGV4WURqdnZm+rbRqZIHa53yNZnT5xBUJVZiD/C7ZCsbNrOCxA3RjxQ/ghfieSBnh1fBkW0Qt3GdntKud2op1kJdBBsM1fNtyeIlpo5HIZDTRHNcBMXXrRuN5LZIZRJ6Ro+/fruRlhN6sXY2XvUzofTQai3N6ylb1OLjajQthalxQDNye1Y/p4NkNkqOTurrBS2+1q37pUuxyIxxIaSmP5MLHZ691Kc0OWvjybn/4t7i4P5tlL7QPyl5Nf+eQvDTROmAGycgG6jwTx9VLUQYXylekodglrhuMJnWEa51m4JDxcgVPJVAEXyQWLh6rSTL1MupHK UuBZG80P AkJoLHduat4v/oTdQwB6uGoPo/53U48I0uPKGANqUbTDd7SEWVNHPw6UOwv9d7Nk4FCW/b/hoBQEbq8DahV3MWs2IsdObHv7AiuSO/aQA/btNMcZMX246R/HTIRAb/AzIvh7r7Yx4jQ/QQ4+cyI+daOwnRCn3FzJIPSp04wzlczTz2Jpgw4siqTTafA9zEbXojnc8QM5vbwiCFBT0JEk9AbyWzpblYquB8kuEB20ea7A70xhRpxWaCln6Ln4xKdEApPtQBOQcDR5tRq8vh+SJw0+IAw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000046, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: In the event that hmat data is not available for the DRAM tier, or if it is invalid (bandwidth or latency is 0), we can still register a callback to calculate the abstract distance for non-cpu nodes and simply assign it a different tier manually. In the case where DRAM HMAT values are missing or not sane we manually assign adist=(MEMTIER_ADISTANCE_DRAM + MEMTIER_CHUNK_SIZE). If the HMAT data for the non-cpu tier is invalid (e.g. bw = 0), we cannot reasonable determine where to place the tier, so it will default to MEMTIER_ADISTANCE_DRAM (which is the existing behavior). Signed-off-by: Gregory Price --- drivers/acpi/numa/hmat.c | 6 ++++-- mm/memory-tiers.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index 2c8ccc91ebe6..1642d2bd83b5 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -1080,8 +1080,10 @@ static __init int hmat_init(void) if (hotplug_memory_notifier(hmat_callback, HMAT_CALLBACK_PRI)) goto out_put; - if (!hmat_set_default_dram_perf()) - register_mt_adistance_algorithm(&hmat_adist_nb); + if (hmat_set_default_dram_perf()) + pr_notice("Failed to set default dram perf\n"); + + register_mt_adistance_algorithm(&hmat_adist_nb); return 0; out_put: diff --git a/mm/memory-tiers.c b/mm/memory-tiers.c index 6632102bd5c9..43bd508938ae 100644 --- a/mm/memory-tiers.c +++ b/mm/memory-tiers.c @@ -765,8 +765,14 @@ int mt_perf_to_adistance(struct access_coordinate *perf, int *adist) perf->read_bandwidth + perf->write_bandwidth == 0) return -EINVAL; - if (default_dram_perf_ref_nid == NUMA_NO_NODE) - return -ENOENT; + /* + * If the DRAM tier did not have valid HMAT data, we can instead just + * assume that the non-cpu numa nodes are 1 tier below cpu nodes + */ + if (default_dram_perf_ref_nid == NUMA_NO_NODE) { + *adist = MEMTIER_ADISTANCE_DRAM + MEMTIER_CHUNK_SIZE; + return 0; + } /* * The abstract distance of a memory node is in direct proportion to -- 2.43.0