lkml.org 
[lkml]   [2023]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 03/10] fprobe: Add nr_maxactive to specify rethook_node pool size
    Date
    From: Masami Hiramatsu (Google) <mhiramat@kernel.org>

    Add nr_maxactive to specify rethook_node pool size. This means
    the maximum number of actively running target functions concurrently
    for probing by exit_handler. Note that if the running function is
    preempted or sleep, it is still counted as 'active'.

    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    ---
    include/linux/fprobe.h | 2 ++
    kernel/trace/fprobe.c | 5 ++++-
    2 files changed, 6 insertions(+), 1 deletion(-)

    diff --git a/include/linux/fprobe.h b/include/linux/fprobe.h
    index e0d4e6136249..678f741a7b33 100644
    --- a/include/linux/fprobe.h
    +++ b/include/linux/fprobe.h
    @@ -14,6 +14,7 @@
    * @flags: The status flag.
    * @rethook: The rethook data structure. (internal data)
    * @entry_data_size: The private data storage size.
    + * @nr_maxactive: The max number of active functions.
    * @entry_handler: The callback function for function entry.
    * @exit_handler: The callback function for function exit.
    */
    @@ -31,6 +32,7 @@ struct fprobe {
    unsigned int flags;
    struct rethook *rethook;
    size_t entry_data_size;
    + int nr_maxactive;

    void (*entry_handler)(struct fprobe *fp, unsigned long entry_ip,
    struct pt_regs *regs, void *entry_data);
    diff --git a/kernel/trace/fprobe.c b/kernel/trace/fprobe.c
    index fa25d09c9d57..f222848571f2 100644
    --- a/kernel/trace/fprobe.c
    +++ b/kernel/trace/fprobe.c
    @@ -143,7 +143,10 @@ static int fprobe_init_rethook(struct fprobe *fp, int num)
    }

    /* Initialize rethook if needed */
    - size = num * num_possible_cpus() * 2;
    + if (fp->nr_maxactive)
    + size = fp->nr_maxactive;
    + else
    + size = num * num_possible_cpus() * 2;
    if (size < 0)
    return -E2BIG;

    \
     
     \ /
      Last update: 2023-03-27 00:03    [W:4.401 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site