Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1466549ybt; Sat, 20 Jun 2020 11:12:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzcVihkmJDQuZfVfnrOxUu1Q0xlJSKX/TacFtcBPo9QV95xoafm6SIcBqQEMg4DRSWlhMqJ X-Received: by 2002:a17:906:1c93:: with SMTP id g19mr8708710ejh.194.1592676749517; Sat, 20 Jun 2020 11:12:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592676749; cv=none; d=google.com; s=arc-20160816; b=zqkVsdmoGP0dlMk6+Mnk2gnJIVVXa7r/lGKyM1LBFTxTvCKdOpQ71PNCIEH0TZlSYU dMGvIS1B+zNtxwXl48+tM20I5hu5SP/a8vwL8HT3ZMWm+79SMQDEfHNpC0xiXFTrZVDr 5qhohkUhJxXvm3Oo6YD9sd+DruBCjRp9ZoEs4hZfCkWnZrh0RPamGjonSWEk2L3aD9pz cp1YQI5pouzytsdp9MGsNKKV17BB/KyTGkAnXg+Dl+dN65YMWe02wkrz+kk1BeIGP8AY PI8hEM+/poktzRmtKgH2OifiRJ5qGpxBLWmjAxw+rbXUSRXpo7CbxsgVoUYqeij+bLqf 4dNg== 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=a1NhPFJgs8J7VKwUXsSbbyWwo7J93O5W3cP0nzysSisTzI3EvP7Ww/YsMZA6ygNTM5 URc2zjkL5f6OJiEHno0vFZEoGp0MICa3RZQuXBWE3BJg0k+Y/VsnpWbffaJ1UHHIy0K7 QMPLH9MnDOcdX/GLUPyzrXMt0VqUD/q6OrL1cIOoTl+KwgKMcjnGxQlDmIUv7D7z5O5Y JYKziYA6BuwQkfxrHocElRqkiwGbEyDn2QWqDP5FI6ZHTB9mLA02wOe/5XfxFIuTbU5D CUziYsfZlk9IB+zlHbj3K5Jl0qXr7WVMnuNIVpis/MI54dFi+YVbvUh9s5kfqwkvxWje NuxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=PYltxMsG; 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 qw23si6003303ejb.231.2020.06.20.11.12.07; Sat, 20 Jun 2020 11:12:29 -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=PYltxMsG; 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 S1728667AbgFTSI6 (ORCPT + 99 others); Sat, 20 Jun 2020 14:08:58 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:41641 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbgFTSIJ (ORCPT ); Sat, 20 Jun 2020 14:08:09 -0400 Received: by mail-ot1-f68.google.com with SMTP id k15so9839285otp.8 for ; Sat, 20 Jun 2020 11:08:08 -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=PYltxMsGAgvI/vD/oqJzAkm5smvWLJ64aCdWLGvjxktBnj4XmKm9GlBDiURZOA4XM/ eN4R9DnKirURibR+keUEh5BdY5pIVV9SIR7JvsoV1hJ/eSst8n0JyExxKD9FHjR9071G xgafLBwT80CD6ptphAJqtEnTTVFjIA/ZTtz8cdtRmfaXTohYM1jv6FHDYrbYaiGRqNEn 6/s7E4udamJKdFfIJewdjI2VEtDtKMWlaw1RRlJWveXRm3ohoaYM0AUQNC0V/GbIwAby uNxECNSTm2tePRIMK1xYZrr/xWRhUhC0nyJ0hgkvISPcrmwnfJHJXzyjC866FI9op0sE iZgA== 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=miyuTk/Tqc1hn/w77A1iKgFpn9ggK8z9nq2umkk7OUVu5Wy/tDfUG5HZT3PYe3bgpo EH0K5vyHCz+iJI2kQIoY0j2phykHrbDW/uhnh3XZT7rSmTEmp8vULOV9G8aZETLlvkbi sL6Jgh5K5IAanGFFs2j3S/53MeibBlzVWPhsJW54ZwzkIkbvDCkIX6lfwjRiPkKk4Ont M8ghZ6w9dJ5S/x1dPLr6jrHiNcXvZbrs9qEy2VfRK9KjROIO/eC+55PLuGduSpm4DiHP 3I6VMtXjMWbFicDHcRsszaItcgK94vOjqB9cMOlaV4nVR5vp3EJFGD/7WkVukG5uSVZK drBg== X-Gm-Message-State: AOAM5323DfhMstXT+EDzgbywk+bhoCVcfU97X0XO4A9/cLHOUji8Iaru r/Vdssi4mexquiQXCxS49uM= X-Received: by 2002:a9d:2668:: with SMTP id a95mr7917558otb.284.1592676428020; Sat, 20 Jun 2020 11:07:08 -0700 (PDT) Received: from localhost.localdomain (c-24-9-77-57.hsd1.co.comcast.net. [24.9.77.57]) by smtp.googlemail.com with ESMTPSA id y31sm2077901otb.41.2020.06.20.11.07.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Jun 2020 11:07:07 -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 v4 06/17] dyndbg: fix overcounting of ram used by dyndbg Date: Sat, 20 Jun 2020 12:06:32 -0600 Message-Id: <20200620180643.887546-7-jim.cromie@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200620180643.887546-1-jim.cromie@gmail.com> References: <20200620180643.887546-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