linux/kernel/livepatch
Linus Torvalds 3ba2c3ff98 modules changes for v6.2-rc1
Tux gets for xmass improving the average lookup performance of
 kallsyms_lookup_name() by 715x thanks to the work by Zhen Lei, which
 upgraded our old implementation from being O(n) to O(log(n)), while also
 retaining the old implementation support on /proc/kallsyms. The only
 penalty was increasing the memory footprint by 3 * kallsyms_num_syms.
 Folks who want to improve this further now also have a dedicated selftest
 facility through KALLSYMS_SELFTEST. Since I had to start reviewing other
 future kallsyms / modules enhancements by Nick Alcock (his stuff is not
 merged, it requires more work) I carefully reviewed and merged Zhen Lei's
 kallsyms changes through modules-next tree a bit less than a month ago.
 So this has been exposed on linux-next for about a month now with no
 reported regressions.
 
 Stephen Boyd added zstd in-kernel decompression support, but the only
 users of this would be folks using the load-pin LSM because otherwise
 we do module docompression in userspace. This is the newest code and
 was merged last week on modules-next.
 
 We spent a lot of time analyzing and coming to grips with a proper
 fix to an old modules regression which only recently came to light
 (since v5.3-rc1, May 2019) but even though I merged that fix onto
 modules-next last week I'm having second thoughts about it now as I was
 writing about that fix in this git tag message for you, as I found a few
 things we cannot quite justify there yet. So I'm going to push back to the
 drawing board again there until all i's are properly dotted. Yes, it's a
 regression but the issue has been there for 2 years now and it came up
 because of high end CPU count, it can wait a *tiny* bit more for a proper
 fix.
 
 The only other thing with mentioning is a minor boot time optimization by
 Rasmus Villemoes which deferes param_sysfs_init() to late init. The rest
 is cleanups and minor fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCgAwFiEENnNq2KuOejlQLZofziMdCjCSiKcFAmOX54cSHG1jZ3JvZkBr
 ZXJuZWwub3JnAAoJEM4jHQowkoinFSgP/AxBdTOljYoqHnIL2/5f7PO2epSUq4Yu
 h42kE7aQ9qbiR9Rq2piCmD0SmeroVBIfxoMJwxnTuUy5IeujLXe6mtt7nG7Z96H1
 mFxBCF63LqE/VUp/bYTusJkOPLksmhK2tCo5zMEnrRuhDAMrbFRc/S3jGm15P3/v
 /hdzh384Ou4cEQPQY6nsMwSvYsuNeYAhE/BqhkrQ1LDOAgSGx8DUp4db7i1/gmxG
 PAu7CPJEdEGljSHhG7v7PmqYYAyhyMRsW2WkCndQUvpcfZ3Q5abMFMa+9DQuT0j9
 VIJtIFMZzgC+wy+1HB2hdhVcfYj1cGul0DIKugbJ9obTrIEiB8BFSaNluZroKXkU
 MIB/rlQCU8kkiw5CocTwM7APHPyv5sZf97oYm9MHcRE2QYYq+o4XKul3Pl2vcEB7
 Cetbdxv+rUGl4Qm0U9AbXzZijwOnRu0XZShy4FTjwhipBSER93hGzYph9beSS+sb
 QLnDK1c6fATT9Ye95w9Oq7/4wdK5yDifRLwA57qo4oKNz4F4MhToPcIQbhLtU2IC
 NHWa5udylfbpNf2MnpCw0040b1hUV8atUxwZ2kBMPH/5bodXzQBKZkQEpzdPyOD8
 sihPRlVmiVVXwRMxtQtFZXpb4l9Zg9YTEFMAA1ixgT1Gefh1VjAMAfOmy/hqiqBp
 x5CXDwftRckB
 =acEB
 -----END PGP SIGNATURE-----

Merge tag 'modules-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux

Pull modules updates from Luis Chamberlain:
 "Tux gets for xmas an improvement to the average lookup performance of
  kallsyms_lookup_name() by 715x thanks to the work by Zhen Lei, which
  upgraded our old implementation from being O(n) to O(log(n)), while
  also retaining the old implementation support on /proc/kallsyms.

  The only penalty was increasing the memory footprint by 3 *
  kallsyms_num_syms. Folks who want to improve this further now also
  have a dedicated selftest facility through KALLSYMS_SELFTEST.

  Stephen Boyd added zstd in-kernel decompression support, but the only
  users of this would be folks using the load-pin LSM because otherwise
  we do module decompression in userspace.

  The only other thing with mentioning is a minor boot time optimization
  by Rasmus Villemoes which deferes param_sysfs_init() to late init. The
  rest is cleanups and minor fixes"

* tag 'modules-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
  livepatch: Call klp_match_callback() in klp_find_callback() to avoid code duplication
  module/decompress: Support zstd in-kernel decompression
  kallsyms: Remove unneeded semicolon
  kallsyms: Add self-test facility
  livepatch: Use kallsyms_on_each_match_symbol() to improve performance
  kallsyms: Add helper kallsyms_on_each_match_symbol()
  kallsyms: Reduce the memory occupied by kallsyms_seqs_of_names[]
  kallsyms: Correctly sequence symbols when CONFIG_LTO_CLANG=y
  kallsyms: Improve the performance of kallsyms_lookup_name()
  scripts/kallsyms: rename build_initial_tok_table()
  module: Fix NULL vs IS_ERR checking for module_get_next_page
  kernel/params.c: defer most of param_sysfs_init() to late_initcall time
  module: Remove unused macros module_addr_min/max
  module: remove redundant module_sysfs_initialized variable
2022-12-13 14:05:39 -08:00
..
core.c livepatch: Call klp_match_callback() in klp_find_callback() to avoid code duplication 2022-12-12 18:30:58 -08:00
core.h livepatch: Keep replaced patches until post_patch callback is called 2019-11-01 13:08:08 +01:00
Kconfig livepatch: Use the default ftrace_ops instead of REGS when ARGS is available 2020-11-13 12:15:28 -05:00
Makefile livepatch: Basic API to track system state changes 2019-11-01 13:08:14 +01:00
patch.c ftrace: rename ftrace_instruction_pointer_set() -> ftrace_regs_set_instruction_pointer() 2022-11-18 13:56:41 +00:00
patch.h livepatch: Remove Nop structures when unused 2019-01-11 20:51:24 +01:00
shadow.c Documentation: livepatch: Add livepatch API page 2021-12-23 11:35:53 +01:00
state.c kernel/: fix repeated words in comments 2020-10-16 11:11:19 -07:00
state.h livepatch: Allow to distinguish different version of system state changes 2019-11-01 13:08:19 +01:00
transition.c livepatch: Move the result-invariant calculation out of the loop 2022-10-18 15:50:31 +02:00
transition.h livepatch: Remove signal sysfs attribute 2019-01-16 22:09:33 +01:00