[PATCH] drm/i915/gvt: Make MI_USER_INTERRUPT nop in cmd parser

Zhipeng Gong zhipeng.gong at intel.com
Thu Mar 22 01:44:06 UTC 2018


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