lkml.org 
[lkml]   [2022]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch v10 05/10] task isolation: add hook to task exit
    Add task isolation specific hook to task exit routines.

    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

    ---
    include/linux/task_isolation.h | 11 +++++++++++
    kernel/exit.c | 2 ++
    kernel/fork.c | 1 +
    kernel/task_isolation.c | 4 ++++
    4 files changed, 18 insertions(+)

    Index: linux-2.6/kernel/exit.c
    ===================================================================
    --- linux-2.6.orig/kernel/exit.c
    +++ linux-2.6/kernel/exit.c
    @@ -64,6 +64,7 @@
    #include <linux/compat.h>
    #include <linux/io_uring.h>
    #include <linux/kprobes.h>
    +#include <linux/task_isolation.h>

    #include <linux/uaccess.h>
    #include <asm/unistd.h>
    @@ -759,6 +760,7 @@ void __noreturn do_exit(long code)
    validate_creds_for_do_exit(tsk);

    io_uring_files_cancel();
    + task_isol_exit(tsk);
    exit_signals(tsk); /* sets PF_EXITING */

    /* sync mm's RSS info before statistics gathering */
    Index: linux-2.6/kernel/fork.c
    ===================================================================
    --- linux-2.6.orig/kernel/fork.c
    +++ linux-2.6/kernel/fork.c
    @@ -2417,6 +2417,7 @@ bad_fork_free_pid:
    if (pid != &init_struct_pid)
    free_pid(pid);
    bad_fork_cleanup_task_isol:
    + task_isol_exit(p);
    task_isol_free(p);
    bad_fork_cleanup_thread:
    exit_thread(p);
    Index: linux-2.6/kernel/task_isolation.c
    ===================================================================
    --- linux-2.6.orig/kernel/task_isolation.c
    +++ linux-2.6/kernel/task_isolation.c
    @@ -21,6 +21,10 @@
    #include <linux/mm.h>
    #include <linux/vmstat.h>

    +void __task_isol_exit(struct task_struct *tsk)
    +{
    +}
    +
    void __task_isol_free(struct task_struct *tsk)
    {
    if (!tsk->task_isol_info)
    Index: linux-2.6/include/linux/task_isolation.h
    ===================================================================
    --- linux-2.6.orig/include/linux/task_isolation.h
    +++ linux-2.6/include/linux/task_isolation.h
    @@ -27,6 +27,13 @@ static inline void task_isol_free(struct
    __task_isol_free(tsk);
    }

    +void __task_isol_exit(struct task_struct *tsk);
    +static inline void task_isol_exit(struct task_struct *tsk)
    +{
    + if (tsk->task_isol_info)
    + __task_isol_exit(tsk);
    +}
    +
    int prctl_task_isol_feat_get(unsigned long arg2, unsigned long arg3,
    unsigned long arg4, unsigned long arg5);
    int prctl_task_isol_cfg_get(unsigned long arg2, unsigned long arg3,
    @@ -57,6 +64,10 @@ static inline void task_isol_free(struct
    {
    }

    +static inline void task_isol_exit(struct task_struct *tsk)
    +{
    +}
    +
    static inline int prctl_task_isol_feat_get(unsigned long arg2,
    unsigned long arg3,
    unsigned long arg4,

    \
     
     \ /
      Last update: 2022-01-27 18:39    [W:2.660 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site