Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 04/21] trace.pl: Virtual engine preemption support

Chris Wilson
2019-05-10T12:55:54Z

Quoting Tvrtko Ursulin (2019-05-08 13:10:41)
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> Use the 'completed?' tracepoint field to detect more robustly when a
> request has been preempted and remove it from the engine database if so.
>
> Otherwise the script can hit a scenario where the same global seqno will
> be mentioned multiple times (on an engine seqno) which aborts processing.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> scripts/trace.pl | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/trace.pl b/scripts/trace.pl
> index 6cc332bb6e2a..cb7cc46df22e 100755
> --- a/scripts/trace.pl
> +++ b/scripts/trace.pl
> @@ -483,17 +483,17 @@ while (<>) {
> $ringmap{$rings{$ring}} = $ring;
> $db{$key} = \%req;
> } elsif ($tp_name eq 'i915:i915_request_out:') {
> - my $gkey;
> -
> die unless exists $ctxengines{$ctx};
>
> - $gkey = db_key($ctxengines{$ctx}, $ctx, $seqno);
> -
> if ($tp{'completed?'}) {
> + my $gkey;
> +
> die unless exists $db{$key};
> die unless exists $db{$key}->{'start'};
> die if exists $db{$key}->{'end'};
>
> + $gkey = db_key($ctxengines{$ctx}, $ctx, $seqno);

I'm lost, how does do the commit message? I thought db_key() just gave
the hash value and not alter the db?
-Chris