[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