mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
perf/amd/ibs: Advertise remote socket capability
IBS OP on future hardware can indicate data source from remote socket as well. Advertise this capability to userspace so that userspace tools can decode IBS data accordingly. Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260216042530.1546-8-ravi.bangoria@amd.com
This commit is contained in:
parent
8ae68bfec9
commit
b2ea0f541d
|
|
@ -730,6 +730,7 @@ PMU_EVENT_ATTR_STRING(fetchlat, ibs_fetch_lat_format, "config1:0-10");
|
|||
PMU_EVENT_ATTR_STRING(fetchlat, ibs_fetch_lat_cap, "1");
|
||||
PMU_EVENT_ATTR_STRING(strmst, ibs_op_strmst_format, "config1:12");
|
||||
PMU_EVENT_ATTR_STRING(strmst, ibs_op_strmst_cap, "1");
|
||||
PMU_EVENT_ATTR_STRING(rmtsocket, ibs_op_rmtsocket_cap, "1");
|
||||
|
||||
static umode_t
|
||||
zen4_ibs_extensions_is_visible(struct kobject *kobj, struct attribute *attr, int i)
|
||||
|
|
@ -749,6 +750,12 @@ ibs_op_strmst_is_visible(struct kobject *kobj, struct attribute *attr, int i)
|
|||
return ibs_caps & IBS_CAPS_STRMST_RMTSOCKET ? attr->mode : 0;
|
||||
}
|
||||
|
||||
static umode_t
|
||||
ibs_op_rmtsocket_is_visible(struct kobject *kobj, struct attribute *attr, int i)
|
||||
{
|
||||
return ibs_caps & IBS_CAPS_STRMST_RMTSOCKET ? attr->mode : 0;
|
||||
}
|
||||
|
||||
static umode_t
|
||||
ibs_op_ldlat_is_visible(struct kobject *kobj, struct attribute *attr, int i)
|
||||
{
|
||||
|
|
@ -802,6 +809,11 @@ static struct attribute *ibs_op_strmst_cap_attrs[] = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
static struct attribute *ibs_op_rmtsocket_cap_attrs[] = {
|
||||
&ibs_op_rmtsocket_cap.attr.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static struct attribute_group group_fetch_formats = {
|
||||
.name = "format",
|
||||
.attrs = fetch_attrs,
|
||||
|
|
@ -849,6 +861,12 @@ static struct attribute_group group_ibs_op_strmst_cap = {
|
|||
.is_visible = ibs_op_strmst_is_visible,
|
||||
};
|
||||
|
||||
static struct attribute_group group_ibs_op_rmtsocket_cap = {
|
||||
.name = "caps",
|
||||
.attrs = ibs_op_rmtsocket_cap_attrs,
|
||||
.is_visible = ibs_op_rmtsocket_is_visible,
|
||||
};
|
||||
|
||||
static const struct attribute_group *fetch_attr_groups[] = {
|
||||
&group_fetch_formats,
|
||||
&empty_caps_group,
|
||||
|
|
@ -938,6 +956,7 @@ static const struct attribute_group *op_attr_update[] = {
|
|||
&group_ibs_op_dtlb_pgsize_cap,
|
||||
&group_ibs_op_strmst_cap,
|
||||
&group_ibs_op_strmst_format,
|
||||
&group_ibs_op_rmtsocket_cap,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -100,7 +100,8 @@ union ibs_op_data2 {
|
|||
cache_hit_st:1, /* 5: cache hit state */
|
||||
data_src_hi:2, /* 6-7: data source high */
|
||||
strm_st:1, /* 8: streaming store */
|
||||
reserved1:55; /* 9-63: reserved */
|
||||
rmt_socket:1, /* 9: remote socket */
|
||||
reserved1:54; /* 10-63: reserved */
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user