alloc_tag: fix a leak and a deadlock around shutdown_mem_profiling()
v2 cover alloc_tag: fix a leak and a deadlock around shutdown_mem_profiling()
Two fixes for issues reported by sashiko:
1. percpu counter leak on modules loaded after profiling is disabled.
2. AB-BA deadlock between module load and /proc/allocinfo readers.
Changes since the RFC [2]:
- The "move codetag section placement decision to layout_sections()" patch is dropped from this series. Its retry path depends on [1], so it will be sent as part of that patchset instead.
- Patch 1 now returns -EOPNOTSUPP instead of introducing CODETAG_MODULE_LOAD/CODETAG_MODULE_EXCLUDED defines (suggested by Suren).
- Reported-by tags added.
Patch 1 skips percpu counter allocation when profiling is disabled, so the module loads without its tags instead of leaking counters. Patch 2 defers remove_proc_entry() to a workqueue.
[1]: https://lore.kernel.org/all/[email protected]/
[2]: https://lore.kernel.org/all/[email protected]/
Hao Ge (2):
alloc_tag: skip percpu counter allocation when profiling is disabled
alloc_tag: remove /proc/allocinfo outside of mod_lock
lib/codetag.c | 10 ++++++++-- mm/alloc_tag.c | 14 ++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-)
--
2.25.1