intel_th: msu: Add a sysfs attribute to trigger window switch
Now that we have the means to trigger a window switch for the MSU trace store, add a sysfs file to allow triggering it from userspace. Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
4840572d3d
Коммит
6cac7866c2
|
@ -30,4 +30,12 @@ Description: (RW) Configure MSC buffer size for "single" or "multi" modes.
|
|||
there are no active users and tracing is not enabled) and then
|
||||
allocates a new one.
|
||||
|
||||
What: /sys/bus/intel_th/devices/<intel_th_id>-msc<msc-id>/win_switch
|
||||
Date: May 2019
|
||||
KernelVersion: 5.2
|
||||
Contact: Alexander Shishkin <alexander.shishkin@linux.intel.com>
|
||||
Description: (RW) Trigger window switch for the MSC's buffer, in
|
||||
multi-window mode. In "multi" mode, accepts writes of "1", thereby
|
||||
triggering a window switch for the buffer. Returns an error in any
|
||||
other operating mode or attempts to write something other than "1".
|
||||
|
||||
|
|
|
@ -1572,10 +1572,38 @@ free_win:
|
|||
|
||||
static DEVICE_ATTR_RW(nr_pages);
|
||||
|
||||
static ssize_t
|
||||
win_switch_store(struct device *dev, struct device_attribute *attr,
|
||||
const char *buf, size_t size)
|
||||
{
|
||||
struct msc *msc = dev_get_drvdata(dev);
|
||||
unsigned long val;
|
||||
int ret;
|
||||
|
||||
ret = kstrtoul(buf, 10, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val != 1)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&msc->buf_mutex);
|
||||
if (msc->mode != MSC_MODE_MULTI)
|
||||
ret = -ENOTSUPP;
|
||||
else
|
||||
ret = intel_th_trace_switch(msc->thdev);
|
||||
mutex_unlock(&msc->buf_mutex);
|
||||
|
||||
return ret ? ret : size;
|
||||
}
|
||||
|
||||
static DEVICE_ATTR_WO(win_switch);
|
||||
|
||||
static struct attribute *msc_output_attrs[] = {
|
||||
&dev_attr_wrap.attr,
|
||||
&dev_attr_mode.attr,
|
||||
&dev_attr_nr_pages.attr,
|
||||
&dev_attr_win_switch.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче