• James Morse's avatar
    x86/resctrl: Pass the schema in info dir's private pointer · f2594492
    James Morse authored
    Many of resctrl's per-schema files return a value from struct
    rdt_resource, which they take as their 'priv' pointer.
    
    Moving properties that resctrl exposes to user-space into the core 'fs'
    code, (e.g. the name of the schema), means some of the functions that
    back the filesystem need the schema struct (to where the properties are
    moved), but currently take struct rdt_resource. For example, once the
    CDP resources are merged, struct rdt_resource no longer reflects all the
    properties of the schema.
    
    For the info dirs that represent a control, the information needed
    will be accessed via struct resctrl_schema, as this is how the resource
    is being used. For the monitors, its still struct rdt_resource as the
    monitors aren't described as schema.
    
    This difference means the type of the private pointers varies between
    control and monitor info dirs.
    
    Change the 'priv' pointer to point to struct resctrl_schema for
    the per-schema files that represent a control. The type can be
    determined from the fflags field. If the flags are RF_MON_INFO, its
    a struct rdt_resource. If the flags are RF_CTRL_INFO, its a struct
    resctrl_schema. No entry in res_common_files[] has both flags.
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarJamie Iles <jamie@nuviainc.com>
    Reviewed-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Tested-by: default avatarBabu Moger <babu.moger@amd.com>
    Link: https://lkml.kernel.org/r/20210728170637.25610-5-james.morse@arm.com
    f2594492
rdtgroup.c 81.4 KB