[PATCH] drm/i915/gvt: Make MI_USER_INTERRUPT nop in cmd parser
Gong, Zhipeng
zhipeng.gong at intel.com
Mon Mar 26 02:52:56 UTC 2018
Zhenyu and Zhi
Could you please review this patch?
Thanks
Zhipeng
> -----Original Message-----
> From: Gong, Zhipeng
> Sent: Thursday, March 22, 2018 9:44 AM
> To: intel-gvt-dev at lists.freedesktop.org
> Cc: Gong, Zhipeng <zhipeng.gong at intel.com>; He, Min <min.he at intel.com>
> Subject: [PATCH] drm/i915/gvt: Make MI_USER_INTERRUPT nop in cmd parser
>
> GVT-g cmd parser passes through MI_USER_INTERRUPT instruction, while
> i915 adds MI_USER_INTERRUPT again for each request from GVT-g,
> which causes some unnecessary interrupt handling.
> This patch makes MI_USER_INTERRUPT nop to save some interrupt
> handling.
>
> Here is test result to run glmark2 on guest:
> host master interrupts number is reduced from 16021 to 11162
> host user interrupts number is reduced from 7936 to 3536
>
> Signed-off-by: Zhipeng Gong <zhipeng.gong at intel.com>
> ---
> drivers/gpu/drm/i915/gvt/cmd_parser.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c
> b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> index febb814..ab4a670 100644
> --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
> +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> @@ -1064,6 +1064,7 @@ static int cmd_handler_mi_user_interrupt(struct
> parser_exec_state *s)
> {
> set_bit(cmd_interrupt_events[s->ring_id].mi_user_interrupt,
> s->workload->pending_events);
> + patch_value(s, cmd_ptr(s, 0), MI_NOOP);
> return 0;
> }
>
> --
> 2.7.4
More information about the intel-gvt-dev
mailing list