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 15CE1C36017 for ; Tue, 1 Apr 2025 20:32:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 02275280002; Tue, 1 Apr 2025 16:32:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F11AC280001; Tue, 1 Apr 2025 16:32:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E0053280002; Tue, 1 Apr 2025 16:32:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C2B63280001 for ; Tue, 1 Apr 2025 16:32:47 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BBE12C08E3 for ; Tue, 1 Apr 2025 20:32:47 +0000 (UTC) X-FDA: 83286623574.19.E088833 Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) by imf07.hostedemail.com (Postfix) with ESMTP id C8E6F4000C for ; Tue, 1 Apr 2025 20:32:45 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=T2yTqDxU; dmarc=none; spf=pass (imf07.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.174 as permitted sender) smtp.mailfrom=gourry@gourry.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743539565; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=a2k6DkQdvevUPrjABauEbFK+K8GOAoD6LcLNKG6lEhw=; b=zQzgQ0QEuDPLNr1YjFwqYO7If3Ytfm6uhcNHPhcD4HlMCTBYtQG/C9ZyKcPVxk9eGUODG7 F0+aIspcBSSxhNBQu+BFIFOySu4InLEcEQtQOnirkvtK/8u9GmTR9OWuk4vTMeLuy6wZIv zDpMV0a420A4kiig45KisfLHZiGFC9o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743539565; a=rsa-sha256; cv=none; b=QUPT6w7ptCaygdYo6CNqOsIrAGz3JquPIS208Tw4BZkBYCYWnQut+8wRps4hGFqhoiSo0y SuBwEl2x2rsdazHPhh6kXjLAKIcxeyH/g9aUgX5Gk+6flqoHcXwt1wAnxj8BVzpvdFfGkT +WIa6JftCNOfitZIm8zUGywoO7DcOkk= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=T2yTqDxU; dmarc=none; spf=pass (imf07.hostedemail.com: domain of gourry@gourry.net designates 209.85.222.174 as permitted sender) smtp.mailfrom=gourry@gourry.net Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-7c542ffec37so612220885a.2 for ; Tue, 01 Apr 2025 13:32:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1743539565; x=1744144365; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=a2k6DkQdvevUPrjABauEbFK+K8GOAoD6LcLNKG6lEhw=; b=T2yTqDxUUHOlxOs5NAgMfCnyjmZbmma/3M+3RuAHeAA4f27o+PLOqZrg3p6w9+jzoh 7Tka2buFdqklkfmq4HIqV9d4LRsiciLRoYfnMfKjPwAlqI50cRPkHoSE+2CF659Ff9tr yv6uj6pkelfpKL0v/75WiVK2PHpfOyMqNxXy977BbmB1QCIgRuWMT42Q9Hjw+9CYQK55 CZCBJL4mpa3RP0HxwkqFIqj4XNt1sgFwQ9ABtDVeOFix02/vGUiKqek0LNstUOjrrh6D WjnXTznEYKmQe1SaM7hofxzof/uMTUZkSY/0Tn3rjVmcBxLpqdEys/2cN9lOWVJAZ+hJ eEYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743539565; x=1744144365; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=a2k6DkQdvevUPrjABauEbFK+K8GOAoD6LcLNKG6lEhw=; b=utxoaXtLsyJNtU4MGATp8mi/JH7zuzYwdyi74w0JQfCL0ihUZcZmMHR9qASZj45Fjl 2MgMN19ya2588xfGM6pUHLxqRlMEnK18HT2ITcnaXt11+zfSA72Ceu3SwWH+QWPJ3Vj4 SPG/Ch5GH1QACkWI5t3k9YLn2xJ1mJNrQYbYNlk7Z1fDx139DR0XeQIPHprEQKSvFTaL U8Ehxpzeqoo6nC8/IpENOwAFBEwmE6DgBtZUrIvCbXVIFyCcP66Ct5mdhtENEWRXK4/+ PReJd3veIJaBIeW4btmG2uujymShA5movy05DL+baG1fH3r+AGxMNma2ICbOQWntXRae 8bPg== X-Forwarded-Encrypted: i=1; AJvYcCXq2RV+YhmhNkYIcboIuwgz/o0Y/jmAfWhMH6W3hlqCIeDH6QPgi2vgRuk113NXIq2x1Kh4XDAysw==@kvack.org X-Gm-Message-State: AOJu0YzTkyzO66vnl7JoE0whUPqV8ui7WcHQGbjbZy8h75fAjvMlBZKw /8odZg5k6O1YE9g/M1vTcHVJQj6Avhjgm6PMH26xuHMcufwRmX/P/Ro1HuGSRTE= X-Gm-Gg: ASbGncvV5sOWmehKvvI88p62JgBaXBs/YB5NjfYekPr+o3N6+HJpuKHyVpryzHyxq8Q krFIlxL6g4Zi10XVkqDJTaWcdyg1iMGQqAAGVj/DfKl/CeUFcZXLpw9YyepbAaQkdRjtiVCMUTx /TzG75Nc7AIWyT+KYECQpke1YORy9JkI1xRXq4660pF+ozXnHst8lS+akQBaspQodWSzLbx9qom k40G00bZE/4bmcbW0fztFDJfTtP8zPToKiN3I2vn2QuZb5ccfuFOybo2zy/FqIG55qE8A7CVT+P op2B5nAoXx57GYT89zOk3gZxBHSO80O5s8OUcmdufBrM+SdMXhk24yXPNmokETDF2HILzUZb+No NPOHMzyJmMs3vY6fjck6ik7ktSNE= X-Google-Smtp-Source: AGHT+IHpA7yVkggd3SdpJmClfh3ARTdnupmvQOiOUgl5sud+yDFv7RLPVDRHK/OJg/kxrXh83AnMoQ== X-Received: by 2002:a05:620a:1987:b0:7c5:4949:23ea with SMTP id af79cd13be357-7c7664efa92mr930285a.47.1743539564817; Tue, 01 Apr 2025 13:32:44 -0700 (PDT) Received: from gourry-fedora-PF4VCD3F (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c5f777d700sm701590585a.103.2025.04.01.13.32.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 13:32:44 -0700 (PDT) Date: Tue, 1 Apr 2025 16:32:42 -0400 From: Gregory Price To: Rakie Kim Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, joshua.hahnjy@gmail.com, dan.j.williams@intel.com, ying.huang@linux.alibaba.com, david@redhat.com, Jonathan.Cameron@huawei.com, kernel_team@skhynix.com, honggyu.kim@sk.com, yunjeong.mun@sk.com Subject: Re: [PATCH v4 3/3] mm/mempolicy: Support memory hotplug in weighted interleave Message-ID: References: <20250401090901.1050-1-rakie.kim@sk.com> <20250401090901.1050-4-rakie.kim@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250401090901.1050-4-rakie.kim@sk.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C8E6F4000C X-Stat-Signature: buffiihu3rb9a7oztkqahbehcjqc9bzj X-Rspam-User: X-HE-Tag: 1743539565-760315 X-HE-Meta: U2FsdGVkX19mAKUeOaU3lFtBjc1lfNvba8CY8MLGcPmxabqsbvE8ICb+xsv0OiZECHt3eu123mnjcI7SBbbpca9szOLpH/VHPYNqIsCX3LYtYr49HF8BLokRrYTu0hdCPMY8JSDx5PvlIu5lB+WrJiCbQT+3FrQEE9dgTklrUGk0eHh91ImK0kYYWmZlYl7I/NzcBfwjTURtrBPsuL08V2NxUIakV81oZFf8gHTf8GLqmrHhwtcd758TW4M6Tdv39zrfHB6qaZtPHbf5jiYoWa9TL/hIDWP2294QxWESlrOtcJni5AifHjNWL+aAlBZWnkm0+WHoL0Sy/kfuN87rlY7K6ykSM6Tbsmd41TV49b/K+Op9GfbXND0vzSMxXjy46Jvq71/ZrK3TpUc/p5Z+t1D9t6PhL4gI89Tq4iMingklrj3eXRhIBEgynw3OTttFhq8P6leFm9cjMfrsJVHXXgfRVYScl7T+Ko96YEsjwtpTx5pqYk7rYpMW9rCH+gENS/M3QnV0fvwGa3MZLtm5EsS+BuJylPg0SXUIWhpnIgtydFy5t746P8EqC+bfysFvOWr68C9JFRAOLK/2UgP1nelzzo8WN+T6l0oQGtJdiCCzVhdT6S4Xe1mNrY4kVqJZd0RaW4QVKEHseMIEYDrDroxU2yhDkRYdjUpVv/5BHBJ6ffTHkcKMM5+UyoSI0BgUhlXjt+WBgVUTJdoRI5OrV3zaJ/Ssg5hr/FrUj1LnpA3BNBLZnFKiufXf7f1ivrudpsM4weZ0b/o+p788tpzrwslg2IoewgfxxS/gq7htQucjNOVdtYu4ss3jwbafLEr2+Nj+00ymNN69QLwqUf5R5xlyFjbqa4ndPx/T8umEsvgarEksSgAqUJE0rVyjyiVAICZ5fLdMpiYQbUigeX2FyRj+JS4/KarH0fE8XtBtVzuRhOvnOM/2OZHOHWL3iRoi1sQqILYGE4WEg7pA1DX DCCZIzyH HWCkcTbUAEUHbl731kjRH1qCqHNvjfRkuQAkpdVrvoZKSsJawORrbAH4PREM8s6UvrGIo3uY1TGSTsikwsRxLtZxJdrZnKN8w/5qi45ZhhFxxdx+TBwAlEk7npNjHzPMCP8d/apnxBfzY0+f8rjrfBnqC81cN6Xud/j+imO0dQA+aJwhBipQzOAneFki13MPncpjBd9sJzNXEPUrOZjfOkCjA+2l79vWKEtuxQsk2KjG0tjGxkytZKEjsEAi1iddo6VPHJP+SHbxg/r3bnRyod3HDjXFwH7vTS8DXcx4qFl7GRGdddtoO7mTb8e1++qpFIyIuqzZRmY4XhpCsSxToeVfLXlv3Xn9s4wanPBNtO7ma+7XnR3yhkScpDprtTdu9xFUIGGhFCz4LRWmJikFBe2SEizzedxPbNj64xUFXO6tYLi4= 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 Tue, Apr 01, 2025 at 06:08:59PM +0900, Rakie Kim wrote: > static void sysfs_wi_release(struct kobject *wi_kobj) > @@ -3464,35 +3477,84 @@ static const struct kobj_type wi_ktype = { > > static int sysfs_wi_node_add(int nid) > { ... snip .. > + mutex_lock(&wi_group->kobj_lock); > + if (wi_group->nattrs[nid]) { > + mutex_unlock(&wi_group->kobj_lock); > + pr_info("Node [%d] already exists\n", nid); > + kfree(new_attr); > + kfree(name); > + return 0; > + } > > - if (sysfs_create_file(&wi_group->wi_kobj, &node_attr->kobj_attr.attr)) { > - kfree(node_attr->kobj_attr.attr.name); > - kfree(node_attr); > - pr_err("failed to add attribute to weighted_interleave\n"); > - return -ENOMEM; > + wi_group->nattrs[nid] = new_attr; > + mutex_unlock(&wi_group->kobj_lock); > + Shouldn't all of this vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > + sysfs_attr_init(&wi_group->nattrs[nid]->kobj_attr.attr); > + wi_group->nattrs[nid]->kobj_attr.attr.name = name; > + wi_group->nattrs[nid]->kobj_attr.attr.mode = 0644; > + wi_group->nattrs[nid]->kobj_attr.show = node_show; > + wi_group->nattrs[nid]->kobj_attr.store = node_store; > + wi_group->nattrs[nid]->nid = nid; > + > + ret = sysfs_create_file(&wi_group->wi_kobj, > + &wi_group->nattrs[nid]->kobj_attr.attr); > + if (ret) { > + kfree(wi_group->nattrs[nid]->kobj_attr.attr.name); > + kfree(wi_group->nattrs[nid]); > + wi_group->nattrs[nid] = NULL; > + pr_err("Failed to add attribute to weighted_interleave: %d\n", ret); > } ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Be happening inside the lock as well? > + > + switch(action) { > + case MEM_ONLINE: > + if (node_state(nid, N_MEMORY)) { Hm, I see the issue here, ok, this node_state check isn't needed, as it will always be true. So this function needs to handle duplicates still. vvv > + err = sysfs_wi_node_add(nid); > + if (err) { > + pr_err("failed to add sysfs [node%d]\n", nid); > + return NOTIFY_BAD; > + } > + } > + break; > + case MEM_OFFLINE: > + if (!node_state(nid, N_MEMORY)) This check is good for the time being. > + sysfs_wi_node_release(nid); > + break; > + } > + > +notifier_end: > + return NOTIFY_OK; > } > > But really I think we probably just want to change to build on top of this: https://lore.kernel.org/all/20250401092716.537512-2-osalvador@suse.de/ And use register_node_notifier with NODE_BECAME_MEMORYLESS and NODE_BECAME_MEM_AWARE ~Gregory