[Intel-xe] [PATCH v3 2/2] drm/xe/pmu: Enable PMU interface

Iddamsetty, Aravind aravind.iddamsetty at intel.com
Wed Aug 9 11:39:58 UTC 2023



On 09-08-2023 13:16, Iddamsetty, Aravind wrote:
> 
> 
> On 09-08-2023 12:58, Dixit, Ashutosh wrote:
> 
> Hi Ashutosh,
> 
>> On Tue, 08 Aug 2023 04:54:36 -0700, Aravind Iddamsetty wrote:
>>>
>>
>> Hi Aravind,
>>
>> Spotted a few remaining things. See if it's possible to fix these up and
>> send another version.
>>
>>> diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
>>> new file mode 100644
>>> index 000000000000..9637f8283641
>>> --- /dev/null
>>> +++ b/drivers/gpu/drm/xe/xe_pmu.c
>>> @@ -0,0 +1,673 @@
>>> +// SPDX-License-Identifier: MIT
>>> +/*
>>> + * Copyright © 2023 Intel Corporation
>>> + */
>>> +

<snip>
>>> diff --git a/drivers/gpu/drm/xe/xe_pmu_types.h b/drivers/gpu/drm/xe/xe_pmu_types.h
>>> new file mode 100644
>>> index 000000000000..a950c892e364
>>> --- /dev/null
>>> +++ b/drivers/gpu/drm/xe/xe_pmu_types.h
>>> @@ -0,0 +1,76 @@
>>> +/* SPDX-License-Identifier: MIT */
>>> +/*
>>> + * Copyright © 2023 Intel Corporation
>>> + */
>>> +
>>> +#ifndef _XE_PMU_TYPES_H_
>>> +#define _XE_PMU_TYPES_H_
>>> +
>>> +#include <linux/perf_event.h>
>>> +#include <linux/spinlock_types.h>
>>> +#include <uapi/drm/xe_drm.h>
>>> +
>>> +enum {
>>> +	__XE_SAMPLE_RENDER_GROUP_BUSY,
>>> +	__XE_SAMPLE_COPY_GROUP_BUSY,
>>> +	__XE_SAMPLE_MEDIA_GROUP_BUSY,
>>> +	__XE_SAMPLE_ANY_ENGINE_GROUP_BUSY,
>>> +	__XE_NUM_PMU_SAMPLERS
>>> +};
>>> +
>>> +#define XE_MAX_GT_PER_TILE 2
>>> +
>>> +struct xe_pmu {
>>> +	/**
>>> +	 * @cpuhp: Struct used for CPU hotplug handling.
>>> +	 */
>>> +	struct {
>>> +		struct hlist_node node;
>>> +		unsigned int cpu;
>>> +	} cpuhp;
>>> +	/**
>>> +	 * @base: PMU base.
>>> +	 */
>>> +	struct pmu base;
>>> +	/**
>>> +	 * @closed: xe is unregistering.
>>> +	 */
>>> +	bool closed;
>>> +	/**
>>> +	 * @name: Name as registered with perf core.
>>> +	 */
>>> +	const char *name;
>>> +	/**
>>> +	 * @lock: Lock protecting enable mask and ref count handling.
>>> +	 */
>>> +	spinlock_t lock;
>>> +	/**
>>> +	 * @sample: Current and previous (raw) counters.
>>> +	 *
>>> +	 * These counters are updated when the device is awake.
>>> +	 *
>>> +	 */
>>> +	u64 sample[XE_MAX_GT_PER_TILE][__XE_NUM_PMU_SAMPLERS];
>>
>> s/XE_MAX_GT_PER_TILE/XE_MAX_GT/ since the PMU is for the entire device not
>> per tile, as I mentioned earlier.
> 
> right, so for a device this shall be sample[XE_MAX_TILES_PER_DEVICE *
> XE_MAX_GT_PER_TILE][__XE_NUM_PMU_SAMPLERS]

on further checking based on (d714e2b698d8 drm/xe: Introduce xe_tile)
the XE_MAX_TILES_PER_DEVICE is being considered as MAX_GT as well so
will use similar to that here.

Thanks,
Aravind.
> 
> Thanks,
> Aravind.
> 
>>
>> Thanks.
>> --
>> Ashutosh


More information about the Intel-xe mailing list