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 91E35C5AD4C for ; Thu, 23 Nov 2023 15:21:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 162816B06C7; Thu, 23 Nov 2023 10:21:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0EBB96B06C9; Thu, 23 Nov 2023 10:21:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA7736B06CA; Thu, 23 Nov 2023 10:21:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D3BBF6B06C7 for ; Thu, 23 Nov 2023 10:21:48 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id AD3D7120304 for ; Thu, 23 Nov 2023 15:21:48 +0000 (UTC) X-FDA: 81489583896.18.DA4623D Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by imf01.hostedemail.com (Postfix) with ESMTP id C96CB40025 for ; Thu, 23 Nov 2023 15:21:46 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Nc7noOKn; spf=pass (imf01.hostedemail.com: domain of vpetrucci@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=vpetrucci@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700752906; 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=Q70ME+Z8MA/iN3ndOUEyZrB6FW+VdFvlQgHMP5KT7Xo=; b=IQ/pe5L+lBzRAoFHUG+FcFFcHt+SQvjJQtO7bpOOZXS19MzWhFJ/kXJx5vsFis5e29niZJ 0SJ6clQGgPYTs+xIiqohb3uuWBRRRI8hSSXEQLJCwuTISyRlkwz0GT3NHK0x/9gk5ypfYN 90QpzCHh/VYKCvnEfeUthTQazgCYte0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Nc7noOKn; spf=pass (imf01.hostedemail.com: domain of vpetrucci@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=vpetrucci@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700752906; a=rsa-sha256; cv=none; b=Py0DehlQBZccvDo/qnWYjJGPQeOt5jmCpQG+w/Ro6LYA7Jc2I3/3kUvfH3CFawv7riO4Ob 1ubXUftv1w4gvbmQ60NY8jownetIgqfbU9jKt84YKAdd5nsms4OaKypbnziKRU8f+lt4wn dRNl6GhVZn6YWo3lTYerW3wxLlc9hJs= Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-5ab94fc098cso634365a12.1 for ; Thu, 23 Nov 2023 07:21:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700752905; x=1701357705; 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=Q70ME+Z8MA/iN3ndOUEyZrB6FW+VdFvlQgHMP5KT7Xo=; b=Nc7noOKnStZAEKaq/Jcna/aWLI9Xd7MtFza1arHE7N0h6Kf3ywOsjeqaZODkcbCkHk e4i8Q4YHSK2f2gvj6qSzUJA4CUoZEtoNHYxJqMBh9mzui4cmHWbKuvkevAex4z88mv8+ rF/kY24VqniN4ol8ER2x5PF+XExQ6hkY0zYPWSZayQJf1xBzHmviXNAxQuadAK3AKROr zQwTdCUPI8VmV1/D+KtygbfmqAIn5AQNGbURvSW3sZ8cDngXjxOy+6j32N8bc1JlSbNO Hfstv3u0H/+AXjo+ydtv9Pm6ECMx5DClDwyhISEGgVKuyR8yhqvd28cZZnftVDN3a8mq kXeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700752905; x=1701357705; 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=Q70ME+Z8MA/iN3ndOUEyZrB6FW+VdFvlQgHMP5KT7Xo=; b=HBapDBnPDn3tpLcWWRLVxW/gJIJ44FFw1S6+W8yXuc46u8J41CFIY7s4Ha3y+wqvar q+BiIUYiG0a7H0Jr79YXizkeG6kQMPns1gwrrgfBHbbuBRbd29RxrSq6w/bpYIvPlMyj 4a6ADyckrgZQKoIVnhkpBmRIlP4IBUqjv+wgTjGLMVgprzxS9R0g5KQa6kgGKrifdCUz PFY7o2JMDLph2Hkz1NZPxsRCK5Qypp60gBA7KNzs4OXbZ1/i5p6rPu3k5ma38f9Ag4cG 4/3qP6QqK0GjHs9MQGkV/GFSUgID4YScwWpin2QsiAAo5nXfXzePiLxmwn+AsshmvMbj 6j4Q== X-Gm-Message-State: AOJu0Yyl/rKFyEcf5l7MPLcTK9KeYoLeCi/BNNkBcZlbNKZX/r9GBfbl kedET/86z2ya9LDQWOXIGyVUD84X3mfc/cnh8Lk= X-Google-Smtp-Source: AGHT+IG7HjrLo+UO2gU6kyO67Qrxj1Fj9BW3CiY12ZHHr9qO2aQ6gsiGv7l3PWYv+dLAVKqIAWPZHZTysn9dpGno6g4= X-Received: by 2002:a17:90a:1948:b0:280:cd5f:bf90 with SMTP id 8-20020a17090a194800b00280cd5fbf90mr5907737pjh.23.1700752905538; Thu, 23 Nov 2023 07:21:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Vinicius Petrucci Date: Thu, 23 Nov 2023 09:21:08 -0600 Message-ID: Subject: Re: [RFC PATCH] mm/mbind: Introduce process_mbind() syscall for external memory binding To: Gregory Price , linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-cxl@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-api@vger.kernel.org, minchan@kernel.org, dave.hansen@linux.intel.com, x86@kernel.org, Jonathan.Cameron@huawei.com, aneesh.kumar@linux.ibm.com, ying.huang@intel.com, dan.j.williams@intel.com, hezhongkun.hzk@bytedance.com, fvdl@google.com, surenb@google.com, rientjes@google.com, hannes@cmpxchg.org, mhocko@suse.com, Hasan.Maruf@amd.com, jgroves@micron.com, ravis.opensrc@micron.com, sthanneeru@micron.com, emirakhur@micron.com, vtavarespetr@micron.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: C96CB40025 X-Rspam-User: X-Stat-Signature: u4zhourw43hd9u9n8cy6qj3znnm3scon X-Rspamd-Server: rspam01 X-HE-Tag: 1700752906-571189 X-HE-Meta: U2FsdGVkX19lUzx1STSfST9Ay56u2M6uG2cgzrYsKBQ/hksZmZlaA11UiJBSyzH5PffU/AIJ5FInuH6ar/BcWEl14u3eJQWBT50vr9NYwneqLLCo+zsQ1tARfGbneurv6Vj35pQ8rDzcwgYpGXz3fGIVzijpak7xzH1BsADXHxq1R4cb599NTTnuGuV8hxXu0slRMgCyXotHGj7Y5hbklKsJYlIoV6W4+J5NlXOhX1AOljGydBBZbVv33uS2q+f39ZhJ+Xd0mWAyHffUvpWNISyhhJKEeAKAIDtW4vocL1W1W8R0B4CRe+nOeTI/G0JVuIwiZ5te/b3GsfTNambNrwneIgHGQT7+KjPmW08+hu/JEAUfmzDfP72dJ5te8hYboiPe/fWRSfKcj9o8dQ/Juwxu+KQoLr7cFjfvGmJ8u7++/rJaR7Gjtu+llo0pVksrZw5b3d927qiRnG3bTiKcslQOmkkkM0pV3npAYlqySzkU/o+1DCWFQl/o2GKctvTH3C+WI5AHHsCZfIux4KnabJK+jPW85bUtRj6veMRKPjcT3QIM0Uq+8EYGuHbn+2/5aa505dO+RpdXCGWbuWbd4nl6ubgepixsFPjCQz63I/g7w27ehD5oimQpq3i2Cnmbf5mZFD1J5XT7QjatyZC5i1iB5ZULj7yF7HH7gnzX5+mfjV5+YPrLqctwT8YSMILlgCuTEuG9XLC4H9YG/B6YuSO+hHz37SB6S/F0/sUf06TIdZHj88Nu7aEhfEUCMs1Nbd5urvI01cyW0Rm9kjXyOd1bQnFsLVW8dr8A287O8exCDyFyogi+VUq9X12FSD3jJsTd8NFheuYWb7GbZXYYGuIWMunan2wH/hO/gwcisymzdr7crdj9pw1F9Mq/4vq7IpPwbPWgpOQD/dTW1ebh6XSPOaFRkOTWyZsKgMxLMsn/q51XIluWeKLj9UW+g2LeSJQYvQlCHG3RRSCmYXC lo9QVXhY N41bV/1I715qVmWRkQGhZDmxY9sw7yJf7X9BHh0b4vQ1+glsp1zu0/ZZnv/pFblH3Pbk+1MEXHmAMsBjKLFsMZ2zQFe1ewgolhEKiqpBu+69IGWzSvjsmht9F4/DN8D5i92mBY1qcAMPEMWs/KEmk0AJ+Mz2spcUdUcaeZ6+si8n1hfcSz4CBOWrfBaapA0OYwRJ/wZJgZp/fAdu29V2tiK8eKmSg3E6q1wRes9d+7Pj5ZmoSyjzZgptMopBNETRr8LnRzyCaQJY0Vzv06Whji7fv0CNtVa0mZuVJ8GUnRfdPYyhAK0SCwT2sB2jS4aGB6pvnO0yjroLFe78eLfDxvjHnvy6sUvt6jPbIvQ83pkBuL/RCqPl66ry4fcBom6dOV9uvcRxk2dQ72WrPSBOq6sv5i9+GAE7VjWQFrFucD6uGsIXyVQv1LiTzj53/AMwokJeN+6S9++EsZeQvhFooNETH/1nbWuThpBRgar1xsRHfdPPCpurzc+xXwzBal2sWiOXKVltfhOnvC60= 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: Hi Greg! Thanks a lot for quickly looking into this and sharing your notes here. On Wed, Nov 22, 2023 at 5:53=E2=80=AFPM Gregory Price wrote: > > > Please note the initial `maxnode` parameter from `mbind` was omitted > > to ensure the API doesn't exceed 6 arguments. Instead, the constant > > MAX_NUMNODES was utilized. > > > > I don't think this will work, users have traditionally been allowed to > shorten their nodemasks, and also for some level of portability. > > We may want to consider an arg structure, rather than just chopping an > argument off. > Yes, good point... that should be considered as a more complete long-term approach beyond the MVP. > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > > index 10a590ee1c89..91ee300fa728 100644 > > --- a/mm/mempolicy.c > > +++ b/mm/mempolicy.c > > @@ -1215,11 +1215,10 @@ static struct folio *alloc_migration_target_by_= mpol(struct folio *src, > > } > > #endif > > > > -static long do_mbind(unsigned long start, unsigned long len, > > +static long do_mbind(struct mm_struct *mm, unsigned long start, unsign= ed long len, > > unsigned short mode, unsigned short mode_flags, > > nodemask_t *nmask, unsigned long flags) > > { > > - struct mm_struct *mm =3D current->mm; > > struct vm_area_struct *vma, *prev; > > struct vma_iterator vmi; > > struct migration_mpol mmpol; > > @@ -1465,10 +1464,84 @@ static inline int sanitize_mpol_flags(int *mode= , unsigned short *flags) > > return 0; > > } > > This is a completely insufficient change to do_mbind. do_mbind utilizes > `current` in a variety of places for nodemask (cpuset) validation and to > acquire the task's lock. This will not work the way you intend it to, > you end up mixing up node masks between current and target task. > Oh oh. True! Good catch! > see here: > https://lore.kernel.org/all/20231122211200.31620-7-gregory.price@memverge= .com/ > Let me go over this... Thanks! > We may want to combine this change and with my change so that your iovec > changes can be re-used, because that is a very nice feature. > Sounds good. Thanks again! Best, Vinicius