[PATCH 04/12] drm/xe/pf: Improve VF control
Michal Wajdeczko
michal.wajdeczko at intel.com
Mon Aug 19 17:52:23 UTC 2024
On 16.08.2024 15:06, Piotr Piórkowski wrote:
> Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on pią [2024-sie-09 18:51:51 +0200]:
>> Our initial VF control implementation was focused on providing
>> a very minimal support for the VF_STATE_NOTIFY events just to
>> meet GuC requirements, without tracking a VF state or doing any
>> expected actions (like cleanup in case of the FLR notification).
>>
>> Try to improve this by defining set of VF state machines, each
>> responsible for processing one activity (PAUSE, RESUME, STOP or
>> FLR). All required steps defined by the VF state machine are then
>> executed by the PF worker from the dedicated workqueue.
>>
>> Any external requests or notifications simply try to transition
>> between the states to trigger a work and then wait for that work
>> to finish. Some predefined default timeouts are used to avoid
>> changing existing API calls, but it should be easy to extend the
>> control API to also accept specific timeout values.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
>> Cc: Piotr Piórkowski <piotr.piorkowski at intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 6 +
>> drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c | 1203 ++++++++++++++++-
>> drivers/gpu/drm/xe/xe_gt_sriov_pf_control.h | 3 +
>> .../gpu/drm/xe/xe_gt_sriov_pf_control_types.h | 107 ++
>> drivers/gpu/drm/xe/xe_gt_sriov_pf_types.h | 6 +
>> 5 files changed, 1310 insertions(+), 15 deletions(-)
>> create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_pf_control_types.h
>>
>
>
> <snip>
>
>> @@ -284,3 +1295,165 @@ int xe_gt_sriov_pf_control_process_guc2pf(struct xe_gt *gt, const u32 *msg, u32
>>
>> return vfid ? pf_handle_vf_event(gt, vfid, eventid) : pf_handle_pf_event(gt, eventid);
>> }
>> +
>> +static bool pf_process_vf_machine(struct xe_gt *gt, unsigned int vfid)
>> +{
>> + if (pf_exit_vf_flr_send_start(gt, vfid))
>> + return true;
>> +
>> + if (pf_exit_vf_flr_send_start(gt, vfid))
>> + return true;
>
>
> hmmm... Should we call out this function twice here ?
no, it's a typo (and one more, also harmless, later on)
>
>
>
> Thanks,
> Piotr
>
>> --
>> 2.43.0
>>
>
More information about the Intel-xe
mailing list