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 70803C7115B for ; Mon, 23 Jun 2025 14:27:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E4E26B00A3; Mon, 23 Jun 2025 10:27:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 095066B00B2; Mon, 23 Jun 2025 10:27:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC67F6B00B4; Mon, 23 Jun 2025 10:27:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D62206B00A3 for ; Mon, 23 Jun 2025 10:27:31 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 993F7103C5F for ; Mon, 23 Jun 2025 14:27:31 +0000 (UTC) X-FDA: 83586893502.17.1F23053 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf29.hostedemail.com (Postfix) with ESMTP id A8B38120009 for ; Mon, 23 Jun 2025 14:27:29 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BN9Tr3WQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of bijan311@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=bijan311@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750688849; a=rsa-sha256; cv=none; b=qVYg0qaoOYmQBNtBNHsg8ygGc0ejmSDTOVQQiN8Z3iBriOGrfszW7foXZwxLlWswiR3U12 LKBCQ4ddZ+QnJOsFAg4mGnvjjQqMaBHCZRQtZ7mj/niZnyke/SyxLJQ10P+FxfmYNZUed8 2D0dWqDK2UcHwJ4nIzhjS0xRCuRjWi0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BN9Tr3WQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of bijan311@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=bijan311@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750688849; 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=0mxmuO90Mgrv1homANIMZ/x/S7lf2iuPtj/uEFpEqR0=; b=PDu2GZeWXw3K7emzQIvEYoR2zcUG51PBdLdbCFKeFV1XcDD1NSS0HrE1Ajq0/c7PKj5j6i wtGucLn4t2idYRTME59x+DBoWUbYkVhdu0yoCFodJsBnyu/dVOetL10aMTTesKgqERzlEG s2imkFcVklzzeVuVDEi9fhdb1f39ZF4= Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-608acb0a27fso6533084a12.0 for ; Mon, 23 Jun 2025 07:27:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750688848; x=1751293648; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=0mxmuO90Mgrv1homANIMZ/x/S7lf2iuPtj/uEFpEqR0=; b=BN9Tr3WQODSe3ravQOOjcZDV2bleYNMppyyo8WeXlNjRYPEq9kNPWJhMEE996mQnIU lc02elNxVOg5B/NyVBFwRnQearUJ0/swpw0KBjOq23ozwU4rZ2LrDsQThrHOQp8xqdVZ hLc277DFc1yRwlpxELpLA3pmqo4fp9g5Of4uv1gcmN59p90sT5E6xtSNAzPwGjGrwQQ0 uoZiyV+g0Ce4QFoRqI0Wa+Q1uZJ6Y+WWW7K8GwS5kKrzfaxBZruzj97qpX5AU3d7e/lR EcpBxn9IOof0gL6DBWFEYWZA7OzAanrFYc5DjP2ZF90Sgd/kNToaPi5ordiZfhassdDL Dqhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750688848; x=1751293648; h=content-transfer-encoding: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=0mxmuO90Mgrv1homANIMZ/x/S7lf2iuPtj/uEFpEqR0=; b=VZMp1zPM9KFfjbM4CH/WdyNrg+pvxj5MIcwlvF1NdZkAUFfI7xTxN57rHr2TKn7BN3 X9aWDoXjaqpB7oALUm8UrSLMOxrOqImkzzaob384fkav/rSVha/Xqb7v3y0RHPgd6xOc GdnMDSOl7VEf6ltvfWLokphYbEjAxWw82HzpM63lpR9jQJJqwjVjoPVJFV7gcMLZMH8n Vmjsc2vSHGGzCOB2gzWHDQXSsSRjmgiozwJT5/zN5pZUu3Yk/uAJXtVlqp+PS7WpU7UT t5VAq1wRdWiERbE1xmK3UwrOCplkvtFnxp+KbPPYXajWgp/YwvzveLCas9CC/dscZU40 nTwA== X-Forwarded-Encrypted: i=1; AJvYcCWzNncvLjbgb/S/NGRkGa1sZMa+uL+9sh4+G34lhu8KbozLiPB+UOas+3Pp8tlWwtBjMDqzBUi1FA==@kvack.org X-Gm-Message-State: AOJu0YzuTsMRBuypMnNAVecvKKnfmXtm9mXqrDf/TYQ/B4o/2sJLksng 1Pjyhyqm03gsQ0B/eHsVP/IpOeqEEKfRimvX7y87kchvAR3zA5vwURBwxX+TZvmWxnzts9Tkfkx xEl1asAOyBWhN+mPnstssbLgiMP32VDk= X-Gm-Gg: ASbGncsAaNsAZlcIx7qzl+SH5AQiph1Ugi694+sGuq9VpP9fwh90YdoOp37KtlSMDzv 75SJ1PrpKqnvnbxE6u3WWAiOHGaD7SVlOOdhK84AteLlg+jfsYvXJLkD5wwLn2JEKaIOeGamY6G TqC+a63H9pBWhsIU7iDeat4NpIyrN2n4D5DEMJozOPHjfc/ZZHm1esHUzSllSTpFwnmwEC8jxOj +fyAw== X-Google-Smtp-Source: AGHT+IFg5WdPq/qtv4lksfp6KScFWAG840JHC2XOEBUW7uElx1+hH2peDn+CU3J7X0rKpYK4v7bpx2FOMkfNnjWA/wI= X-Received: by 2002:a17:907:60c8:b0:add:ed0d:a56c with SMTP id a640c23a62f3a-ae0578d9c7amr1099129266b.0.1750688847762; Mon, 23 Jun 2025 07:27:27 -0700 (PDT) MIME-Version: 1.0 References: <20250621180215.36243-1-sj@kernel.org> <20250621181127.36394-1-sj@kernel.org> In-Reply-To: <20250621181127.36394-1-sj@kernel.org> From: Bijan Tabatabai Date: Mon, 23 Jun 2025 09:27:16 -0500 X-Gm-Features: AX0GCFu6T2Sb_KHAJnfSsDjk8-dMwbeEOaowGMMnJk16KremJtvAzwu_az7M350 Message-ID: Subject: Re: [RFC PATCH v2 2/2] mm/damon/paddr: Allow multiple migrate targets To: SeongJae Park Cc: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, david@redhat.com, ziy@nvidia.com, matthew.brost@intel.com, joshua.hahnjy@gmail.com, rakie.kim@sk.com, byungchul@sk.com, gourry@gourry.net, ying.huang@linux.alibaba.com, apopple@nvidia.com, bijantabatab@micron.com, venkataravis@micron.com, emirakhur@micron.com, ajayjoshi@micron.com, vtavarespetr@micron.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: A8B38120009 X-Rspamd-Server: rspam10 X-Stat-Signature: a8gfte9bg5ufeyuxdu9o3jpnkikih6ma X-HE-Tag: 1750688849-552719 X-HE-Meta: U2FsdGVkX18nYUN6qBLI8u+YPJTFhO2+Irpw/yVRq3SFaIj1Upm0xOfLCjAJZpA5smScyyWUvLudUfwpv495+Tvxq5djBZd0dUk4aNYff4DEWalNtEwm7cQwt8jBw34KTwBd//vWju7oVG7opp41vw5IOTV/1wdCKGC5gZV9q01XVUnyzE/RCOEf82DW9oxoGpyiXOpvsnYN7VgyqX8HqGuGOgKdDG7Npjxu/RORjcGqCOZrmuSDYZzj1yxmXHbTI4rxC7AQmGL/RTvAu7UuyaqCO0Fkya/eixI+F2pcUnhoe925Wj25t8Is6VUFMVb5yWxTN48UBOWcGnh+GieQmsKGyCLU2EJVFKFyZaybMBTRjy9XEQyQrY85FrJ2pE2xlS7EwV1/Bcgxaq0v/JNxnJ1Kx/NewVtEk1sg3ppyt0x6WmXz1l1DaGEPzxKZz26UoabCjukDqY6HADI9/Ca+hgBirS1i00wSK2xCqwGbzpFhVFD/slcWi1E33yNHrWLOpUBTNOKjvoqhM9uZubIRHQctWrNVTbhr1ducVqM9wlptvfB09UeOjr3lKZjUTKZcu3gCgs6r3s1+FnmeKejblzrHTKFEnqM/lGqquuqdvTw9B3hvKjQPdnA+hpllmh4JAQwV43X3MuAQYqrE6q1UxVukQoggfcv+Oa1pPRUzFwV+JyyTsDkwoOygyMB6IDEmwG1Ry8ySTDGL5Oa9EkmBgAiqMkhYrkfuyqvIMo0Bh6THdCtPlylBSOUO1OmSbbAyhJON2M7rO8WQdq3L6SsPq+D56EeC6+O/2ygcVKoWhp+Hq/9kcE8npMEhR8jqp4k9eeTM8ARXyJX9Dymapmyhmc1CyOCDt2V96GAoKmhaz7LZipDvmPyUItOkmghznuZ2sh0Gh5tsn4RpgE2opre2EcE9Ouz3e50Dj4qyPxWM0C7qhYMUOqEjRsoAROm4JqZj4abkVcvkiuXKNc9mNi+ U9Ni+I+V PCWLBXA8domaXalhN+5n9lxI/KB/y+E2+wsEC8+2dF1OiMMaOKfA4OxDshMy1pkLBAYAWJvEPmDzooE74Qr8zjUdJylKEBGWsl9x+zvTzoYs0gEkrd4ZemghcjLHZfURM/vigQf/5hNpqsHjK3dzUaQLkB0S6KqVGcES7r64DvdaZ5+OzpX5gcuTqKEY7id8GvC4qENJLxe/Xbp97av/YKy8/XdFHSVdYcJQzUsoMKIs7QS7Nd+0A7vQaETdA0lUwmB9vokxT7VgFNZHyR64fH22FdsSeDLYso3V/xEJRR9zj3ePzgODc2SYmI671ygQD3sL74tzIWMIdE+Wn5wgwrOcA/tnXdKgsC657sin9iGaJLYrPXZv7833cUIlolZhVnoqAWMBzRnQfln2GocyZHwj0g3zP5t2qtfBG 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 Sat, Jun 21, 2025 at 1:11=E2=80=AFPM SeongJae Park wrote= : > > On Sat, 21 Jun 2025 11:02:15 -0700 SeongJae Park wrote: > > [...] > > I'd hence suggest to implement and use a simple weights handling mechan= ism > > here. It could be roud-robin way, like weighted interleaving, or proba= bilistic > > way, using damon_rand(). > > > > The round-robin way may be simpler in my opinion. For example, > > > > unsigned int damos_pa_nid_to_migrate(struct damos_migrate_dest *dest) > > { > > static unsigned int nr_migrated =3D 0; > > unsigned int total_weight =3D 0; > > unsigned int weights_to_ignore; > > size_t i; > > > > for (i =3D 0; i < dest->nr_dests; i++) > > total_weight +=3D dest->weight_arr[i]; > > weights_to_ignore =3D nr_migrate++ % total_weight; > > Actually, probabilistic way may be not that complicated. Maybe we could = to > below here. > > return damon_rand(0, total_weight) >=3D weight_to_ignore; > > > total_weight =3D 0; > > for (i =3D 0; i < dest->nr_dests; i++) { > > total_weight +=3D dest->weight_arr[i]; > > if (total_weight >=3D weights_to_ignore) > > return dest->node_id_arr[i]; > > } > > WARN_ON_ONCE(1, "I don't know what I did wrong"); > > return 0; > > } > > But damon_rand() might be more expensive than the roud-robin way, and arg= uably > roud-robin way is what usrs who familiar with weighted interleaving may e= asily > expect and even prefer? I have no preferrence here. I think my comments about the round-robin approach also apply here, but all things equal, I generally prefer being deterministic over being probabilistic when possible. Bijan [...]