Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp4423203ioa; Wed, 27 Apr 2022 03:38:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwT4GA/lgcLzrfwT5jIJP/7lw4tysz3NWG3UVglbavhY0wlpjRCX8rOSRJ3DZka9rYroWAO X-Received: by 2002:a17:902:ed82:b0:158:fef8:b501 with SMTP id e2-20020a170902ed8200b00158fef8b501mr27437849plj.47.1651055920382; Wed, 27 Apr 2022 03:38:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651055920; cv=none; d=google.com; s=arc-20160816; b=ei0EjASkUecxtcTzURz59NHrvyOQmu4CzMqIMaLUxiKGiVAGeKkX6Ff+3wqrub0J6W bExMK/JJKfdSWq/ZNddREQW33qvPDzn+dDJVcy6DqOdZBeAuXa5E9Kq1/IH0ZcrrGKnh OoEEGQJcZY9BToN/WH9jqjZ7bvQ+KQNUYp73qS1muLBkyD/NbcTj1vLCjGzy7iLYPbUc moFWU9XfDtXtQNjGNRh9hWDGBhtEiYTnwWmokMtmZREkm2CoZuCRfeDxMbZiniGUDp+c W5AHkHi8PTtdWokIzStarQehBs12LMjXOjDlFqTe97HsqbMK06+CsOiBPbZE5RBvyiZt 2qOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=dWtbS5lg1a9gM/YQcx7iEZL/3leG2VJ+qMbbrkRFwgE=; b=B1lj5UQDfGDZDTknhWqCK/iosXcsdY7xYwAHwRptLGMbmQlyhwsFvBwpOEzbAY7J3G Czhi7mjGlCaMeTy/92dLEqWhx0LCzVXF9VCW1AMBpVDeIvmp1Y1XjAWXWzWCFPU5if7M G9P3hD5U+U/6R75WyqvdywQ9GGszY5NvfU4pFdtPcyixEgMvgtpVxZyHw2jLmC1KG21I 3ThFNCjWR21qibMcJy15B8+BRcic4FCjcY02vqBHCx8JBE5wpmKbgDLeNbJrEJxUtBuV vDHFP6TdhLPPiYQ0Q7Mw9Ft0JX9nLaJqHxnz45zDgTHPpGup5skYRxkNjtaLVaStO+qs ZbMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=aAUQMbdk; dkim=neutral (no key) header.i=@linutronix.de; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id t15-20020a170902b20f00b0015895212d3asi1200190plr.290.2022.04.27.03.38.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 03:38:40 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=aAUQMbdk; dkim=neutral (no key) header.i=@linutronix.de; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CCDC63CF560; Wed, 27 Apr 2022 02:49:20 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344249AbiD0H0U (ORCPT + 99 others); Wed, 27 Apr 2022 03:26:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236000AbiD0H0T (ORCPT ); Wed, 27 Apr 2022 03:26:19 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B931C3389C for ; Wed, 27 Apr 2022 00:23:08 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1651044187; h=from:from:reply-to:subject:subject: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=dWtbS5lg1a9gM/YQcx7iEZL/3leG2VJ+qMbbrkRFwgE=; b=aAUQMbdksTR0gvdDY+Qt2OIL4QBVYOdTBvBWDhAZhxGAOZMQRL6f4JJconDCX4PFYkt+a0 qBdR8hWwf/HR39Chqy7J3OnutXKJEXnAyhrU0jLSCgX/ir/yREAp0r3SG9LK8d349DkWlH gZbmxOf4wAmRYgzczv6A6gqOyPqCvUZQ+ZGyNXCoFXI0tlANvUaQJCYU06O7PDZLLKGe8l 7OwsYOvu9XLtEYyJECmWMF/BDs2+ffKQQJacZ0tBy6p7Fyew2m+sNHpuD0BAvSf5uo2i1I zOPbxZ6rxt3vJW9G29c2f+PFnvkgQPpEcbD44tFuw+O7BUZe3W2zY0hbQF13BA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1651044187; h=from:from:reply-to:subject:subject: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=dWtbS5lg1a9gM/YQcx7iEZL/3leG2VJ+qMbbrkRFwgE=; b=Et3zD8l3ok5Xr2j3fnO+TSQb0Cuvg4zWjtLZPZ7Rz+tNLnYjrInS/Oc4Qo156HoNF8gjID 95FKkkl5VMqYzyDQ== To: Marcelo Tosatti , linux-kernel@vger.kernel.org Cc: Nitesh Lal , Nicolas Saenz Julienne , Frederic Weisbecker , Christoph Lameter , Juri Lelli , Peter Zijlstra , Alex Belits , Peter Xu , Daniel Bristot de Oliveira , Oscar Shiang , Marcelo Tosatti Subject: Re: [patch v12 12/13] mm: vmstat_refresh: avoid queueing work item if cpu stats are clean In-Reply-To: <20220315153314.287031403@fedora.localdomain> References: <20220315153132.717153751@fedora.localdomain> <20220315153314.287031403@fedora.localdomain> Date: Wed, 27 Apr 2022 09:23:06 +0200 Message-ID: <874k2fyopx.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 15 2022 at 12:31, Marcelo Tosatti wrote: > /* > * The regular update, every sysctl_stat_interval, may come later > @@ -1948,9 +1977,19 @@ int vmstat_refresh(struct ctl_table *tab > * transiently negative values, report an error here if any of > * the stats is negative, so we know to go looking for imbalance. > */ > - err = schedule_on_each_cpu(refresh_vm_stats); > - if (err) > - return err; > + cpus_read_lock(); > + for_each_online_cpu(cpu) { > + struct work_struct *work = per_cpu_ptr(works, cpu); > + > + INIT_WORK(work, refresh_vm_stats); > + if (need_update(cpu) || need_drain_remote_zones(cpu)) Of course that makes sense in general, but now you have two ways of deciding whether updating this is required. 1) The above 2) The per CPU boolean which tells whether vmstats are dirty or not. Can we have a third method perhaps? Thanks, tglx