lkml.org 
[lkml]   [2023]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v3 7/7] x86/resctrl: Add debug files when mounted with debug option
    From
    Date
    Add the debug files to the resctrl hierarchy.

    Signed-off-by: Babu Moger <babu.moger@amd.com>
    ---
    arch/x86/kernel/cpu/resctrl/rdtgroup.c | 48 +++++++++++++++++++++++++++++++-
    1 file changed, 47 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
    index a1f13715a65c..790c6b9f9031 100644
    --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
    +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
    @@ -2400,6 +2400,45 @@ static int mkdir_mondata_all(struct kernfs_node *parent_kn,
    struct rdtgroup *prgrp,
    struct kernfs_node **mon_data_kn);

    +void resctrl_add_debug_file(struct kernfs_node *parent_kn, const char *config,
    + unsigned long fflags)
    +{
    + struct rftype *rft;
    +
    + rft = rdtgroup_get_rftype_by_name(config);
    + if (rft) {
    + rft->fflags |= fflags;
    + rdtgroup_add_file(parent_kn, rft);
    + }
    +}
    +
    +static void resctrl_add_debug_files(void)
    +{
    + resctrl_add_debug_file(rdtgroup_default.kn, "rmid", RFTYPE_BASE);
    + resctrl_add_debug_file(rdtgroup_default.kn, "closid", RFTYPE_BASE_CTRL);
    + kernfs_activate(rdtgroup_default.kn);
    +}
    +
    +void resctrl_remove_debug_file(struct kernfs_node *parent_kn,
    + const char *config, unsigned long fflags)
    +{
    + struct rftype *rft;
    +
    + rft = rdtgroup_get_rftype_by_name(config);
    + if (rft) {
    + rft->fflags &= ~fflags;
    + kernfs_remove_by_name(parent_kn, config);
    + }
    +}
    +
    +static void resctrl_remove_debug_files(void)
    +{
    + resctrl_remove_debug_file(rdtgroup_default.kn, "rmid", RFTYPE_BASE);
    + resctrl_remove_debug_file(rdtgroup_default.kn, "closid",
    + RFTYPE_BASE_CTRL);
    + kernfs_activate(rdtgroup_default.kn);
    +}
    +
    static int rdt_enable_ctx(struct rdt_fs_context *ctx)
    {
    int ret = 0;
    @@ -2413,8 +2452,10 @@ static int rdt_enable_ctx(struct rdt_fs_context *ctx)
    if (!ret && ctx->enable_mba_mbps)
    ret = set_mba_sc(true);

    - if (!ret && ctx->debug)
    + if (!ret && ctx->debug) {
    resctrl_debug = true;
    + resctrl_add_debug_files();
    + }

    return ret;
    }
    @@ -2831,6 +2872,11 @@ static void rdt_kill_sb(struct super_block *sb)

    set_mba_sc(false);

    + if (resctrl_debug) {
    + resctrl_remove_debug_files();
    + resctrl_debug = false;
    + }
    +
    /*Put everything back to default values. */
    for_each_alloc_capable_rdt_resource(r)
    reset_all_ctrls(r);

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