From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6855CDB482 for ; Thu, 12 Oct 2023 19:48:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1AA898D0148; Thu, 12 Oct 2023 15:48:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E50A8D0002; Thu, 12 Oct 2023 15:48:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC7AA8D0148; Thu, 12 Oct 2023 15:48:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D8EF58D0002 for ; Thu, 12 Oct 2023 15:48:40 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BF14BB5612 for ; Thu, 12 Oct 2023 19:48:40 +0000 (UTC) X-FDA: 81337846800.28.D37BD22 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) by imf27.hostedemail.com (Postfix) with ESMTP id 0134B40012 for ; Thu, 12 Oct 2023 19:48:38 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Pz+D4A3i; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of jim.cromie@gmail.com designates 209.85.166.52 as permitted sender) smtp.mailfrom=jim.cromie@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697140119; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZM5rYwdrlUHJ3qGgxecEnebBAR86FDciuES39cltGkM=; b=zPRLz23ozmBFbiLNpWFSYx9Xyl34hAEe0mjcA076gy3ROxY8YhSUeT20qvZWLSMV1ENgeV uLYrLO1gfCA2bN/bYUH4vxMhWuY8yXE2eckKjZKn5VFmVVURHpWHCMrMADszL2EBH5wgSb 3xBspaBzqhmQW7OLPxvOFiGNor3k+Ec= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Pz+D4A3i; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of jim.cromie@gmail.com designates 209.85.166.52 as permitted sender) smtp.mailfrom=jim.cromie@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697140119; a=rsa-sha256; cv=none; b=11VrOe0P0TlAqs4XBEIt10Qr7+OHoxw4KweP0gA2FY+BHcJggfUqFqked4ADMZOwEF6SzF fqXNCMaiYfisbClhVODsBi5eY/r64OkZMwvxpm2AEn4eDerE2delLKVO4Y0r00l6hoBRQH ETEvKevoIFE7MW1X6vSblhJn3ZFw3Q8= Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-79fe612beabso55172539f.3 for ; Thu, 12 Oct 2023 12:48:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697140118; x=1697744918; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZM5rYwdrlUHJ3qGgxecEnebBAR86FDciuES39cltGkM=; b=Pz+D4A3ihGdcCVsaUhjcQ0Mj1uGA+uYNuAqEcdW3eiWhds2zOo0qtAOZUYRA0/Q8BR EiS6FWv8S4p30wfogE3+Z7WfN9pSEAZY3BEIbvCbUU8AQ1EKtOGhCdTWRXs8Ri8rbtT3 WN4cjeH2i82r7OCTQnzJNo2BVYSqlyzj05d0y7VmseCqFp+588r2qwOxdBPajNlB8xOf 1//roPtWBpWfto2HYkABI7a4LTSZmUzsBWBSPkxtiEEuGy8qeRnX44KvKKZYUJ8BTRVS IBNhp4AuC6tH22JeLVVUcalB4wMjhplGJx2aNJ0SuXQMS4FCRM314gMGJVgpUiNXxJXf H2Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697140118; x=1697744918; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZM5rYwdrlUHJ3qGgxecEnebBAR86FDciuES39cltGkM=; b=PbnCtW9sZ+y8AIbAb5lG8Ti5cyEK5cwva23F05zLE3fzMYHEmzQOWG3jeu2uGY2L5e 96FxxeKpZ/4sF2a3IVZCbdskbhrydrHbaRDGu5+oHH95dHUYhFscGbEhJzyfBqExQiVP h/i5McQpkbhAIOgJ0i7wQiKBwug9KEkw8Tp2prbMUxzZh6mgUTh7wY5DFCbbbY1Sdtc+ Yhs3yMJ75XPSI8rdV8E1po7FmHmLGtTM6udZQaUrkOMifhp2nd+HQ5LrDVS3cVFazQnO 15UVZCzam1Og8SlkJFHctsfUXUldWDbHrm2Gv9jWeUW9nFV4+Y4464UC9WqrUJ6+L5FU 5Uwg== X-Gm-Message-State: AOJu0YyRDs1FL1yRKWHsFcgTEhGvKCnEbs4/9jltvEGT+vzt0L1K1WCx yMeUdt+XM1DeufaNGLQhHE4= X-Google-Smtp-Source: AGHT+IHJQgyemV60d0TtSM5gRZcC8BOKY9QEWfAWdNthxj5Xm9QnZob6Y9eoYwqr1EmvKzVb/INxVg== X-Received: by 2002:a05:6602:211a:b0:792:43b4:dc2 with SMTP id x26-20020a056602211a00b0079243b40dc2mr28000700iox.3.1697140118215; Thu, 12 Oct 2023 12:48:38 -0700 (PDT) Received: from frodo.. (c-73-78-62-130.hsd1.co.comcast.net. [73.78.62.130]) by smtp.googlemail.com with ESMTPSA id h6-20020a5d9e06000000b007a25540c49bsm4307891ioh.27.2023.10.12.12.48.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Oct 2023 12:48:37 -0700 (PDT) From: Jim Cromie To: linux-kernel@vger.kernel.org, jbaron@akamai.com, gregkh@linuxfoundation.org Cc: david@redhat.com, lb@semihalf.com, linux@rasmusvillemoes.dk, joe@perches.com, mcgrof@kernel.org, Liam.Howlett@Oracle.com, linux-mm@kvack.org, Jim Cromie Subject: [RFC PATCH 01/10] dyndbg: prep to isolate 3 repetetive fields Date: Thu, 12 Oct 2023 13:48:25 -0600 Message-ID: <20231012194834.3288085-2-jim.cromie@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231012194834.3288085-1-jim.cromie@gmail.com> References: <20231012194834.3288085-1-jim.cromie@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: uzayni93n37e4fftnrm3cy8ppy7q69p5 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 0134B40012 X-HE-Tag: 1697140118-549177 X-HE-Meta: U2FsdGVkX19BkX3evXIcRWpLPoVOnyb3xSF/dQgngiL0ZEVBKqTVrMXgdnYxdPOB/LddD+SSLKpC2Sq3xX1rSJKk01syFoOZz4v8ZoWqhZm9dppbzNVBnoHspd0TnbBpoR58Xz+B13zbKFtcc8LNhkyR9u3mFiYek0ieo7/SKbvtZK/NV8xcaPrSSsx0T77zCHjiiqyJQFB6YAnYJOirQr88NEgyVfSJd2bWmEmEYMutN1sNVPqIiBGmMYnKcQRzmJqLWe3/MZ5TCI9bLCPuT2pJvlK2JZlO0YoTXmdJafayEj9gIcPe/2hasbPAsQrtCc8faek1/IyRFwjGapE6X9idU0GzXFu1Age9G6oFlSRBgRtdmUwOY9j6moyQppQ7pu5t0bhPms2t+1hJdzzDcBGGKz//mZvE56bEq4MlaDsER06Ffj0Vb4+EzD3dtMMOdXVvMaWl8kuuWMJUsI8pGMJRGntv2mAi8NDL2WPdchG5M+TaLeFi4pdnsglI5Ut4yGb7Z+eGW6DxpjfEYIXu50I9XK6Uo5uHFgCdioZ5nLcCUdtdi1ooSVEdKsWaW0oPm7PQQnwvNg9ghOfQJC3f39lIVkQxkWQwyK5KvxpngxvzexY/aOCMmmQU/9Jh9Y+kGprYGBi3tk6X4YliS4K0/np9bQN4t7Ch79L1lQiH5utOH7tYPpPphy22slSe849zsxIJ1Q8rvB+yxLH5ztW+Q6JXaxhkcAFWJfMHk5vJLMFektuade8Ubm/LW+7Xy96tYzIVTgw7Z5e10mKuYolYy62Ja6IeeKyoPD3VSVlfrGpM9W/P7fKkxXHf0dRKRa/8C+1e1ZFTIa1XHIkCiPxcSLoQ8VCa/+jLAPXempVk4o1EXV8ymLo5wWsAtTPVuve7NGD1v/UcKOucSXn9yFS0IVdRjBGXGB+2YzAAKL8EHRjvZ0j5U01B9P7fwYOlYUhwcRnh32K4UQ0C6Lh7P78 CMRWVmvb DQW9OPBCxJ4/Cf7PXF52nT/Wqiuz1innidWAgBIS9Egz5gM4qIND2vAn1JZV1vp8tmBXaElUWZl3J65JkcORZjzj8AG+Tvlxluoyyj/coH2jjRRJY4IA01l58Kq2Ato4lU85uGKaK4bLv9Kd50flLZjrXjll94gb4Pw+HPEEfThb6gld6ov/jsYqJLRTkOt/k7V2nrklu8OoWMfpiHRIALj/edC6owamEv7C725Lc1pgj4riHCTKdYVmwusWFLt7GH/zjU/KRfHREV8Rs98uWrdYU3J24Q+ze736LUrxVfSYbeHa71TJ/i+84xaMYcK0prZE+tbdj3YJQ4pNPnX2QH3SyOdPekR/mx4CB7Pc4EyK/J0RWzB9UD9ZgljTjmFoUy3+XWdp8jDwsZg7khlAYJZwh2bv3YqBmsSY7zq7rIMVxB6CZCeb48OQ130AfQstsohPcJ6bilN0qYZuhxLK4IAJHSXbRgqhFDbmRP6xhvJDAcq4HGV5/QDiyha6zSr3TU7ZvWgMkVg8uTzDx+CQKGHf2Ixr02spsRQT9vSBusHaJ6hE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Move 3 fields: modname, filename, function into an anonymous struct, and rename with '_' prefix to catch stale uses. Add 3 desc_*() macros to abstract the field refs. Add DYNAMIC_DEBUG_SITE_INIT() to initialize the fields. no functional change. Signed-off-by: Jim Cromie --- include/linux/dynamic_debug.h | 22 ++++++++++++++++------ lib/dynamic_debug.c | 28 ++++++++++++++-------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index 2237d454bc19..aacfafc466c0 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h @@ -13,14 +13,17 @@ * ELF section at every dynamic debug callsite. At runtime, * the special section is treated as an array of these. */ + struct _ddebug { /* * These fields are used to drive the user interface * for selecting and displaying debug callsites. */ - const char *modname; - const char *function; - const char *filename; + struct /* _ddebug_site */ { + const char *_modname; + const char *_function; + const char *_filename; + }; const char *format; unsigned int lineno:18; #define CLS_BITS 6 @@ -61,6 +64,10 @@ struct _ddebug { #endif } __attribute__((aligned(8))); +#define desc_modname(d) (d)->modname +#define desc_filename(d) (d)->filename +#define desc_function(d) (d)->function + enum ddebug_class_map_type { DD_CLASS_TYPE_DISJOINT_BITS, /** @@ -213,12 +220,15 @@ void __dynamic_ibdev_dbg(struct _ddebug *descriptor, const struct ib_device *ibdev, const char *fmt, ...); +#define DYNAMIC_DEBUG_SITE_INIT() \ + ._modname = KBUILD_MODNAME, \ + ._function = __func__, \ + ._filename = __FILE__ + #define DEFINE_DYNAMIC_DEBUG_METADATA_CLS(name, cls, fmt) \ static struct _ddebug __aligned(8) \ __section("__dyndbg") name = { \ - .modname = KBUILD_MODNAME, \ - .function = __func__, \ - .filename = __FILE__, \ + DYNAMIC_DEBUG_SITE_INIT(), \ .format = (fmt), \ .lineno = __LINE__, \ .flags = _DPRINTK_FLAGS_DEFAULT, \ diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 3dc512fb1d66..c0e595483cb9 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -235,16 +235,16 @@ static int ddebug_change(const struct ddebug_query *query, /* match against the source filename */ if (query->filename && - !match_wildcard(query->filename, dp->filename) && + !match_wildcard(query->filename, desc_filename(dp)) && !match_wildcard(query->filename, - kbasename(dp->filename)) && + kbasename(desc_filename(dp))) && !match_wildcard(query->filename, - trim_prefix(dp->filename))) + trim_prefix(desc_filename(dp)))) continue; /* match against the function */ if (query->function && - !match_wildcard(query->function, dp->function)) + !match_wildcard(query->function, desc_function(dp))) continue; /* match against the format */ @@ -281,8 +281,8 @@ static int ddebug_change(const struct ddebug_query *query, } #endif v4pr_info("changed %s:%d [%s]%s %s => %s\n", - trim_prefix(dp->filename), dp->lineno, - dt->mod_name, dp->function, + trim_prefix(desc_filename(dp)), dp->lineno, + dt->mod_name, desc_function(dp), ddebug_describe_flags(dp->flags, &fbuf), ddebug_describe_flags(newflags, &nbuf)); dp->flags = newflags; @@ -781,13 +781,13 @@ static int __dynamic_emit_prefix(const struct _ddebug *desc, char *buf, int pos) { if (desc->flags & _DPRINTK_FLAGS_INCL_MODNAME) pos += snprintf(buf + pos, remaining(pos), "%s:", - desc->modname); + desc_modname(desc)); if (desc->flags & _DPRINTK_FLAGS_INCL_FUNCNAME) pos += snprintf(buf + pos, remaining(pos), "%s:", - desc->function); + desc_function(desc)); if (desc->flags & _DPRINTK_FLAGS_INCL_SOURCENAME) pos += snprintf(buf + pos, remaining(pos), "%s:", - trim_prefix(desc->filename)); + trim_prefix(desc_filename(desc))); return pos; } @@ -1110,8 +1110,8 @@ static int ddebug_proc_show(struct seq_file *m, void *p) } seq_printf(m, "%s:%u [%s]%s =%s \"", - trim_prefix(dp->filename), dp->lineno, - iter->table->mod_name, dp->function, + trim_prefix(desc_filename(dp)), dp->lineno, + iter->table->mod_name, desc_function(dp), ddebug_describe_flags(dp->flags, &flags)); seq_escape_str(m, dp->format, ESCAPE_SPACE, "\t\r\n\""); seq_puts(m, "\""); @@ -1528,12 +1528,12 @@ static int __init dynamic_debug_init(void) } iter = iter_mod_start = __start___dyndbg; - modname = iter->modname; + modname = desc_modname(iter); i = mod_sites = mod_ct = 0; for (; iter < __stop___dyndbg; iter++, i++, mod_sites++) { - if (strcmp(modname, iter->modname)) { + if (strcmp(modname, desc_modname(iter))) { mod_ct++; di.num_descs = mod_sites; di.descs = iter_mod_start; @@ -1542,7 +1542,7 @@ static int __init dynamic_debug_init(void) goto out_err; mod_sites = 0; - modname = iter->modname; + modname = desc_modname(iter); iter_mod_start = iter; } } -- 2.41.0