Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp3705485rwi; Wed, 12 Oct 2022 05:54:37 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4ILcJRaoZ+IEnBG9Km6s3l/wdjXJNqzHCk7R/IAhdWvbe8nb22ut35/O8/0tD1Ki6AOEL3 X-Received: by 2002:a05:6402:11cb:b0:45c:ba86:d85d with SMTP id j11-20020a05640211cb00b0045cba86d85dmr1844442edw.259.1665579276821; Wed, 12 Oct 2022 05:54:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665579276; cv=none; d=google.com; s=arc-20160816; b=tgtmGzDrhumaaTC4agcwtuzt5MjN/dHu8MbhFCzPrYjeVJ8mTRoDjNgxMPTrPUvIjt DfAS4eaPcPWmceLn6IFzjD6xX6m7V6sDJncAqOV6O0bK1Jzxcj3FQdSYXaDW4zKXt0JV nF4SvoRQ41umYuJhFS27l63xaaNNAYqIrqzE7B81Ms99OaIxZtc+rWF3ooD2PHhwVODl IjGcSiCEjby89DRzqf6hbrI1e7q3IAB/ekOCaT97KaEvQtARMFfBuKa3vzHvoyW4XmlV CKu67DhR4SCoIp0omZGx0cDr7dMTzuFL3nF/VN1CKpADp6XDqGj7Qu8PfxzBAPsq8zMS OhNA== 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=NFBHoOeG3ghGeuO274+7fL8QgYjk7OYjm0X789Rsduk=; b=MQwMbAk9RBb3EVVjKpjg4afe692u/eqbgEvzsDcydVkbnVLC8bWMs7Lyk1GgnS3eLi Gd9x22T24QzQ7vpskO9JTCWYfi260pCv72qXioqBj5wxsvBEHXbyCkRh+P0oMpJOhuyQ xeF6yC5mR+rlFNFMWXITaQ6so9D9SqnRIWB8gL60uK/uHYaHap4Gx/jP/a1NVNMhj4eE I9m5tFxpizyJvTTiLQGyEh/CdRCj0VPPqJmiLACq1xm3iQnpHHDRjINYrKZBN1ykTGPj R0dYSm57vhTTWxImeAPAHzT6V9Y1oRdAq38bKOFeDJA1zA0GGxxgcAtg61CI1zJAy4/a URfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ea0YD8TE; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u16-20020aa7d990000000b0045c26f0050esi6063789eds.238.2022.10.12.05.54.10; Wed, 12 Oct 2022 05:54:36 -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=@gmail.com header.s=20210112 header.b=ea0YD8TE; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229813AbiJLMex (ORCPT + 99 others); Wed, 12 Oct 2022 08:34:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229676AbiJLMep (ORCPT ); Wed, 12 Oct 2022 08:34:45 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F574E099; Wed, 12 Oct 2022 05:34:43 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id z20so16073791plb.10; Wed, 12 Oct 2022 05:34:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=NFBHoOeG3ghGeuO274+7fL8QgYjk7OYjm0X789Rsduk=; b=ea0YD8TEwyHxV2D0ffzgep/rqf+7nMi89namwACoS79RTxlEuwazEaupSaJqkcaIhP W5BWcaB16bI2AalWWeM36/ijmi76MRUFY7aE+d/m83LdlAGuSeOdwL8B2R/V3bBq09D9 /p9L55f7HaKlONLqq8N1ZWKJ1q0pPVZalzfB9xgVrbqqbJ2UP80VxhzsQBeZQH8MG8W7 tj9vvM6YOCEFNMOLHKTXyAPP2I/jI2I5CkkRJ2eiLYyAO9I1UCsDYvOEbPrH+obRCv6y yxfwjE9IZYrkCpzlbrZ5DKX6wqB79ZqyomP7C1u83f7ty7IfaFl692KGlOqQrxAxxL2x NZCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=NFBHoOeG3ghGeuO274+7fL8QgYjk7OYjm0X789Rsduk=; b=Nks8kibAKPMbWVzc5b7e3chQ7QPe9pT5mFf8KpS5nuGkgLZN0Icmc7JP5owG14X3Zo rSBGNVniCtbhID85y8oBQNW3zrWLjNO6C6vZ1kQxTCFkS1wHL+GELY/OP7mcNx9fdTER Bd2gF/pTpDKH4BGkqqYUTMe+umDqC+JEW4WsdMu+eXWTEqSD5YvEktwtIA3q7NWoBkbo bttLygGuTiDPFphhu4703qWl7CM8UcVL8WyQZfOOWV91FkuF9zjc6Kq2KJJQy/jPosNz +sP7xQ703nzPj5ZPBE69YrCMg4eObTQjpB5upvWOZ3yg+8u2HpAGygRTjrvZsO7ltLhB z1eA== X-Gm-Message-State: ACrzQf1SZm1d0f8lsSRoZu4zSDciezKRv8bF9YefqLL4oUsX4zqsML2S H5Ojfmpv0JxMlIoC8nePbihqIgKZKhcyr1wW98s= X-Received: by 2002:a17:90b:4a4d:b0:20d:4dc7:fa72 with SMTP id lb13-20020a17090b4a4d00b0020d4dc7fa72mr4814262pjb.86.1665578083191; Wed, 12 Oct 2022 05:34:43 -0700 (PDT) MIME-Version: 1.0 References: <20221010094842.4123037-1-hezhongkun.hzk@bytedance.com> In-Reply-To: From: Vinicius Petrucci Date: Wed, 12 Oct 2022 07:34:06 -0500 Message-ID: Subject: Re: [RFC] mm: add new syscall pidfd_set_mempolicy() To: Michal Hocko Cc: Frank van der Linden , Zhongkun He , corbet@lwn.net, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, linux-doc@vger.kernel.org, wuyun.abel@bytedance.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 > Well, per address range operation is a completely different beast I > would say. External tool would need to a) understand what that range is > used for (e.g. stack/heap ranges, mmaped shared files like libraries or > private mappings) and b) by in sync with memory layout modifications > done by applications (e.g. that an mmap has been issued to back malloc > request). Quite a lot of understanding about the specific process. I > would say that with that intimate knowledge it is quite better to be > part of the process and do those changes from within of the process > itself. Sorry, this may be a digression, but just wanted to mention a particular use case from a project I recently collaborated on (to appear next month at IIWSC 2022: http://www.iiswc.org/iiswc2022/index.html). We carried out a performance analysis of the latest Linux AutoNUMA memory tiering on graph processing applications. We noticed that hot pages cannot be properly identified by the reactive approach used by AutoNUMA due to irregular/random memory access patterns. Thus, as a POC, we implemented and evaluated a simple idea of having an external user-level process/agent that, based on prior profiling results of memory regions, could make more effectively memory chunk/object-based mappings (instead of page-level allocation/migration) in advance on either DRAM or CXL/PMEM (via mbind calls). This kind of tiering solution could deliver up to 2x more performance for graph analytics workloads. We plan to evaluate other workloads as well. Having a feature like "pidfd/process_mbind" would really simplify our user-level agent implementation moving forward, as right now we are adding a LD_PRELOAD wrapper (for signal handler) to listen and execute "mbind" requests from another process. If there's any other alternative solution to this already (via ptrace?), please let me know. Thank you! Vinicius Petrucci Principal Performance Engineer Micron Technology