Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp3997235ioo; Wed, 25 May 2022 12:26:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzd0hJgafSA3pa3k+VoOz4Wq1cZ/h2R4bLTtndmWvxVTmoCtTOSOah/LC521x++DjNqt4IZ X-Received: by 2002:a17:903:189:b0:163:56c3:8506 with SMTP id z9-20020a170903018900b0016356c38506mr4779962plg.70.1653506799853; Wed, 25 May 2022 12:26:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653506799; cv=none; d=google.com; s=arc-20160816; b=RHbpz1bxN9bj3f3X3ZLkp5Rb5H5t6TrKoEqgcZe1mS5fWiWkumOVzjgbL6IFh6CeTa H9Nu5rKs8y8U9HIGU33M/5NDD1kYFUaY0Qb54bavafKhR6gpfzjgBwz/31nsp7R8TZ84 Gh2Z4sxy4yASf786T0p+6pMlbpOXz4nwKygoj6g5oCA3LF39E4Ta6t/sGXtQHTyI2Dvz pQksZ8vR2W72Fjwxm4dCZdPnehpMpF58OczlSy8Y2AqL2ORrgxQqaheQNh3iZD6jnL5f FKQOmLXZ1swl640Iqf5QHHquQ7DF7VcYy0j4/F1yWc0i3sNXS+g17IWCBwXJfE1gf4oM r+wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=zijcLucoahr/KM0XRPqCphI5ViCGOh6UFjc4PGTwq4Y=; b=pKIWqdk5lgHdMSHqtyRejnLA3JG1u9QxTiLNM4ghHFl46o4kgyA0HkLyhmaVD9TKco 9c5AUXgDVngywQqppB7nF2Ymj2AbSUpwXKWTwOoirT00C05QwwYXqDEv8q76p1zFEEdM NXkWCy8+piL2tnUtV4ZBnIS1U/sVHaeLhBvezv2uCXNhMl8h/nCVa9SVGvVQl8bYRnc+ ZlehAK8z12ltRWwp/jjKLGmqvCOW/qucexsS8T3FE3/IFoqhm8xC5YLv5rzkdfVgXEo9 mLyBjbuEif32OoctmWhPpfWIxDAp6EOGv3qc4mifCmD2Iw0/w1dt0wKH9sarLyWaKLtE jolg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=gtdQv6bn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p14-20020a170902e74e00b00153b2d1650bsi3705265plf.275.2022.05.25.12.26.25; Wed, 25 May 2022 12:26:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=gtdQv6bn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245674AbiEYR15 (ORCPT + 99 others); Wed, 25 May 2022 13:27:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235417AbiEYR1z (ORCPT ); Wed, 25 May 2022 13:27:55 -0400 Received: from mail-ua1-x936.google.com (mail-ua1-x936.google.com [IPv6:2607:f8b0:4864:20::936]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB8A4344FE for ; Wed, 25 May 2022 10:27:54 -0700 (PDT) Received: by mail-ua1-x936.google.com with SMTP id z25so436214uan.9 for ; Wed, 25 May 2022 10:27:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=zijcLucoahr/KM0XRPqCphI5ViCGOh6UFjc4PGTwq4Y=; b=gtdQv6bn8yOWe1FGW+kl87jckZbV4SJiVYvJ7mCXXXw0tm7rAKODCYottupNSWmXiU qKn30BjsCkVht5P7kz0a3OAIspZH1Nq6VG8TdN0iHAviS6ypYMwtc+j90L7HmtM0BNVr rB8nivjIMbgLXXJos3NsWu+H8lCfb6NHvDtFEP1jlbS2YJzxHS2T5DLGIZxZJ9dGDqwg /r2fvwfqtpIQ1dkDhnGEVj9YixHnbScGUvk9jLw31f37Qkzc2McZ8XTjrY6H40P0N1bX TnkO08Q0ZIpnF+YThhPHk22XpCxFu6nFAbFfUXl4UVIx5lGg4zMwBuMScNiCUEKa1/VJ 67Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=zijcLucoahr/KM0XRPqCphI5ViCGOh6UFjc4PGTwq4Y=; b=s6mta1HTeMX/be66WFSkbcG0iqvp50O5r/+L2Ed/873WJhdUELMwVIUM+GCMhIhcYx sbcWtN2D7VxhsCMPl3y9i3vuQksxXhToRia8RLU2Vdlg2jFk5yowDa4tfVV9mr4I01FA 5TSID7JsNDzU3Dw9ejjtzXZSRscRMVzm9CO7BpB/4ijdE10er2XLz8LquSUBEiYs+Gt2 k0zuGmRhbs7T59nGWpLvdBxax+1Twr2tNmpcNsLXHUFL4O70Nz7aeKTHYKdFlSjMwu99 PULFqhR+1mJg0IjJ1gggra2eYGFcyVemGr2eh5OO09pbZJGMrkfbQC9pO0TGCnpZ0Kh2 lE2Q== X-Gm-Message-State: AOAM531pPdPQhFS4zQOLhfbDqWXLvMiRYwroMqzN6yVFlEz33acdf5E8 1NnCMJGdX+A5gXupal+lZo159ohM13o4gIl+OsHSZg== X-Received: by 2002:ab0:e14:0:b0:360:e13:e5d7 with SMTP id g20-20020ab00e14000000b003600e13e5d7mr11614478uak.95.1653499673748; Wed, 25 May 2022 10:27:53 -0700 (PDT) MIME-Version: 1.0 References: <20220512160010.00005bc4@Huawei.com> <6b7c472b50049592cde912f04ca47c696caa2227.camel@intel.com> <6ce724e5c67d4f7530457897fa08d0a8ba5dd6d0.camel@intel.com> <594046f8-9ab3-786a-fc48-8a61f1238f52@linux.ibm.com> In-Reply-To: <594046f8-9ab3-786a-fc48-8a61f1238f52@linux.ibm.com> From: Wei Xu Date: Wed, 25 May 2022 10:27:42 -0700 Message-ID: Subject: Re: RFC: Memory Tiering Kernel Interfaces (v2) To: Aneesh Kumar K V Cc: Ying Huang , Jonathan Cameron , Andrew Morton , Greg Thelen , Yang Shi , Linux Kernel Mailing List , Jagdish Gediya , Michal Hocko , Tim C Chen , Dave Hansen , Alistair Popple , Baolin Wang , Feng Tang , Davidlohr Bueso , Dan Williams , David Rientjes , Linux MM , Brice Goglin , Hesham Almatary Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 25, 2022 at 3:01 AM Aneesh Kumar K V wrote: > > On 5/25/22 2:33 PM, Ying Huang wrote: > > On Tue, 2022-05-24 at 22:32 -0700, Wei Xu wrote: > >> On Tue, May 24, 2022 at 1:24 AM Ying Huang wrote: > >>> > >>> On Tue, 2022-05-24 at 00:04 -0700, Wei Xu wrote: > >>>> On Thu, May 19, 2022 at 8:06 PM Ying Huang wrote: > >>>>> > > ... > > > > > OK. Just to confirm. Does this mean that we will have fixed device ID, > > for example, > > > > GPU memtier255 > > DRAM (with CPU) memtier0 > > PMEM memtier1 > > > > When we add a new memtier, it can be memtier254, or memter2? The rank > > value will determine the real demotion order. > > > > I think you may need to send v3 to make sure everyone is at the same > > page. > > > > What we have implemented which we will send as RFC shortly is below. > > cd /sys/dekvaneesh@ubuntu-guest:~$ cd /sys/devices/system/ > kvaneesh@ubuntu-guest:/sys/devices/system$ pwd > /sys/devices/system > kvaneesh@ubuntu-guest:/sys/devices/system$ ls > clockevents clocksource container cpu edac memory memtier mpic > node power > kvaneesh@ubuntu-guest:/sys/devices/system$ cd memtier/ > kvaneesh@ubuntu-guest:/sys/devices/system/memtier$ pwd > /sys/devices/system/memtier > kvaneesh@ubuntu-guest:/sys/devices/system/memtier$ ls > default_rank max_rank memtier1 power uevent > kvaneesh@ubuntu-guest:/sys/devices/system/memtier$ cat default_rank > 1 > kvaneesh@ubuntu-guest:/sys/devices/system/memtier$ cat max_rank > 3 For flexibility, we don't want max_rank to be interpreted as the number of memory tiers. Also, we want to leave spaces in rank values to allow new memtiers to be inserted when needed. So I'd suggest to make max_rank a much larger value (e.g. 255). > kvaneesh@ubuntu-guest:/sys/devices/system/memtier$ cd memtier1/ > kvaneesh@ubuntu-guest:/sys/devices/system/memtier/memtier1$ ls > nodelist power rank subsystem uevent > kvaneesh@ubuntu-guest:/sys/devices/system/memtier/memtier1$ cat nodelist > 0-3 > kvaneesh@ubuntu-guest:/sys/devices/system/memtier/memtier1$ cat rank > 1 > kvaneesh@ubuntu-guest:/sys/devices/system/memtier/memtier1$ cd > ../../node/node1/ > kvaneesh@ubuntu-guest:/sys/devices/system/node/node1$ cat memtier > 1 > kvaneesh@ubuntu-guest:/sys/devices/system/node/node1$ > root@ubuntu-guest:/sys/devices/system/node/node1# echo 0 > memtier > root@ubuntu-guest:/sys/devices/system/node/node1# cat memtier > 0 > root@ubuntu-guest:/sys/devices/system/node/node1# cd ../../memtier/ > root@ubuntu-guest:/sys/devices/system/memtier# ls > default_rank max_rank memtier0 memtier1 power uevent > root@ubuntu-guest:/sys/devices/system/memtier# cd memtier0/ > root@ubuntu-guest:/sys/devices/system/memtier/memtier0# cat nodelist > 1 > root@ubuntu-guest:/sys/devices/system/memtier/memtier0# cat rank > 0 It looks like the example here demonstrates the dynamic creation of memtier0. If so, how is the rank of memtier0 determined? If we want to support creating new memtiers at runtime, I think an explicit interface that specifies both device ID and rank is preferred to avoid implicit dependencies between device IDs and ranks. > root@ubuntu-guest:/sys/devices/system/memtier/memtier0# echo 4 > rank > bash: rank: Permission denied > root@ubuntu-guest:/sys/devices/system/memtier/memtier0#