Re: [PATCH v5 1/9] mm/demotion: Add support for explicit memory tiers

From: Johannes Weiner
Date: Wed Jun 08 2022 - 10:11:37 EST


Hi Aneesh,

On Fri, Jun 03, 2022 at 07:12:29PM +0530, Aneesh Kumar K.V wrote:
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _LINUX_MEMORY_TIERS_H
> +#define _LINUX_MEMORY_TIERS_H
> +
> +#ifdef CONFIG_TIERED_MEMORY
> +
> +#define MEMORY_TIER_HBM_GPU 0
> +#define MEMORY_TIER_DRAM 1
> +#define MEMORY_TIER_PMEM 2
> +
> +#define MEMORY_RANK_HBM_GPU 300
> +#define MEMORY_RANK_DRAM 200
> +#define MEMORY_RANK_PMEM 100
> +
> +#define DEFAULT_MEMORY_TIER MEMORY_TIER_DRAM
> +#define MAX_MEMORY_TIERS 3

I understand the names are somewhat arbitrary, and the tier ID space
can be expanded down the line by bumping MAX_MEMORY_TIERS.

But starting out with a packed ID space can get quite awkward for
users when new tiers - especially intermediate tiers - show up in
existing configurations. I mentioned in the other email that DRAM !=
DRAM, so new tiers seem inevitable already.

It could make sense to start with a bigger address space and spread
out the list of kernel default tiers a bit within it:

MEMORY_TIER_GPU 0
MEMORY_TIER_DRAM 10
MEMORY_TIER_PMEM 20

etc.