Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp4860736ybl; Mon, 9 Dec 2019 18:29:02 -0800 (PST) X-Google-Smtp-Source: APXvYqwX7C3y5DB8EWU0n3Rr9cE3jKCGhsDQWHc1bbwiAyl65on6Mu29VJlUdSBDWPd+jFJSMNDp X-Received: by 2002:a05:6830:1248:: with SMTP id s8mr24036294otp.202.1575944942666; Mon, 09 Dec 2019 18:29:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575944942; cv=none; d=google.com; s=arc-20160816; b=rVIVbJnipFGOSCfil9/2cJ5rCBBNw8HQgnPs4NBk2hK5IdC5jVcMcMhTgdVLOcPjns eGtBJ17C68CxxSASgKZz5ga8B51zXM880LJuDbLRoZ8NHUvBhR7akWeii1G/gUJd5Rdi 4kfVWnognwkXDiE6NZPDvz0OGEAv86ve6+r7Q5X+++61Mle2afRo+WGcrrnTsmRYP9FF 8v2K+xpA9/Pe6iDv9o7Vw6lNojRMpe6XQw6f3ksn+x11qYIO8gmckWyFMeSLmeitf5ML nsU8P9nFCqEeyPii0o1LBhyrSput+Prv66ePJusTzRVoP076UK5SaS7+ZycJRuPIcKC/ A/6A== 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=Ds4ZVlPOzvwTUXxm8CWmPR/78xRX0JHc5Iyf+QRVEvs=; b=SoICtr/YQowPd6PEAl7TnZZwAMRHAynykwE8VcQfP7bViv5sEXNUUzVZYgs0u3L1+E XsL9WDq4WEeBCB5wVep5H7HK1P9994TBnIISGYrbyeneXafX5fhcR2pndjt6qhsK2ZdY S6uzoNX+jzXUbAGXsaqQnKUiLKNfmaSBbG+n2l+lrlfdOnuDLtz+hRUO2aWlgISdVCdV jOYj1ii6y/B4Bjjrw4xSMEN7UEJJrLYKmwmPiAECnY1qk8tBpeJjIifVFf7+pfGI6Vak iZ3VV7GbGr354ojZvkqn7M1VL9Tk97Z7iXVO/l6hVEELniZOYgoIebm85/KlQDPsoawD +I3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=M0NsW71F; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id t10si1123101oif.255.2019.12.09.18.28.50; Mon, 09 Dec 2019 18:29:02 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=M0NsW71F; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727016AbfLJC2K (ORCPT + 99 others); Mon, 9 Dec 2019 21:28:10 -0500 Received: from mail-io1-f66.google.com ([209.85.166.66]:39916 "EHLO mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726974AbfLJC2I (ORCPT ); Mon, 9 Dec 2019 21:28:08 -0500 Received: by mail-io1-f66.google.com with SMTP id c16so17121205ioh.6 for ; Mon, 09 Dec 2019 18:28:08 -0800 (PST) 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=Ds4ZVlPOzvwTUXxm8CWmPR/78xRX0JHc5Iyf+QRVEvs=; b=M0NsW71FKz4msbAAqukxJOWkEYOgbcHz2et1+oWhoGVwyCjRSwcasfYSPajbFxk4FG efzm1dSl5sMV0+OdiMJH/zAGv+IVI49o5PrGvQINZtPfFbsE0xHdWUp6lmspA5g1YoRT 8yy2MDbg97LCT4csK4l/zut6vFKeSE/SvyIigMkvBFWE0DYexqdEV5RZv+CfmgXB+iUf Q3mXkdLipmiARAS66thblkau0TC249s/LA02ZdIWeIoEjb2g7vBRTxBQRWsHy+qzQYor BxZtU3T06chEl6TMMEhN0FmrRld6COSquyC3BFLwWMK6ESeoB40jqM7xNbdcd0w7lW6b raHQ== 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=Ds4ZVlPOzvwTUXxm8CWmPR/78xRX0JHc5Iyf+QRVEvs=; b=YoRfseaOH/L+oCNTAyVtTlCuagzdweFmTfK7SKx/pdPHA64sC5Ugh5BmPdW7Ws4MUB wWWh6FVKXYW2y4FJqQLxM99ghRYgg0uSHRdpiixYvHYK85mhZWz63TyZjVXQ3LnqZbLN g/tR/32iLErvgwoeJHAmExV3erhcPt79qR1Fr8qOtG9FTinHDMpTyIx1veN6bFVl9Jcq RuZVKiGhBsVwzU8K1rpAfgKhk+hYAXskonz3gfifd2ZgkuvEaw9qgCUy3juBwwMaLLsz KBDW6CUZqjLCyNztVTESk3XDW5luikaXhBV5L/9PE704Hy9Snn67bWZp8cw3V7eEL7ia 0Jig== X-Gm-Message-State: APjAAAU6ePRK3seRVhfGBMHpmvzqtcaUd4PySxkRme4BqlX2l/iDhPow B1WFQ4BpYzGhaQxvP0DlR8k= X-Received: by 2002:a6b:d912:: with SMTP id r18mr22822414ioc.306.1575944887933; Mon, 09 Dec 2019 18:28:07 -0800 (PST) Received: from localhost.localdomain (c-24-9-77-57.hsd1.co.comcast.net. [24.9.77.57]) by smtp.googlemail.com with ESMTPSA id l9sm334052ioh.77.2019.12.09.18.28.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 18:28:07 -0800 (PST) From: Jim Cromie To: jbaron@akamai.com, linux-kernel@vger.kernel.org, akpm@linuxfoundation.org Cc: gregkh@linuxfoundation.org, linux@rasmusvillemoes.dk, Jim Cromie Subject: [PATCH v4 05/16] dyndbg: fix overcounting of ram used by dyndbg Date: Mon, 9 Dec 2019 19:27:31 -0700 Message-Id: <20191210022742.822686-6-jim.cromie@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191210022742.822686-1-jim.cromie@gmail.com> References: <20191210022742.822686-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 0a4588fe342e..b5fb0aa0fbc3 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -1008,7 +1008,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) { pr_warn("_ddebug table is empty in a CONFIG_DYNAMIC_DEBUG build\n"); @@ -1019,9 +1018,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); @@ -1038,9 +1034,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.23.0