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 F2F16C36002 for ; Fri, 21 Mar 2025 14:24:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 68E95280002; Fri, 21 Mar 2025 10:24:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 61A0E280001; Fri, 21 Mar 2025 10:24:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B8F3280002; Fri, 21 Mar 2025 10:24:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 2C854280001 for ; Fri, 21 Mar 2025 10:24:51 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6674112225F for ; Fri, 21 Mar 2025 14:24:51 +0000 (UTC) X-FDA: 83245779582.04.8F2F00B Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by imf26.hostedemail.com (Postfix) with ESMTP id 8056614000C for ; Fri, 21 Mar 2025 14:24:49 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=R3ckf2yL; spf=pass (imf26.hostedemail.com: domain of gourry@gourry.net designates 209.85.219.42 as permitted sender) smtp.mailfrom=gourry@gourry.net; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742567089; 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=69s8y69dA2iHvCOzWVvchKfNb2Pevk6gRGLN3vcOyXY=; b=G5XB83c8DQSg/jpo3RLIouEMFfEK6pr9eph8EY7A9ZG8P91kX2JYtbJizH964Nw/Tdd0Hm AJnfjumLFogGi3dRFCCCvdnqA6MzAWX+Zz+QH4Ee6Zlfe4bQInz5Qp4kS5b/mo8UfhowEk TmWQQeVrPf84FrgQ/Lac7i+YQGkORT8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742567089; a=rsa-sha256; cv=none; b=Ul9tBImDGPrMJhSQjWU4M0hiXCl6GTamBqiY0TDpM1GokOTX/bpTp5+F4CT0x6gjImzD6E pjsuXn1M2JY1bDRdeSWA1k4D7DUvSBM1zfLUcANkAcxjzNv5cM8D78I6EPA27lyW+6DIiu LZJ0ydtLZfs2hcuJYzJIJQ1cfoQlxN0= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gourry.net header.s=google header.b=R3ckf2yL; spf=pass (imf26.hostedemail.com: domain of gourry@gourry.net designates 209.85.219.42 as permitted sender) smtp.mailfrom=gourry@gourry.net; dmarc=none Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6e8ec399427so15653116d6.2 for ; Fri, 21 Mar 2025 07:24:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1742567088; x=1743171888; 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=69s8y69dA2iHvCOzWVvchKfNb2Pevk6gRGLN3vcOyXY=; b=R3ckf2yLRChD0pMYemimzjHbZ1ywTmCOK/HjHILXB9VF6kEQutcg5YRY2zyQ/kc2JK C3gVdfw5TloEU0KCG69wuIpvGnEzDwBNs39Hnj/ptCpIfv4j7zOXt8q3cKxxpwAEbdW5 DPY00uYu8I2p+oVe0C+SVoCXhXkvg2Ar9E5G/NRqzMqbo9nesq5C5Lnzv7h/KelVPWB9 le+4d05qWb1eDDfQdkc1BMVEyvBywUFbPzEur9IzZtXPrdOsQJG9sntrQJ3TfvXFAfWA PFvNxRHfYIIz/hrXV8xB0Suk8PLoLMGOrli5w04CS646Xb4tA54yAyXggm0JIic+wqIx TBDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742567088; x=1743171888; 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=69s8y69dA2iHvCOzWVvchKfNb2Pevk6gRGLN3vcOyXY=; b=E/zipZ0ROrML6+meAn02bpYfh/V1xWCIlgmAV/RDbTTn1ETur9RHAaewhlemeh3Z1t c5WmO6SHYRBfuAoHuWBTmgZ7DoM2OrtrAXxj7lvnSooVEUcydGuCDDxsvfpv3CMMiB10 YHl9yD283Vo788z49BKIadAO4ejgjnlZE5qBuqhQi2Upaj28zOXB0ewSD+034evjewyU s0J1xq/ya5DtlkELkHArf4dkziYM/niQUYlS61xkBgzIcSlYvXAA1M+irivVm6Ljz1DC WUITHS7rOlN2BlhkKhybk97lIpKNQfwzMBM5JbAffAUM2uVJxrlj46NljhqAyxS3R4+/ Elog== X-Forwarded-Encrypted: i=1; AJvYcCUdmcQpv0nIzISy7+c2DzzdtH10yY4wO7x83GdMIObV/AWkgA6yKjxP3YQU2VqbJW79mYR2goPWVA==@kvack.org X-Gm-Message-State: AOJu0Yzx8vc3tArIZADKILK2VmTWeVQ3Dk38452JPctv23xaxu06yUiS zYWZ1y0JnpBLY1cAowfWQqNIY3ha75BKv5N9N1inkrQFE4oYxjrXOqk9Cd7loj4= X-Gm-Gg: ASbGncuXAhMO9yvbsxKalTVgX/+JZKKkqel6P+512D82mHU0BNr7jRzaEo2A9DErMQP BUMeXSGiukQVihRpxrjT+mn3DcAVKR5p9KxVcHT+Ak9fDoB9KtrcYBN9UW27T0Ur35qbyqlfBde jryClTkPCZhGejsmMbkPoIEKNEBD2NO0gl3vF9qOSPvExZtzjnKPhJqA1wItZ5FgJ08KPDIYxU7 2NV75Z08kY7deEVTNF0hAKG7ZK9Dw7N30UW1eObO+TV06ktDPhH2y0O/8OdRkNIXWoRQt5iFqHw Ey6JQhrkqEWmSTm20FQxtsYa+kizChcwNyjE5JXcCXUUr5I3g/Byr4dD0dHBROxV21gj/gD8IKz BDmE/lI/DvIUIBUPsgrjxOOI4hzE= X-Google-Smtp-Source: AGHT+IFnmfQBTkT3h+MKJEQnCw/DkMwVRgocyPIP5yUesWNNpKMxrx7pD8ssts4+almvOH3s+oc8IQ== X-Received: by 2002:ad4:4ea6:0:b0:6d8:80e8:d567 with SMTP id 6a1803df08f44-6eb3f2e2651mr53079806d6.18.1742567088549; Fri, 21 Mar 2025 07:24:48 -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 6a1803df08f44-6eb3ef33e4bsm11644556d6.53.2025.03.21.07.24.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 07:24:48 -0700 (PDT) Date: Fri, 21 Mar 2025 10:24:46 -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 v3 3/3] mm/mempolicy: Support memory hotplug in weighted interleave Message-ID: References: <20250320041749.881-1-rakie.kim@sk.com> <20250320041749.881-4-rakie.kim@sk.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250320041749.881-4-rakie.kim@sk.com> X-Stat-Signature: 36i7nub9bk5fks6afp9ddyag9q5z4z5u X-Rspam-User: X-Rspamd-Queue-Id: 8056614000C X-Rspamd-Server: rspam08 X-HE-Tag: 1742567089-3122 X-HE-Meta: U2FsdGVkX1+AdzCYx/dNYzsyVp5q0NHeg9MmWvNZvx2/uK7gWB2JA67BPhq7GTy9YOkSqnaSVIJnUHXiGv9J8O2cWoP5JyAeZkG57iu4YqX3LnZ61EeH8FgZTuQpDqSbsPzqkHUBMODGIJYd164qdzfq8J5mdL/kcYOP4qEgWW+VWLHF4J7cV1q39h94xm0N7WKKFHfzgJIlCwgOJXlViJjims3QQzxJKL7WaZFSy73qtI1zhsWD+3jBadTPHBe/rxhEXhBB6Bi0AGpQ6fuwK8YmsVUHYE16Br/2ZPOIOtOAcGuMe1j9KjAF8JkxAPZ3dh4w7hYevVGV0PRZ02bVhMqDu321x80bB/U4+JN8NSffpN/YGYa0oCxKkGBIlsPYUys+0XYPU37gbyO90s1q37cujr7SHZHR2CG5R8+loZI7Z6bnj6S1BGUjz2+TOc2C/AwR5EXTtxSe11pMt5uCXZNDf0pNGyhW1kggwJZPnWhcXgY2X0jm4XNilTqeiMPDzi+HdRu4NNV78/nsPWvcM+oMRCA8b/u3am759gLzQ1aVU5mbg0foFeT+BnZGCS6qC0YGTNEyuQH63c8q3RSLIccs62+iWlleWCGuPPoVYLs3qAPKqdG0XpeNeQxO5iOgwdSW0RfSMBijTnqE1jn+Mt49R7Mr83s6+Ga0/fOOwKT9cJOdOQRgqfxTvIkZeYDAvx9O1oNXm28KJrFKuOgLjaKI3hMS4w4nwnULEH9auvhR2jPfEIZHHR5oja0fvwO793IfpV6LiwMqVTCB1Lo2Ch9VxLCgyGudvGZFaTQRSHyxvqhcFcpAONLOGt8wh3DN8k0jBRyZXIPs4Bf0RjiQmTZjbuWkpBb+O/vdrW1XMN6cFIPi6TKotu/3OQvfRWdeMlZVGGhm2QPN7/I2AGkjODtc89/jcprefh00nAMB7etcbmqkBAwCWsv/wfPomJtNRxKMrj1pydI9b15LU8M Of9MjRow 1aS0c1v3YSgkcvV8sOVx2L/gLtPGnhlND2DkvTn22avzJqLEOcwyEflMgoU1aBuTIOueTL/9n+8RArvMSKnVKVDyUFdN0F/rUiZx3bQ9Qq6YXzxVqLm0tiakwrtT9Wi40Lk3fJ+0A/ntYrPoarM1pqs88MsZ8pJPlWRkS2au3q/kE94crshs1Ke0g1F1GzpJQO032vrTtqSMTa5UftVrgSG8kIwWZyN66VoBuZWwS6aNMwxMwRC1OXw+9S4aFU/ttHNVXlpd94WyEotBVaFJ1sWZ597G6xxu0R8OyUE60GJu29hMLJkK3zdl57vNO3VDH3HIKZDvMLwl1fFDtVEZNCjF3yyrx6kB5knFBVU94poo9yhv3deX73zPpN0a847Ean9Ryw33qofCsU+eYnYxeKJBnhw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000034, 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 Thu, Mar 20, 2025 at 01:17:48PM +0900, Rakie Kim wrote: ... snip ... > + mutex_lock(&sgrp->kobj_lock); > + if (sgrp->nattrs[nid]) { > + mutex_unlock(&sgrp->kobj_lock); > + pr_info("Node [%d] already exists\n", nid); > + kfree(new_attr); > + kfree(name); > + return 0; > + } > > - if (sysfs_create_file(&sgrp->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; > + sgrp->nattrs[nid] = new_attr; > + mutex_unlock(&sgrp->kobj_lock); > + > + sysfs_attr_init(&sgrp->nattrs[nid]->kobj_attr.attr); > + sgrp->nattrs[nid]->kobj_attr.attr.name = name; > + sgrp->nattrs[nid]->kobj_attr.attr.mode = 0644; > + sgrp->nattrs[nid]->kobj_attr.show = node_show; > + sgrp->nattrs[nid]->kobj_attr.store = node_store; > + sgrp->nattrs[nid]->nid = nid; These accesses need to be inside the lock as well. Probably we can't get here concurrently, but I can't so so definitively that I'm comfortable blind-accessing it outside the lock. > +static int wi_node_notifier(struct notifier_block *nb, > + unsigned long action, void *data) > +{ ... snip ... > + case MEM_OFFLINE: > + sysfs_wi_node_release(nid); I'm still not convinced this is correct. `offline_pages()` says this: /* * {on,off}lining is constrained to full memory sections (or more * precisely to memory blocks from the user space POV). */ And that is the function calling: memory_notify(MEM_OFFLINE, &arg); David pointed out that this should be called when offlining each memory block. This is not the same as simply doing `echo 0 > online`, you need to remove the dax device associated with the memory. For example: node1 / \ dax0.0 dax1.0 | | mb1 mb2 With this code, if I `daxctl reconfigure-device devmem dax0.0` it will remove the first memory block, causing MEM_OFFLINE event to fire and removing the node - despite the fact that dax1.0 is still present. This matters for systems with memory holes in CXL hotplug memory and also for systems with Dynamic Capacity Devices surfacing capacity as separate dax devices. ~Gregory