Hangcheck state accumulation has gained more steps
along the years, like head movement and more recently the
subunit inactivity check. As the subunit sampling is only
done if the previous state check showed inactivity, we
have added more stages (and time) to reach a hang verdict.
Asymmetric engine
On Wed, Nov 16, 2016 at 05:20:30PM +0200, Mika Kuoppala wrote:
> - ring_hung = engine->hangcheck.score >= HANGCHECK_SCORE_RING_HUNG;
> - if (engine->hangcheck.seqno != intel_engine_get_seqno(engine))
> + ring_hung = engine->hangcheck.stall;
> + if (engine->hangcheck.seqno != intel_e
Hangcheck state accumulation has gained more steps
along the years, like head movement and more recently the
subunit inactivity check. As the subunit sampling is only
done if the previous state check showed inactivity, we
have added more stages (and time) to reach a hang verdict.
Asymmetric engine
On Tue, Nov 15, 2016 at 04:36:32PM +0200, Mika Kuoppala wrote:
> +static bool
> +hangcheck_engine_stall(struct intel_engine_cs *engine,
> +struct intel_engine_hangcheck *hc)
> +{
> + const unsigned long last_action = engine->hangcheck.action_timestamp;
>
> - me
On Tue, Nov 15, 2016 at 07:23:26PM +0200, Mika Kuoppala wrote:
> Chris Wilson writes:
>
> > On Tue, Nov 15, 2016 at 04:36:32PM +0200, Mika Kuoppala wrote:
> >> +static bool
> >> +hangcheck_engine_stall(struct intel_engine_cs *engine,
> >> + struct intel_engine_hangcheck *hc)
> >>
Chris Wilson writes:
> On Tue, Nov 15, 2016 at 04:36:32PM +0200, Mika Kuoppala wrote:
>> +static bool
>> +hangcheck_engine_stall(struct intel_engine_cs *engine,
>> + struct intel_engine_hangcheck *hc)
>> +{
>> +const unsigned long last_action = engine->hangcheck.action_times
On Tue, Nov 15, 2016 at 04:36:32PM +0200, Mika Kuoppala wrote:
> +static bool
> +hangcheck_engine_stall(struct intel_engine_cs *engine,
> +struct intel_engine_hangcheck *hc)
> +{
> + const unsigned long last_action = engine->hangcheck.action_timestamp;
>
> - me
Hangcheck state accumulation has gained more steps
along the years, like head movement and more recently the
subunit inactivity check. As the subunit sampling is only
done if the previous state check showed inactivity, we
have added more stages (and time) to reach a hang verdict.
Asymmetric engine