drm/i915: Fix context ban and hang accounting for client
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Fri, 15 Jun 2018 10:44:29 +0000 (13:44 +0300)
committerMika Kuoppala <mika.kuoppala@linux.intel.com>
Fri, 15 Jun 2018 13:36:21 +0000 (16:36 +0300)
commit14921f3cef85b0167a9145e5f29b9dfc3b2a84dc
treed185650c373f0310fddd06f469eaa3c92398cbfa
parent548764bb7ce050afdba15892fb4add79d15974db
drm/i915: Fix context ban and hang accounting for client

If client is smart or lucky enough to create a new context
after each hang, our context banning mechanism will never
catch up, and as a result of that it will be saved from
client banning. This can result in a never ending streak of
gpu hangs caused by bad or malicious client, preventing
access from other legit gpu clients.

Fix this by always incrementing per client ban score if
it hangs in short successions regardless of context ban
scoring. The exception are non bannable contexts. They remain
detached from client ban scoring mechanism.

v2: xchg timestamp, tidyup (Chris)
v3: comment, bannable & banned together (Chris)

Fixes: b083a0870c79 ("drm/i915: Add per client max context ban limit")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180615104429.31477-1-mika.kuoppala@linux.intel.com
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_context.c