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 1B358C77B7F for ; Fri, 12 May 2023 03:45:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC0436B0074; Thu, 11 May 2023 23:45:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A22036B0075; Thu, 11 May 2023 23:45:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89C456B0078; Thu, 11 May 2023 23:45:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7AB516B0074 for ; Thu, 11 May 2023 23:45:11 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 566EA40D34 for ; Fri, 12 May 2023 03:45:11 +0000 (UTC) X-FDA: 80780212422.19.AF42C20 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf25.hostedemail.com (Postfix) with ESMTP id 9AED7A000D for ; Fri, 12 May 2023 03:45:09 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=AKLC0a3a; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683863109; 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=zfoh1JZWPPUAolhm9Ix284OqBrI1MXqR7RxUL+Lcsdg=; b=r/xz9zIqgl4OowLfu+51czDb9PA1oYLiNZRmX6ZwP2d981ia3AHzOfuzTpu+PKe/hFRdk1 cOqMDYpov1RjrDBxhYbbHMP96t3r9o2eAcU2cFgRcuXCF4e1Phxadwsi8KpT+DgSPf3nQl IUwyZCWcXsgF3y+Ht8zX36U0aXv5p48= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683863109; a=rsa-sha256; cv=none; b=WbqPqLTx98P6EBuFXn84JumlCjahNoayzneQtYTRjh+ddXp9OXRAI8mw5EYbIL0c/kRJa+ mB18Sy3WGIe9VhzZOJkxzJyY7P+EtVrhtGJo8Z0HU4o5ZUm1gj1qpBXj1+/MYEGMk5p19U FhgQQqGH5rIpI8/vSdUe2j2oIlZSyos= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=AKLC0a3a; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9AE3E60FAA; Fri, 12 May 2023 03:45:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5457C433D2; Fri, 12 May 2023 03:45:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1683863108; bh=D6IEMF/ijX8zrtTHErduZ4irMVBcTChifkFXgNRJa0g=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=AKLC0a3a8slxgyIoZeqOdVIzuW8vjlQtIGI+vEErLlz8QWqJBZUYvwCi/Sr3Xudnh NF0aj35lm0BH8HmDo7WOikggWcKKGbMm0THdEYxjBRlJzc7xNW6xLYfAAkUQWXiEqe oCdrkptbHAQDx7yChNXeHhevA4LkzvORRx2fGKVQ= Date: Thu, 11 May 2023 20:45:07 -0700 From: Andrew Morton To: Tetsuo Handa Cc: Vlastimil Babka , Mel Gorman , linux-mm Subject: Re: [PATCH] mm/page_alloc: don't wake up kswapd from rmqueue() unless __GFP_KSWAPD_RECLAIM is specified Message-Id: <20230511204507.fbcc234616378b3c28599712@linux-foundation.org> In-Reply-To: <6d6fb601-6100-92b9-cea3-e7ebacc7693a@I-love.SAKURA.ne.jp> References: <6d6fb601-6100-92b9-cea3-e7ebacc7693a@I-love.SAKURA.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 9AED7A000D X-Stat-Signature: c7i8gu9dct44d6braay63g8sjgiqsmsh X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1683863109-291170 X-HE-Meta: U2FsdGVkX18Zttuc9XOTqayDNkYLZ1F/APPso2v+E+7YInr6mZzB01dXr6MzPxjdkiBOb4ZtGz10RM8eF1ZWv7aaR3OA5TQK1EUf8k4YChKLigDutnioQsCRz4tDWqaDzzP1uDEZSiTzKzsVfcg3dOYxsAS7WppoHfKADPgx8fSNrjhvCJ5xzGUukkGs8UCzHHL9mkTMMvKtUVq4OXpEhtySH5MhQW09n++eL7EEgre8G85GlvBq0X/ocuU+guvajj0bmZ3jvKlvV3jdrK4up0lK+z50boXYeEnQjdYmbyTIi6UaJS+YQR1rJAa0RBw4z3URKS+brsJtXNjpqWwUocVJZ1XTQs9JbAU8FCD4Ab/PfNTeJUy5QcNh+nvDjx7hk1OQ00WgSffOPVktCxBzjREZ1AN94ra0iN8ZnGnV0/fvdYKA//4BxO8yCx1h+MYJ1WrsAMPnSMveDVIH7oswavhTu6U8yGbvF5hIlgXa6/VodtpM1TA2deKX64v+qdRZohl6l5UDlmCbLtd2zTjL15d83ktNAie/kFiuSi/4tHhC99bY+FP5Cy23tfPhCP5l+Za2x7x94Ib6T9V7I0MKekPRehgcjxsJqEUuszadNwJYiXjm5lgPhtavDKNL9fIICMN1PHxCTKJMzSCLfTnJeUmWBSROWUyo7Fxg0xTLBn4JBi6lVI8ULfYs2dSBTx8A432DgNzGf94o9v6hm/UepS457xWK2TuHOr0fNOyLMQoXJCwsok1uRjRMKTHfgS80MXpVWQ4wzAwQXeMAzcwLXjtzU1IUDfIZOHYgB8T2ccE+SEaJLrzNOKwBssFRPUStT+QY0F53ioX9tYCDuiFuzvA2ZhCea6IDx67LTimCMI3dKdwy9OgSeUvHUlHHix8qEcREnd3/mP7QkyGdnuKUZkgqL8JLTMzP93UEPOFqTJPBG38VKWY4xKdGlQafUnM/bC0fjCfKUWRvlKm2miF rCzoS1Z+ 2dKDAsT3lzILqGVisPBIe8xUhej3IC+PP94EcQD4DZyzvuHX9qOxIKS6AxVr2IiYuQ4NTaBdZoqlNZX1nCE3bivGV0N7b5RZhSpEY3VQi6YFI0AYtEoqpvpz8eIL+m4sg0AXLdALo+OA/UsRjtniSNjsLPhB6l4r/y2/3R/8WDWBBR6/lbbIW7sIWV4xBoOuJ6uxYFTmgv9XLYsY63CtIhrwINpEg146sz2cxxtwjBnJC4H/KD7lJIa8cfGSu/Uhq52b1MRsx8+eHXbUb0bemewmVflIiOJC0IetDbFxoS9IinXshKXNN8insg42I/+W1mtZSoIWT5TGKdetQJyb/Nh0QOYtfApAPIg4mxe7U0hLq2277BAupJroQAQ== 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: On Thu, 11 May 2023 22:47:36 +0900 Tetsuo Handa wrote: > Commit 73444bc4d8f9 ("mm, page_alloc: do not wake kswapd with zone lock > held") moved wakeup_kswapd() from steal_suitable_fallback() to rmqueue() > using ZONE_BOOSTED_WATERMARK flag. But since zone->flags is a shared > variable, a thread doing !__GFP_KSWAPD_RECLAIM allocation request might > observe this flag being set immediately after another thread doing > __GFP_KSWAPD_RECLAIM allocation request set this flag. What are the user-visible runtime effects of this flaw? > Signed-off-by: Tetsuo Handa +++ b/mm/page_alloc.c > @@ -3052,7 +3052,8 @@ struct page *rmqueue(struct zone *preferred_zone, > > out: > /* Separate test+clear to avoid unnecessary atomics */ > - if (unlikely(test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags))) { > + if (unlikely(test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags)) > + && (alloc_flags & ALLOC_KSWAPD)) { > clear_bit(ZONE_BOOSTED_WATERMARK, &zone->flags); > wakeup_kswapd(zone, 0, 0, zone_idx(zone)); > } Thanks, I'll queue this up for some testing while awaiting input from Mel.