overlay: Correct layout of ring/seqno in raw sample

For seqno completion, the events are too coarse i.e. one event may
signal the completion of a few seqno. We will need to sort the events to
properly compute the busy times.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/overlay/gpu-perf.c b/overlay/gpu-perf.c
index 56bc8b0..642d20c 100644
--- a/overlay/gpu-perf.c
+++ b/overlay/gpu-perf.c
@@ -231,6 +231,7 @@
 	if (busy == NULL)
 		return 0;
 
+	busy->ring = sample->raw[1];
 	busy->seqno = sample->raw[2];
 	busy->time = sample->time;
 	busy->comm = comm;
@@ -246,6 +247,9 @@
 	struct gpu_perf_time *busy, **prev;
 
 	for (prev = &gp->busy; (busy = *prev) != NULL; prev = &busy->next) {
+		if (busy->ring != sample->raw[1])
+			continue;
+
 		if (busy->seqno != sample->raw[2])
 			continue;
 
@@ -279,7 +283,8 @@
 		return 0;
 
 	wait->comm = comm;
-	wait->seqno = sample->raw[3];
+	wait->ring = sample->raw[1];
+	wait->seqno = sample->raw[2];
 	wait->time = sample->time;
 	wait->next = gp->wait;
 	gp->wait = wait;
@@ -293,7 +298,10 @@
 	struct gpu_perf_time *wait, **prev;
 
 	for (prev = &gp->wait; (wait = *prev) != NULL; prev = &wait->next) {
-		if (wait->seqno != sample->raw[3])
+		if (wait->ring != sample->raw[1])
+			continue;
+
+		if (wait->seqno != sample->raw[2])
 			continue;
 
 		wait->comm->wait_time += sample->time - wait->time;