summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/pseries/vas.c
diff options
context:
space:
mode:
authorHaren Myneni <haren@linux.ibm.com>2022-02-28 17:15:36 -0800
committerMichael Ellerman <mpe@ellerman.id.au>2022-03-08 00:04:56 +1100
commitb903737bc522e0ef3f45a2a60c364ff547572c9b (patch)
tree8b5bb7da052b63691585101e2d961d31c29af23d /arch/powerpc/platforms/pseries/vas.c
parentc656cfe571a9b8b882e31177f554bd79141fc015 (diff)
powerpc/pseries/vas: sysfs interface to export capabilities
The hypervisor provides the available VAS GZIP capabilities such as default or QoS window type and the target available credits in each type. This patch creates sysfs entries and exports the target, used and the available credits for each feature. This interface can be used by the user space to determine the credits usage or to set the target credits in the case of QoS type (for DLPAR). /sys/devices/vas/vas0/gzip/default_capabilities (default GZIP capabilities) nr_total_credits /* Total credits available. Can be /* changed with DLPAR operation */ nr_used_credits /* Used credits */ /sys/devices/vas/vas0/gzip/qos_capabilities (QoS GZIP capabilities) nr_total_credits nr_used_credits Signed-off-by: Haren Myneni <haren@linux.ibm.com> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/702d8b626ebfac2b52f4995eebeafe1c9a6fcb75.camel@linux.ibm.com
Diffstat (limited to 'arch/powerpc/platforms/pseries/vas.c')
-rw-r--r--arch/powerpc/platforms/pseries/vas.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/vas.c b/arch/powerpc/platforms/pseries/vas.c
index 96178dd58adf..ca0ad191229d 100644
--- a/arch/powerpc/platforms/pseries/vas.c
+++ b/arch/powerpc/platforms/pseries/vas.c
@@ -560,6 +560,10 @@ static int __init get_vas_capabilities(u8 feat, enum vas_cop_feat_type type,
}
}
+ rc = sysfs_add_vas_caps(caps);
+ if (rc)
+ return rc;
+
copypaste_feat = true;
return 0;
@@ -844,6 +848,8 @@ static int __init pseries_vas_init(void)
caps_all.descriptor = be64_to_cpu(hv_caps->descriptor);
caps_all.feat_type = be64_to_cpu(hv_caps->feat_type);
+ sysfs_pseries_vas_init(&caps_all);
+
hv_cop_caps = kmalloc(sizeof(*hv_cop_caps), GFP_KERNEL);
if (!hv_cop_caps) {
rc = -ENOMEM;