From: Johan Hovold <johan@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luis Chamberlain <mcgrof@kernel.org>,
Lucas De Marchi <lucas.demarchi@intel.com>,
Petr Pavlu <petr.pavlu@suse.com>,
gregkh@linuxfoundation.org, rafael@kernel.org, song@kernel.org,
lucas.de.marchi@gmail.com, christophe.leroy@csgroup.eu,
peterz@infradead.org, rppt@kernel.org, dave@stgolabs.net,
willy@infradead.org, vbabka@suse.cz, mhocko@suse.com,
dave.hansen@linux.intel.com, colin.i.king@gmail.com,
jim.cromie@gmail.com, catalin.marinas@arm.com, jbaron@akamai.com,
rick.p.edgecombe@intel.com, yujie.liu@intel.com,
david@redhat.com, tglx@linutronix.de, hch@lst.de,
patches@lists.linux.dev, linux-modules@vger.kernel.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
pmladek@suse.com, prarit@redhat.com, lennart@poettering.net
Subject: Re: [PATCH 2/2] module: add support to avoid duplicates early on load
Date: Mon, 29 May 2023 14:44:41 +0200 [thread overview]
Message-ID: <ZHSeOUpKtyc8VKx5@hovoldconsulting.com> (raw)
In-Reply-To: <CAHk-=wh6sXSO63kka+EWEqq0tGwtOnXYFWMXPQ6T_wZa+Np3MQ@mail.gmail.com>
On Mon, May 29, 2023 at 07:00:05AM -0400, Linus Torvalds wrote:
> However, can I ask you to just verify that it was purely the exclusive
> open part, and it wasn't that I messed up something else. IOW, can you
> replace the
>
> return exclusive_deny_write_access(file);
>
> in prepare_file_for_module_load() with just a "return 0", and remove the
>
> allow_write_access(f.file);
>
> line in finit_module()?
>
> That's obviously _instead_ of the revert that I already pushed out,
> just to verify that "yup, it's that part, not something silly
> elsewhere"
Yes, those two changes are enough to make the problem go away.
> I do wonder what it is that is different in your setup, and maybe you
> could also enable the
>
> pr_debug("finit_module: fd=%d, uargs=%p, flags=%i\n", fd, uargs, flags);
Below is the corresponding output with a working kernel: 174 requests
for the 131 modules that end up being loaded (without the revert there
is only around 110 modules loaded).
There is some probe deferral and async probing going on during normal
boot which may be part of the explanation.
Johan
[ 0.669112] finit_module: fd=3, uargs=00000000b461506c, flags=0
[ 0.674144] finit_module: fd=4, uargs=00000000b461506c, flags=0
[ 0.676783] finit_module: fd=5, uargs=00000000b461506c, flags=0
[ 0.678920] finit_module: fd=3, uargs=00000000b461506c, flags=0
[ 0.837967] finit_module: fd=5, uargs=0000000000157d9f, flags=0
[ 0.839414] finit_module: fd=3, uargs=00000000b461506c, flags=0
[ 0.844129] finit_module: fd=4, uargs=00000000b461506c, flags=0
[ 0.845016] finit_module: fd=3, uargs=00000000b461506c, flags=0
[ 0.849132] finit_module: fd=3, uargs=00000000b461506c, flags=0
[ 0.849460] finit_module: fd=4, uargs=00000000b461506c, flags=0
[ 3.345004] finit_module: fd=4, uargs=00000000e3e6c6d2, flags=0
[ 3.364302] finit_module: fd=4, uargs=0000000095136ea7, flags=0
[ 3.371928] finit_module: fd=5, uargs=0000000095136ea7, flags=0
[ 4.099183] finit_module: fd=3, uargs=00000000ce2d6f3e, flags=0
[ 4.103156] finit_module: fd=3, uargs=000000004e3e14c2, flags=0
[ 4.713558] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.715608] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.717620] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.717910] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.719517] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.725862] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.726730] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.727018] finit_module: fd=14, uargs=00000000262da138, flags=0
[ 4.730525] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.749602] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.749675] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.749678] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.774117] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.795307] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.797327] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.798405] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.799140] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.800850] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.807306] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.807313] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.807321] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.807394] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.807463] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.807525] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.807530] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.807590] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.811469] finit_module: fd=0, uargs=0000000080fab15b, flags=0
[ 4.845851] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.845875] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.846282] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.846363] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.846363] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.846669] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.846994] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.847005] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.847194] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.847356] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.847448] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.847556] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.847651] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.848175] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.850005] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.850485] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.866031] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.866032] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.866381] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.866711] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.867757] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.868360] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.886043] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.886046] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.886046] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.886060] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.886114] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.886140] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.886326] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.886716] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.887210] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.887451] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.887811] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.887963] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.892066] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.896048] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.896070] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.896092] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.896157] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 4.896193] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.896211] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 4.896737] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.896751] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.897174] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.897343] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.897388] finit_module: fd=19, uargs=00000000262da138, flags=0
[ 4.897555] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.897592] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.899657] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.899973] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 4.900316] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.901188] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.901668] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.901708] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.902030] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.903964] finit_module: fd=14, uargs=00000000262da138, flags=0
[ 4.905243] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.907083] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.907480] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.907519] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.909481] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 4.911705] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.912056] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 4.912079] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 4.915340] finit_module: fd=19, uargs=00000000262da138, flags=0
[ 4.933199] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.933585] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 4.935169] finit_module: fd=20, uargs=00000000262da138, flags=0
[ 4.956021] finit_module: fd=19, uargs=00000000262da138, flags=0
[ 4.956797] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 4.959865] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.964171] finit_module: fd=17, uargs=00000000262da138, flags=0
[ 4.977073] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 4.980167] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 5.043379] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.053709] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.131232] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 5.140785] finit_module: fd=19, uargs=00000000262da138, flags=0
[ 5.186244] finit_module: fd=18, uargs=00000000262da138, flags=0
[ 5.186247] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.186252] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.186451] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 5.186507] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 5.187345] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.190282] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 5.195744] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 5.198242] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 5.198271] finit_module: fd=20, uargs=00000000262da138, flags=0
[ 5.222394] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.222395] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.222407] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 5.222430] finit_module: fd=21, uargs=00000000262da138, flags=0
[ 5.222432] finit_module: fd=16, uargs=00000000262da138, flags=0
[ 5.222443] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 5.229650] finit_module: fd=22, uargs=00000000262da138, flags=0
[ 5.257981] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 5.313560] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.144316] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.178956] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.178961] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.182057] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 6.182067] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 6.243708] finit_module: fd=0, uargs=00000000f9e4f67e, flags=0
[ 6.249397] finit_module: fd=0, uargs=000000001b26db10, flags=0
[ 6.249904] finit_module: fd=1, uargs=000000001b26db10, flags=0
[ 6.250626] finit_module: fd=2, uargs=000000001b26db10, flags=0
[ 6.251515] finit_module: fd=3, uargs=000000001b26db10, flags=0
[ 6.254112] finit_module: fd=4, uargs=000000001b26db10, flags=0
[ 6.255129] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.255504] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 6.259256] finit_module: fd=0, uargs=00000000e1b6cfe4, flags=0
[ 6.264136] finit_module: fd=0, uargs=000000004070418f, flags=0
[ 6.265227] finit_module: fd=1, uargs=000000004070418f, flags=0
[ 6.270175] finit_module: fd=0, uargs=0000000092757077, flags=0
[ 6.271230] finit_module: fd=1, uargs=0000000092757077, flags=0
[ 6.322960] finit_module: fd=3, uargs=00000000fb904223, flags=0
[ 6.373125] finit_module: fd=0, uargs=00000000e2cdc73f, flags=0
[ 6.380061] finit_module: fd=0, uargs=000000000591e4e9, flags=0
[ 6.392296] finit_module: fd=0, uargs=0000000088d2796a, flags=0
[ 6.464595] finit_module: fd=0, uargs=000000001aa8b42e, flags=0
[ 6.479839] finit_module: fd=0, uargs=00000000de50a030, flags=0
[ 6.488790] finit_module: fd=0, uargs=00000000cbcb6a65, flags=0
[ 6.492573] finit_module: fd=1, uargs=00000000cbcb6a65, flags=0
[ 6.514903] finit_module: fd=0, uargs=000000006f393376, flags=0
[ 7.989970] finit_module: fd=0, uargs=00000000c4594f52, flags=0
[ 11.492886] finit_module: fd=13, uargs=00000000262da138, flags=0
[ 11.639532] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 11.640048] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 11.640997] finit_module: fd=15, uargs=00000000262da138, flags=0
[ 11.641049] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 11.775051] finit_module: fd=6, uargs=00000000262da138, flags=0
[ 11.776806] finit_module: fd=6, uargs=00000000262da138, flags=0
next prev parent reply other threads:[~2023-05-29 12:44 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-24 21:36 [PATCH 0/2] module: avoid all memory pressure due to duplicates Luis Chamberlain
2023-05-24 21:36 ` [PATCH 1/2] fs/kernel_read_file: add support for duplicate detection Luis Chamberlain
2023-05-24 21:52 ` Linus Torvalds
2023-05-24 21:56 ` Linus Torvalds
2023-05-24 22:07 ` Luis Chamberlain
2023-05-25 4:00 ` Linus Torvalds
2023-05-25 18:08 ` Luis Chamberlain
2023-05-25 18:35 ` Luis Chamberlain
2023-05-25 18:50 ` Linus Torvalds
2023-05-25 19:32 ` Luis Chamberlain
2023-05-25 7:01 ` Christian Brauner
2023-05-24 21:36 ` [PATCH 2/2] module: add support to avoid duplicates early on load Luis Chamberlain
2023-05-25 11:40 ` Petr Pavlu
2023-05-25 16:07 ` Linus Torvalds
2023-05-25 16:42 ` Greg KH
2023-05-25 18:22 ` Luis Chamberlain
2023-05-25 17:52 ` Linus Torvalds
2023-05-25 18:45 ` Lucas De Marchi
2023-05-25 21:12 ` Linus Torvalds
2023-05-25 22:02 ` Luis Chamberlain
2023-05-26 1:39 ` Linus Torvalds
2023-05-29 8:58 ` Johan Hovold
2023-05-29 11:00 ` Linus Torvalds
2023-05-29 12:44 ` Johan Hovold [this message]
2023-05-29 15:18 ` Johan Hovold
2023-05-30 1:55 ` Linus Torvalds
2023-05-30 9:40 ` Johan Hovold
2023-05-30 16:22 ` Luis Chamberlain
2023-05-30 17:16 ` Lucas De Marchi
2023-05-30 19:41 ` Luis Chamberlain
2023-05-30 22:17 ` Linus Torvalds
2023-05-31 5:30 ` Lucas De Marchi
2023-05-31 0:31 ` Luis Chamberlain
2023-05-31 7:51 ` David Hildenbrand
2023-05-31 16:57 ` Luis Chamberlain
[not found] ` <ba60bca6-b682-4c27-3c54-2512b6f16151@redhat.com>
[not found] ` <ZHoTFDkPIgglW0sU@bombadil.infradead.org>
[not found] ` <fa3f1a1f-edc6-f13b-cc84-f3264b03b0b1@redhat.com>
[not found] ` <ZH38lpTHZ/RISC1v@bombadil.infradead.org>
[not found] ` <ZH3/KVCHhX4D4yh9@bombadil.infradead.org>
2023-06-28 18:52 ` Luis Chamberlain
2023-06-28 20:14 ` Linus Torvalds
2023-06-28 22:07 ` Linus Torvalds
2023-06-28 23:17 ` Linus Torvalds
2023-06-29 0:18 ` Luis Chamberlain
2023-05-30 22:45 ` Dan Williams
2023-05-29 17:47 ` Linus Torvalds
2023-05-30 10:01 ` Johan Hovold
2023-05-25 16:54 ` Lucas De Marchi
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=ZHSeOUpKtyc8VKx5@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=colin.i.king@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=dave@stgolabs.net \
--cc=david@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=jbaron@akamai.com \
--cc=jim.cromie@gmail.com \
--cc=lennart@poettering.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=lucas.de.marchi@gmail.com \
--cc=lucas.demarchi@intel.com \
--cc=mcgrof@kernel.org \
--cc=mhocko@suse.com \
--cc=patches@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=petr.pavlu@suse.com \
--cc=pmladek@suse.com \
--cc=prarit@redhat.com \
--cc=rafael@kernel.org \
--cc=rick.p.edgecombe@intel.com \
--cc=rppt@kernel.org \
--cc=song@kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
--cc=willy@infradead.org \
--cc=yujie.liu@intel.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