From: Daniel Thompson <daniel.thompson@linaro.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
Aaron Tomlin <atomlin@redhat.com>,
"mcgrof@kernel.org" <mcgrof@kernel.org>,
"pmladek@suse.com" <pmladek@suse.com>,
"cl@linux.com" <cl@linux.com>, "mbenes@suse.cz" <mbenes@suse.cz>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"jeyu@kernel.org" <jeyu@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-modules@vger.kernel.org" <linux-modules@vger.kernel.org>,
"void@manifault.com" <void@manifault.com>,
"atomlin@atomlin.com" <atomlin@atomlin.com>,
"allen.lkml@gmail.com" <allen.lkml@gmail.com>,
"joe@perches.com" <joe@perches.com>,
"msuchanek@suse.de" <msuchanek@suse.de>,
"oleksandr@natalenko.name" <oleksandr@natalenko.name>,
"jason.wessel@windriver.com" <jason.wessel@windriver.com>
Subject: Re: [PATCH v9 13/14] module: Move kdb_modules list out of core code
Date: Thu, 3 Mar 2022 14:59:49 +0000 [thread overview]
Message-ID: <20220303145949.inaz2tecmfuek2hf@maple.lan> (raw)
In-Reply-To: <YiDEmRf3X0fxSayK@infradead.org>
On Thu, Mar 03, 2022 at 05:37:29AM -0800, Christoph Hellwig wrote:
> On Wed, Mar 02, 2022 at 08:56:23PM +0000, Christophe Leroy wrote:
> > Do we really want to hide the 'struct list_head modules' from external
> > world ?
> >
> > Otherwise we could declare it in include/linux/module.h ?
>
> I'd just move the trivial code that uses it from kernel/kdb/ to
> kernel/module/ as it is tied to module internals and just uses the
> KDB interfaces exposed to other parts of the kernel.
One of the best ways that we can common up code might be to dust
off some code I wrote a while back to display seq_files from
kdb.
The basic idea worked well enough but it often needs special
start/stop operatings to ensure the start meeds kdb's rather
odd locking restrictions. If there is a willingness for
something like the below to be included in the module code then we
could replace kdb_lsmod() with something that reused the code to
format /proc/modules.
Daniel.
diff --git a/kernel/module.c b/kernel/module.c
index 84a9141a5e159..ab43ee23cdba0 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -4664,7 +4664,33 @@ static int __init proc_modules_init(void)
return 0;
}
module_init(proc_modules_init);
-#endif
+
+#ifdef CONFIG_KGDB_KDB
+static void *kdb_m_start(struct seq_file *m, loff_t *pos)
+{
+ static LIST_HEAD(empty);
+ struct list_head *modlist = &modules;
+
+ if (mutex_is_locked(&module_mutex)) {
+ pr_info("Cannot display module list because it is
locked\n");
+ modlist = empty;
+ }
+
+ return seq_list_start(modlist, *pos);
+}
+
+const struct seq_operations kdb_modules_seqops = {
+ .start = kdb_m_start,
+ .next = m_next,
+ .show = m_show
+};
+#endif /* CONFIG_KGDB_KDB */
+
+/*
+ * TODO: Need to decide if it OK to disable kdb lsmod if
+ * !CONFIG_PROC_FS... but it probably is!
+ */
+#endif /* CONFIG_PROC_FS */
/* Given an address, look for it in the module exception tables. */
const struct exception_table_entry *search_module_extables(unsigned
long addr)
next prev parent reply other threads:[~2022-03-03 14:59 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-28 23:43 [PATCH v9 00/14] module: core code clean up Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 01/14] module: Move all into module/ Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 02/14] module: Simple refactor in preparation for split Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 03/14] module: Make internal.h and decompress.c more compliant Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 04/14] module: Move livepatch support to a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 05/14] module: Move latched RB-tree " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 06/14] module: Move strict rwx " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 07/14] module: Move extra signature support out of core code Aaron Tomlin
2022-03-02 8:08 ` Christophe Leroy
2022-03-02 13:33 ` Aaron Tomlin
2022-03-02 13:41 ` Christophe Leroy
2022-03-05 20:37 ` Aaron Tomlin
2022-03-06 17:46 ` Christophe Leroy
2022-03-07 9:38 ` Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 08/14] module: Move kmemleak support to a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 09/14] module: Move kallsyms support into " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 10/14] module: kallsyms: Fix suspicious rcu usage Aaron Tomlin
2022-03-01 16:52 ` Aaron Tomlin
2022-03-02 17:02 ` Aaron Tomlin
2022-03-02 22:24 ` Luis Chamberlain
2022-02-28 23:43 ` [PATCH v9 11/14] module: Move procfs support into a separate file Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 12/14] module: Move sysfs " Aaron Tomlin
2022-02-28 23:43 ` [PATCH v9 13/14] module: Move kdb_modules list out of core code Aaron Tomlin
2022-03-02 16:19 ` Daniel Thompson
2022-03-02 16:26 ` Daniel Thompson
2022-03-02 20:31 ` Aaron Tomlin
2022-03-02 20:56 ` Christophe Leroy
2022-03-02 22:46 ` Luis Chamberlain
2022-03-03 10:44 ` Aaron Tomlin
2022-03-03 14:57 ` Luis Chamberlain
2022-03-03 13:37 ` Christoph Hellwig
2022-03-03 14:59 ` Daniel Thompson [this message]
2022-03-03 17:54 ` Christoph Hellwig
2022-03-03 18:16 ` Christophe Leroy
2022-03-03 19:00 ` Christoph Hellwig
2022-03-03 19:21 ` Luis Chamberlain
2022-03-04 11:12 ` Aaron Tomlin
2022-03-04 11:54 ` Daniel Thompson
2022-03-04 11:59 ` Aaron Tomlin
2022-03-03 12:55 ` Daniel Thompson
2022-02-28 23:43 ` [PATCH v9 14/14] module: Move version support into a separate file Aaron Tomlin
2022-03-01 0:21 ` [PATCH v9 00/14] module: core code clean up Luis Chamberlain
2022-03-01 7:07 ` Christophe Leroy
2022-03-01 16:00 ` Luis Chamberlain
2022-03-01 7:44 ` Christophe Leroy
2022-03-01 16:01 ` Luis Chamberlain
2022-03-01 17:15 ` Lucas De Marchi
2022-03-01 17:43 ` Christophe Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220303145949.inaz2tecmfuek2hf@maple.lan \
--to=daniel.thompson@linaro.org \
--cc=akpm@linux-foundation.org \
--cc=allen.lkml@gmail.com \
--cc=atomlin@atomlin.com \
--cc=atomlin@redhat.com \
--cc=christophe.leroy@csgroup.eu \
--cc=cl@linux.com \
--cc=hch@infradead.org \
--cc=jason.wessel@windriver.com \
--cc=jeyu@kernel.org \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mcgrof@kernel.org \
--cc=msuchanek@suse.de \
--cc=oleksandr@natalenko.name \
--cc=pmladek@suse.com \
--cc=void@manifault.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).