From patchwork Mon Jan 23 17:37:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Roesch X-Patchwork-Id: 47286 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1742554wrn; Mon, 23 Jan 2023 10:04:22 -0800 (PST) X-Google-Smtp-Source: AMrXdXv4wWvp5py6ZR65YF4YlNnA+hGuhpfXnPTeFAMTzt3O+X5GbbCuA6NHJyMyWRoHvR3hu55P X-Received: by 2002:a05:6402:f20:b0:499:b672:ee3a with SMTP id i32-20020a0564020f2000b00499b672ee3amr32041262eda.12.1674497062688; Mon, 23 Jan 2023 10:04:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674497062; cv=none; d=google.com; s=arc-20160816; b=FKpoA5kWoqCnJxdElL+gUZ3ZyPALkV1T+gQ/QAkkUXmf5beodFAd4nnUosDtOH6JQe Ho1DNqjNo4ES8gVEwOpyAa5oaLlPLzywjVK0IGMhA8k8+CdFmBgQYe/oIXb4PJibw/PR hulRuUdQKLwZ5v6wdZh+KnRlNyxZPR/gx3nQIiHIHWe2ZsfpnlJ20wQ14b8rQsJLYhXh pWex6jdbQctd2GWcqBbGkbQMYmpOCvg02lkyQAQPKw+4VE9SPnHx3chZutfrB1dg3tvS Tl3BfgQVFO9ONvTQ/uy1oobU6l1qEb9aGr/Fh4BSfi6diSsD0hfZiGdBCMzZuS3qh6qn Kfgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=BL99fR2JiovciqZqm6mH4hPxhKKNFtoaiqSvJzgiEIg=; b=Gca/CRS9S1uHeP0pRoG3g9C5zNJKwyAEFfmivTBlhZr2r2uyllaG90x5930kp6pvfO 75Mj/afCvEG+DZaWWh6ml6CUhBshEBC2dmEfKamzms/+FbGcnRgSFuKOUE2Axa2wAK1o rRo7V0YqpVH+dLVNxyxTvuwAHYpnqH3Q1cdjTKH/AV9cegWm8tZoXeQohE6Vv0uRFeUW BizAhfw9vFnlfoCWQjLj/fKpes2cwGOwQpeIv9Le9D7dQmW24yQgg20z+ZW3oR1ifUO0 oMsNARVswbWDV4cuGHukksS/1wpkT0Ej0Ac+bNNKHjiIbVaUTzcwXQVboqv+Vn3KlTCd LmBA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d14-20020a056402000e00b0048e1008c744si22042edu.147.2023.01.23.10.03.56; Mon, 23 Jan 2023 10:04:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231584AbjAWR6n (ORCPT + 99 others); Mon, 23 Jan 2023 12:58:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36730 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232223AbjAWR6m (ORCPT ); Mon, 23 Jan 2023 12:58:42 -0500 Received: from 66-220-144-178.mail-mxout.facebook.com (66-220-144-178.mail-mxout.facebook.com [66.220.144.178]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C088223D88 for ; Mon, 23 Jan 2023 09:58:41 -0800 (PST) Received: by dev0134.prn3.facebook.com (Postfix, from userid 425415) id 636A05616BE3; Mon, 23 Jan 2023 09:37:56 -0800 (PST) From: Stefan Roesch To: linux-mm@kvack.org Cc: shr@devkernel.io, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-trace-kernel@vger.kernel.org Subject: [RESEND RFC PATCH v1 09/20] mm: expose general_profit metric Date: Mon, 23 Jan 2023 09:37:37 -0800 Message-Id: <20230123173748.1734238-10-shr@devkernel.io> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230123173748.1734238-1-shr@devkernel.io> References: <20230123173748.1734238-1-shr@devkernel.io> MIME-Version: 1.0 X-Spam-Status: No, score=2.4 required=5.0 tests=BAYES_00,RDNS_DYNAMIC, SPF_HELO_PASS,SPF_NEUTRAL,SUSPICIOUS_RECIPS,TVD_RCVD_IP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755837432221252127?= X-GMAIL-MSGID: =?utf-8?q?1755837432221252127?= The documentation mentions a general profit metric, however this metric is not calculated. In addition the formula depends on the size of internal structures, which makes it more difficult for an administrator to make the calculation. Adding the metric for a better user experience. Signed-off-by: Stefan Roesch --- mm/ksm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mm/ksm.c b/mm/ksm.c index 19f434f97dc1..d29454a802a0 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -3205,6 +3205,21 @@ static ssize_t pages_volatile_show(struct kobject *kobj, } KSM_ATTR_RO(pages_volatile); +static ssize_t general_profit_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + long general_profit; + long all_rmap_items; + + all_rmap_items = ksm_max_page_sharing + ksm_pages_shared + + ksm_pages_unshared + pages_volatile(); + general_profit = ksm_pages_sharing * PAGE_SIZE - + all_rmap_items * sizeof(struct ksm_rmap_item); + + return sysfs_emit(buf, "%ld\n", general_profit); +} +KSM_ATTR_RO(general_profit); + static ssize_t stable_node_dups_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -3269,6 +3284,7 @@ static struct attribute *ksm_attrs[] = { &stable_node_dups_attr.attr, &stable_node_chains_prune_millisecs_attr.attr, &use_zero_pages_attr.attr, + &general_profit_attr.attr, NULL, };