[v6,0/4] lib,kprobes: kretprobe scalability improvement

Message ID 20221108071443.258794-1-wuqiang.matt@bytedance.com
Headers
Series lib,kprobes: kretprobe scalability improvement |

Message

wuqiang.matt Nov. 8, 2022, 7:14 a.m. UTC
  This patch series introduces a scalable and lockless ring-array based
object pool and replaces the original freelist (a LIFO queue based on
singly linked list) to improve the scalability of kretprobed routines.

Changes from v5 (https://lore.kernel.org/lkml/20221106053441.103199-1-wuqiang.matt@bytedance.com/):
  1) PATCH 2/4: test_objpool: build warnings with [-Wmissing-prototypes]
  2) PATCH 3/4: fprobe.c: conflicts resolved for linux-6.1-rc4 merging

wuqiang (4):
  lib: objpool added: ring-array based lockless MPMC queue
  lib: objpool test module added
  kprobes: kretprobe scalability improvement with objpool
  kprobes: freelist.h removed

 include/linux/freelist.h |  129 -----
 include/linux/kprobes.h  |    9 +-
 include/linux/objpool.h  |  153 ++++++
 include/linux/rethook.h  |   15 +-
 kernel/kprobes.c         |   95 ++--
 kernel/trace/fprobe.c    |   17 +-
 kernel/trace/rethook.c   |   80 +--
 lib/Kconfig.debug        |   11 +
 lib/Makefile             |    4 +-
 lib/objpool.c            |  487 ++++++++++++++++++
 lib/test_objpool.c       | 1052 ++++++++++++++++++++++++++++++++++++++
 11 files changed, 1801 insertions(+), 251 deletions(-)
 delete mode 100644 include/linux/freelist.h
 create mode 100644 include/linux/objpool.h
 create mode 100644 lib/objpool.c
 create mode 100644 lib/test_objpool.c