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 65010C2BD09 for ; Thu, 27 Jun 2024 07:44:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8849B6B0095; Thu, 27 Jun 2024 03:44:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 833D06B0098; Thu, 27 Jun 2024 03:44:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FCE26B0099; Thu, 27 Jun 2024 03:44:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 520BE6B0095 for ; Thu, 27 Jun 2024 03:44:56 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id BC6F0A1B4F for ; Thu, 27 Jun 2024 07:44:55 +0000 (UTC) X-FDA: 82275882150.18.52AECA5 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf03.hostedemail.com (Postfix) with ESMTP id A3EF320019 for ; Thu, 27 Jun 2024 07:44:53 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=TkPqEHBw; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf03.hostedemail.com: domain of mhocko@suse.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719474281; a=rsa-sha256; cv=none; b=P6ntvNPQiar8bPeOgvxLG/b6fyvGmmWhmLYBQtOOVieWdooF95U1YxD7PL2+T81vCZ9DCy MzFchuoz8pUXvYulmfJZTpTLrGfB5RyddXaKXZaR4ML13DmkFWwcRETFCEEW9F7j5jKid+ N5SI9IeLY91ijx1oCKIpodFsWcQHfnY= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=TkPqEHBw; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf03.hostedemail.com: domain of mhocko@suse.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719474281; 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=D3I2peLbwqTMNwRMsXiUshwxensjYJkxOB4bxai6nNc=; b=IpFQBVgYm1kZv5yXXjL3S0kVm1b+UvPygsT3OOQn91/Yk1G56LCZRJZxYxrFOXrjD34/hh AQtsnq7PrPkF/th1uVc2ELl7uyfTI5XgR3XliHlspguLSiXa31nDMHiBcHW6K1YYNdWkZm l2UbZrAyLonqMGK7NhQ4N0klyV3dV9c= Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2ebe785b234so83669361fa.1 for ; Thu, 27 Jun 2024 00:44:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1719474292; x=1720079092; 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=D3I2peLbwqTMNwRMsXiUshwxensjYJkxOB4bxai6nNc=; b=TkPqEHBw+VLyOPsb5NBbx+pPC4MfTn1UwgAp5gi2hzwTkzpIFzdYZZnqKAA7Jbw83Z lSNXqw9PJ1+5Cyh3wm/kQfxGwtHRn3wfJg200EnjFsGLDjzP01Z4cVvSnvRlXXNR5/O0 Bh/9lDCW2Zx959vc9X5ztOyrrMkGbecku5oMGX8+ZWVsIpKViRCLYIbRQIVa/I+hgpmi LuPc4yRKqWZDMxv+siUungHibpde0iHukb4jcYnkTA/QPgJ9RqL8vRnW0Xjkdb3YH2Vr E/3MefRGyOS2g5mvCKNWWiDKOtK1LMJjyDS43zurnRQeFZ++ChG7j9NlhhU8bmurqw6X 8yWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719474292; x=1720079092; 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=D3I2peLbwqTMNwRMsXiUshwxensjYJkxOB4bxai6nNc=; b=kAMPUocHAKJUjk0R/Tue6fQKr55GajhZDHWjnQvxMpW2cfjA0veBCxAk/JhoOo/+1Q WgxIR5PInjvgnHZ+ULod2by1GtlleGbot95MoRcR38PHgIBNSeGftWVUXxn+W2WiCsbE mHdmcDK/wLdY1DOZ76BfO0ATahcluKgttqHVSGEgBIfUppoofy1vTMDcjbpySKi3OxOG iGe3iwL0i+7CL+BnyTzYtJaUtO9r+nbq+2Mfsc1Q9nFMxktQE1Mv+mmt23m0i8LAH1Ea HOuK3NgcpHKicyq/6D6tkRPo9/J15K+gKR5j4grD48B3nHoOQz9kfKBCCezDTi03p+lf m72A== X-Forwarded-Encrypted: i=1; AJvYcCX+piDOQzmu5K1Onm0cIBxcx0o397vKLfwPGewHMRk7iw4qql8L88+sGYE6VjnSG9gCkh3xhi5CC5LwvgUbqG+X4zo= X-Gm-Message-State: AOJu0YwfxM50X1NTiYx6Gp19FtchWMySYE7jWrk1aLWdJg9ROWHRShOy x0NE4rXqj0Dfd5Cqqq+u4xMC8IWdJpujG3MSQcOFs5EYQ0lbamm8Yvt8JmrJsNQ= X-Google-Smtp-Source: AGHT+IHN6b8remGnruz33Lh9lJ+g+CR4br0qQiPLB5CmxCILz/0fH0ZmVP9+qqLqluSITysBIrrOlQ== X-Received: by 2002:a2e:bc04:0:b0:2ec:5964:9c0d with SMTP id 38308e7fff4ca-2ec5964a0f6mr132227091fa.0.1719474291847; Thu, 27 Jun 2024 00:44:51 -0700 (PDT) Received: from localhost (nat2.prg.suse.com. [195.250.132.146]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-584d12824d7sm521542a12.30.2024.06.27.00.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jun 2024 00:44:51 -0700 (PDT) Date: Thu, 27 Jun 2024 09:44:51 +0200 From: Michal Hocko To: alexjlzheng@gmail.com Cc: akpm@linux-foundation.org, brauner@kernel.org, axboe@kernel.dk, oleg@redhat.com, tandersen@netflix.com, willy@infradead.org, mjguzik@gmail.com, alexjlzheng@tencent.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2] mm: optimize the redundant loop of mm_update_next_owner() Message-ID: References: <20240620152744.4038983-1-alexjlzheng@tencent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240620152744.4038983-1-alexjlzheng@tencent.com> X-Rspamd-Queue-Id: A3EF320019 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: nhpc64k3xs54bnd8jmykki79edcajd4y X-HE-Tag: 1719474293-362350 X-HE-Meta: U2FsdGVkX1/ZUw1xo3HgsLKehTX6X7yJ3j6JvK+UZCF4hlKk5LrAAQ/SOr/rLi1RcjxzWkLjgdy3CAsRtqFY+dKIzR8o8WQlsuNpXe7rGIP83eHOUqLldQ9S86O+tJ04aHk54pxeun4VE90+ZWtRUpmbNIDeN8v63l1qnDBdIFAjt9OkaWI6GjD0sLCIMBcpWREyQyjAMtYxEfkcYecvasm4ZnYlXJSoAuZ/3TUf615VL7cAq7bS8QT2u7sYziuT5W6wg7dOgPPpTrUOpM3gVh3rz4vmyOR2VZJEbl/KupM/qQX7O7o9ByQQuanAQXLeibyxALUkL3AqXas5TGeoI2zqtpD+gDYHjuP7+GzT++YAp8mR+n0y9IiNvZNI88olN7Jk1jrklnV/WESfRe8Krsv5C8tzRsr7ZvWQKp9HGPFCKCrSqD38ZuMefzky9n6hJCnH6jlqPG+NaAj7g5FsTmQ8fR61FManrEuMJrUmZ+UnfpbL6qFr4di7Dxf2wZwTQ6ndCukVrtONUsamoPX1EXq8XKNYDawxnqDGffGDzCurkEbDs1ik3LOzSnaq+OEWMoKLXaOP7Tb1KpXgoFZgGu8gYNBGO/xU4s34CJ4Z53oQJ+pWk1yNVowgvm+h8USJVza/YUgHu/ESsItpASyXy5JQsHw7heelOGkeDXbEDYGZGyHgFwWm1qE6rVGtb4ySKhJFSmpxmAAY/PoZYtSWpaRSWJB2wZLmv2uG4IwfUzaGC0FymAkx7lHS6TmFG5NY1omLz52RlVhvwYAYsk8TJ2rXQG7dASWWv7HYcGOraKfQltKKf6rsiD5R9uutMhxd0KWn3EKRzk/1Qbi8VyFmO0EoGW0GD+4HfBGE1ny8hPjSzxqRC17wqBfHs7CD5ykQqLY+e8sa5j7d6cr93/RKN5kOBAl+zyErEQ41mmSsGvt8oG/l0pljdfpThZZtQwcy8jWqIqhDTp9vxfJ7L4J aUGk3TGx vLdKN7UG/QZCGJVhR7TMw+0RNA/SbVWnJn1bxnYXcJ2JxDuTUMnB1/944kJw03yItjjNA+u3rbL5V+KMnn6RO+/zAUWcsO1UiyE6tcmEtyYlyegZ0HCl1s9wSYt8GBV5TQIhHat9i1LkNpmaFlV/nMmJZ0hppRXN47BNQe/d/iumR0REeA+K+iNgIBQc5fN5clm9QjZsM1fDqizLW586RR106FhnnXK4u48CMiaeJGYaAqt6KhOg9lsUQgoYcCQqzvmAW9zpPzNs5QhWgzzbI/J815oZfzfZOZXRjK8+oEKimJvmWpPUFW86k7ELHX8aBtqW5AVQoOTJ+lt0aBcOrsiqwx/7iWJteST2ROcM5pyPaEyUK6z8Y4hK9sig9EYhkaiccvP46rcUjAIzgiAjqy8UvtiqJs9OyJb03lpXXN4wZU97FqqWENfFVvRxRs2b4c5/SPdppRcNx3ogBaMPSAJS2o0qP/1/y6kA0 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 Thu 20-06-24 23:27:45, alexjlzheng@gmail.com wrote: > From: Jinliang Zheng > > When mm_update_next_owner() is racing with swapoff (try_to_unuse()) or /proc or > ptrace or page migration (get_task_mm()), it is impossible to find an > appropriate task_struct in the loop whose mm_struct is the same as the target > mm_struct. > > If the above race condition is combined with the stress-ng-zombie and > stress-ng-dup tests, such a long loop can easily cause a Hard Lockup in > write_lock_irq() for tasklist_lock. > > Recognize this situation in advance and exit early. > > Signed-off-by: Jinliang Zheng Even if this is not really a full fix it is a useful stop gap to catch at least some cases. Acked-by: Michal Hocko > --- > Changelog: > > V2: Fix mm_update_owner_next() to mm_update_next_owner() in comment > --- > kernel/exit.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/exit.c b/kernel/exit.c > index f95a2c1338a8..81fcee45d630 100644 > --- a/kernel/exit.c > +++ b/kernel/exit.c > @@ -484,6 +484,8 @@ void mm_update_next_owner(struct mm_struct *mm) > * Search through everything else, we should not get here often. > */ > for_each_process(g) { > + if (atomic_read(&mm->mm_users) <= 1) > + break; > if (g->flags & PF_KTHREAD) > continue; > for_each_thread(g, c) { > -- > 2.39.3 > -- Michal Hocko SUSE Labs