Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp617030ybt; Wed, 17 Jun 2020 09:28:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqPA1VyXGv1hG8JPPbHhGVtOQBLji0hwv1SaVigRMwgAc/EMnmU6ZvnrO7Qh8Uk1UZnEoI X-Received: by 2002:a17:907:7294:: with SMTP id dt20mr8133881ejc.355.1592411317312; Wed, 17 Jun 2020 09:28:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592411317; cv=none; d=google.com; s=arc-20160816; b=uL24iVNLLdYivtHvXEqUP10fTrmu+/OlLjkq31lFYhCCoUQDHq15o+fQMtBdLKMvbe zbPnHgShW5OmSiYJbAfwlw2L0jn/2Aqs8WQTzeGF9Vk88GrvxQm/RQYTus9qyCm1/SgR rkyZzZFJUOa5BiUx5kP/CFBuXTHjutQ3FQUIsi8VC1yPMfdq2R2E/srs0M8xgatwbzhU HcWvFd8PkiDlnbh0gpxB66b6N+okrCTUwK3nS2JO2HFQWitrI6ofOOwDMQkysdHBFAaO UgiDbPTzL2P/pIjbcU9UXBlOFaLXYHjlSsYo/2IpsB25LgYHGLMZZf6Iyq4q/vtq9yAI anIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=YvqTkcYAAN78pjSZwwNFeimQiSa/Q3KK8WoooVV/y3U=; b=utRUSKXQM4qPDaU6f8kRa798BBWE/iM357jcDvK0xJ+xfvMy4/0ap3czmlcAs1eqXJ 5kJvz8dSvVHPRA/8o7ezNH6peHD4u3Hl30eowdDaTHbH6BqEMYOdfV+M65H9Md1McotB OifXncbaU6axhtvxbhpsaYlmalIsxi+qYDc6nWeRI7siHb3bSis1SWbNuHiYJHXwDbNo m8/EcrREuRgoRQ4JqwvCqDzcc4ASJ/K+DuQB9UrAIeQJKY/xyBJyJ8dEZBp6pus01cT3 +RWo+FFT4BLE/97X6sGCfYTkOAsaRdYRxX7EDXo8IyVOJo8hEAzTiDZr18ng0e/PdqfC RMbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hPkdbl9s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i13si264506eds.471.2020.06.17.09.28.13; Wed, 17 Jun 2020 09:28:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hPkdbl9s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727010AbgFQQ0R (ORCPT + 99 others); Wed, 17 Jun 2020 12:26:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726965AbgFQQ0I (ORCPT ); Wed, 17 Jun 2020 12:26:08 -0400 Received: from mail-ot1-x341.google.com (mail-ot1-x341.google.com [IPv6:2607:f8b0:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8FC9C06174E for ; Wed, 17 Jun 2020 09:26:07 -0700 (PDT) Received: by mail-ot1-x341.google.com with SMTP id n70so2093384ota.5 for ; Wed, 17 Jun 2020 09:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YvqTkcYAAN78pjSZwwNFeimQiSa/Q3KK8WoooVV/y3U=; b=hPkdbl9soeVEWE9R/q4Kl0iyd8h9OuLS1u7SD95691y6SJWNFSJjOaTBOzexZkB8Pn s+WNf58kRxHdUyfPKsUufvjEl8QuRbrBQvpQnzVhsBC2lwS1b4WxOGOlMAcTS0TDIolH M3ezaB4yBJuqg2lfsjDWZ9Ym7Fg1XIpvHZHSgq/F0+0L8yP0MT+J2O6B3mjEC0fygK4w m9UL7JoEY4uGRIe1+R2StPFHcAg8q6Ww8KLsmjiXZ9o1jAwdH4xsVzoSRcKyZn+l48ca xBlDdphZVog8bjNEsxFvEa1mdRXRanHE5CvqxYA6nZ1QvE110eU6vD3+2RwTK+1JF66W Fddg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YvqTkcYAAN78pjSZwwNFeimQiSa/Q3KK8WoooVV/y3U=; b=cKVhHXpSVaOLGYkWayqMQWRBnfTUOJoESDTb0yaENvArDSz5BEcd4bWCzUwpXo3hJW J/ok9yX6X+FaRNtqRYDBT/FezsXFvoVNM3p7DRUQ/lhWBIqodFIKxK3UxZq1/IlGo9mZ fWh+llNMqr29IK/+2FRCNPYY4qnbqxBSilwPBUgpQVI7pWIuytUFD251UvsomuUtMQgf G8rzfaERNd2RfAtQ3p2VTofZWVk2ri56XjEySls++S5hoXcd8aK6zwNORquPwaSifww9 7lR4j7NvTH8JPF6d3okLAHywZSQ+vX0qxjcx4JSwT6BkNKdszmVJc/8svkJ6bhT1iojN HU+Q== X-Gm-Message-State: AOAM530UB8tF2lz2PW3dfQjSFq/xwZL31Jr73P9sVJBOKgNm3yCwgd0O mK7d9cKEt1lMQ/FKa46Qr3Q= X-Received: by 2002:a05:6830:1512:: with SMTP id k18mr7562648otp.37.1592411166434; Wed, 17 Jun 2020 09:26:06 -0700 (PDT) Received: from frodo.hsd1.co.comcast.net ([2601:284:8204:6ba0::ae4b]) by smtp.googlemail.com with ESMTPSA id h7sm95877otk.48.2020.06.17.09.26.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Jun 2020 09:26:05 -0700 (PDT) From: Jim Cromie To: jbaron@akamai.com, linux-kernel@vger.kernel.org, akpm@linuxfoundation.org, gregkh@linuxfoundation.org Cc: linux@rasmusvillemoes.dk, Jim Cromie Subject: [PATCH v3 06/21] dyndbg: fix overcounting of ram used by dyndbg Date: Wed, 17 Jun 2020 10:25:19 -0600 Message-Id: <20200617162536.611386-7-jim.cromie@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200617162536.611386-1-jim.cromie@gmail.com> References: <20200617162536.611386-1-jim.cromie@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org during dyndbg init, verbose logging prints its ram overhead. It counted strlens of struct _ddebug's 4 string members, in all callsite entries, which would be approximately correct if each had been mallocd. But they are pointers into shared .rodata; for example, all 10 kobject callsites have identical filename, module values. Its best not to count that memory at all, since we cannot know they were linked in because of CONFIG_DYNAMIC_DEBUG=y, and we want to report a number that reflects what ram is saved by deconfiguring it. Also fix wording and size under-reporting of the __dyndbg section. Heres my overhead, on a virtme-run VM on a fedora-31 laptop: dynamic_debug:dynamic_debug_init: 260 modules, 2479 entries \ and 10400 bytes in ddebug tables, 138824 bytes in __dyndbg section Signed-off-by: Jim Cromie --- lib/dynamic_debug.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 66c0bdf06ce7..9b2445507988 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -1017,7 +1017,6 @@ static int __init dynamic_debug_init(void) char *cmdline; int ret = 0; int n = 0, entries = 0, modct = 0; - int verbose_bytes = 0; if (&__start___dyndbg == &__stop___dyndbg) { if (IS_ENABLED(CONFIG_DYNAMIC_DEBUG)) { @@ -1033,9 +1032,6 @@ static int __init dynamic_debug_init(void) iter_start = iter; for (; iter < __stop___dyndbg; iter++) { entries++; - verbose_bytes += strlen(iter->modname) + strlen(iter->function) - + strlen(iter->filename) + strlen(iter->format); - if (strcmp(modname, iter->modname)) { modct++; ret = ddebug_add_module(iter_start, n, modname); @@ -1052,9 +1048,9 @@ static int __init dynamic_debug_init(void) goto out_err; ddebug_init_success = 1; - vpr_info("%d modules, %d entries and %d bytes in ddebug tables, %d bytes in (readonly) verbose section\n", + vpr_info("%d modules, %d entries and %d bytes in ddebug tables, %d bytes in __dyndbg section\n", modct, entries, (int)(modct * sizeof(struct ddebug_table)), - verbose_bytes + (int)(__stop___dyndbg - __start___dyndbg)); + (int)(entries * sizeof(struct _ddebug))); /* apply ddebug_query boot param, dont unload tables on err */ if (ddebug_setup_string[0] != '\0') { -- 2.26.2