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 609A7C4167B for ; Tue, 28 Nov 2023 14:11:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA3686B0304; Tue, 28 Nov 2023 09:11:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E54846B0306; Tue, 28 Nov 2023 09:11:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D1C6D6B0307; Tue, 28 Nov 2023 09:11:15 -0500 (EST) 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 C35D86B0304 for ; Tue, 28 Nov 2023 09:11:15 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DFD4C16026D for ; Tue, 28 Nov 2023 14:11:14 +0000 (UTC) X-FDA: 81507550068.07.6E1F184 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf10.hostedemail.com (Postfix) with ESMTP id B5C62C0032 for ; Tue, 28 Nov 2023 14:11:12 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=gOLpy9oo; spf=pass (imf10.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.130 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701180673; 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=bZslgzkC5KxsP7jHMJfyQVKff23207T2myOVc/HMRlA=; b=wF1kwOT9866QlV2zI5DuA8mZBsxmMDs1+7IAMMdGOxNNGEnkh+51yms07d5AjNvpknb82I UhKpBJwXHZmVaR5Q2CfKTg8He9agaD4daJSKWg+m60mY029p6cjqDxMqK3Sj5axuJwiiOc irudEperEY422kz+vLV9ulN3y5WxNV8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701180673; a=rsa-sha256; cv=none; b=v7YSGfiR0P7mBlNNM48W77W3laRXmWUXuGJ+FpTxCiXkuDEtmKJirIZKcg8k8CKoJItrw4 UnmSniX19dlmJBOILsy3jtedmgVvnvUFdTMERxITaWKc1wRrSCe3mdkpZSVGi6iW4NmRJf m/p4jAr5F3qTCOwABN6I7J6gsF3Pbpk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=gOLpy9oo; spf=pass (imf10.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.130 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 1C93B2199E; Tue, 28 Nov 2023 14:11:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1701180671; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=bZslgzkC5KxsP7jHMJfyQVKff23207T2myOVc/HMRlA=; b=gOLpy9ooR5alEUjxfM+2syKJDlcrb3FB5iXQd7qKs9JYJFcQmpltz/bEmpMZcZ6R3AK0uo Ecf64Donp/eqfIQGF64lFT4dMv/1bhH5kg/T9LU7xZCHWFRUsuvgVtO1yucw6i58Z2mYeq YMg7dG+ez05xRcpfxL8in70wUt8APcI= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E8B481343E; Tue, 28 Nov 2023 14:11:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id /3/NNf70ZWVIOAAAD6G6ig (envelope-from ); Tue, 28 Nov 2023 14:11:10 +0000 Date: Tue, 28 Nov 2023 15:11:06 +0100 From: Michal Hocko To: Gregory Price Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, arnd@arndb.de, tglx@linutronix.de, luto@kernel.org, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, tj@kernel.org, ying.huang@intel.com, Gregory Price Subject: Re: [RFC PATCH 06/11] mm/mempolicy: modify do_mbind to operate on task argument instead of current Message-ID: References: <20231122211200.31620-1-gregory.price@memverge.com> <20231122211200.31620-7-gregory.price@memverge.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231122211200.31620-7-gregory.price@memverge.com> X-Rspamd-Queue-Id: B5C62C0032 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: t87ttu9k6f1b4u4jmoxdew639at89q7q X-HE-Tag: 1701180672-321048 X-HE-Meta: U2FsdGVkX1/PHIliG1CjU91cXfwPZFzuMY0DbNwre4wrc8/4ULU1CsYYFRutISayv08QPIqyrnYWlRc1rp/LLzprDCyyaXqWtjuU+2HyyexPLmvpWwUku1IjQM8GCOuB0tsyyCHFZ6u8NzHIVxxI8pMhpjG1t7U3oPeYTW5KEaUPIpVRANj7GXQnrTqVimF5ySfoX0E06AuyeSPZwKAhHNZtZSFGF7kp1ZNPKQWv1iAfBBAHAepWwlfKDOL+rZdkyfShMRBC/asjcB4c5P2LAWG6Sl8AKOsZYTNfz3LqHMHab5BA826fmzYE1BMpM/bBvh+lAAWNk111WzsyKrdQzGdmrOrO4x717VtZW4UQ+72impjbOdQEv+M/bDh8tNdLwVJYlOqbAL1CnmOuytME+g9JVClqrSZcfBBDpz4hT4YuJbNcUhVpyyv5c9LXNi7rMnt2ipFTaUgBn7+euyHjykw0THayL0lJk6UqPAv2wbBEHq+SuhpC2ttGe8KHZfuA2hbKczHxpxw3SxfkDqx3AENTMmI/hqtt1/m5920EDnwL2Ro9QFLgiSCS9ZMQjVZwiIC12vzuBTM1HrOSexfJL/kfDX7LTyKb13sm7XLwqPMK8zB98LLRBPSJh8kwmSbEXSglR5+Lk06zQ7nViguNltIolHkea1Z5XVCSe5lOm1zhcZbgPqGl9Bi654i47yMlqSxUOeMdbkWOSZ6rFnvJgAjrZ5KlYSO1aIUhoB1n/2ibirv4srO5jX2ZUtEc0bFTNVEwAhcDdxzz13bmNGtjuUaSi2d2oeFz2OIUU5XaBNEUkdD4bkG4siVJNb9/WcaKzR11+iJbXfbDluLCnc/roIbd3raGjKwj2JkV+GwJ7GxWuZbOfVg8DkdJp6ljBT+ipUHt166g6D5KgZm6qjdOvfNTJmYUOH5XzraWfQAmS/ucA8xNnmReRD/fTpe8JrBqTFaKJpFBRAqa03mQA4n wFwSE88J wRdDNbkaCExJt7svGSekrasQ44Ve6Oh5ZWtWIrgDyw/5NqF3xoWs2xaoMZYc/b6oVFsODTnQUl3wC7N1uPtajJmidTYAWPX3yva9O1XhSVDNFyjtm4HH5bkT7zvMCwA8SVsFb5DPOy1vNcBHU276d3U6b5aPjVTIrpf9+qzJqZUcmorYJwZ/SckFFRNJ0bDuotXWNnT6RlHPpY6bolPm/iDXYBieeh2LmLGTltRDKDWeDoa+HSkGNmG4dtOtCbjudXK8Cge5dYvXSJzuZjFRgR650kJIM4R8vVxacMO/IauIsXoVgVAwBFAzPLqkCoh0C/E/k8ig3RfGU4C3/ejUlhkWSxQ== 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 Wed 22-11-23 16:11:55, Gregory Price wrote: [...] > + * Like get_vma_policy and get_task_policy, must hold alloc/task_lock > + * while calling this. > + */ > +static struct mempolicy *get_task_vma_policy(struct task_struct *task, > + struct vm_area_struct *vma, > + unsigned long addr, int order, > + pgoff_t *ilx) [...] You should add lockdep annotation for alloc_lock/task_lock here for clarity and also... > @@ -1844,16 +1899,7 @@ struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, > struct mempolicy *get_vma_policy(struct vm_area_struct *vma, > unsigned long addr, int order, pgoff_t *ilx) > { > - struct mempolicy *pol; > - > - pol = __get_vma_policy(vma, addr, ilx); > - if (!pol) > - pol = get_task_policy(current); > - if (pol->mode == MPOL_INTERLEAVE) { > - *ilx += vma->vm_pgoff >> order; > - *ilx += (addr - vma->vm_start) >> (PAGE_SHIFT + order); > - } > - return pol; > + return get_task_vma_policy(current, vma, addr, order, ilx); I do not think that all get_vma_policy take task_lock (just random check dequeue_hugetlb_folio_vma->huge_node->get_vma_policy AFAICS) Also I do not see policy_nodemask to be handled anywhere. That one is used along with get_vma_policy (sometimes hidden like in alloc_pages_mpol). It has a dependency on cpuset_nodemask_valid_mems_allowed. That means that e.g. mbind on a remote task would be constrained by current task cpuset when allocating migration targets for the target task. I am wondering how many other dependencies like that are lurking there. -- Michal Hocko SUSE Labs