• Home
  • Raw
  • Download

Lines Matching +full:find +full:- +full:up

4  * SPDX-License-Identifier: MIT
14 * fetching up to 3 subsequent CP_INDIRECT_BUFFER contents into the ROQ before
23 * CP_FOO <- PFP/SQE is reading from here
25 * CP_BAR <- ROQ has prefetched up to here
33 * CP_FOO <- PFP/SQE is reading here
37 * CP_BAR <- ROQ has prefetched up to here
40 * larger than the size of the second IB, indicating that we need to back up
48 * CP_FOO <- PFP/SQE IB2 is reading here
53 * CP_BAR <- ROQ IB2 has prefetched up to here
55 * CP_BAZ <- PFP/SQE IB1 is reading here
63 * cmdstream at the time of the crash, we do a pre-pass scanning the
66 * we find the IB1 position that is being read into ROQ, we backtrack until
67 * we find the IB1 position that SQE is at, and (roughly) repeat the process
85 s->history[s->next++ % ARRAY_SIZE(s->history)] = *ib; in push_ib()
86 s->num = MIN2(s->num + 1, ARRAY_SIZE(s->history)); in push_ib()
92 if ((n >= s->num) || (n < 0)) in get_ib()
94 int idx = s->next - (s->num - n); in get_ib()
95 return &s->history[idx % ARRAY_SIZE(s->history)]; in get_ib()
101 s->num = s->next = 0; in reset_state()
105 * Once we find the ROQ prefetch position, work backwards to find the SQE
113 for (int n = s->num - 1; n >= 0; n--) { in reverse_prefetch()
115 if (ib->ibsize > rem) { in reverse_prefetch()
117 options.ibs[lvl].base = ib->ibaddr; in reverse_prefetch()
122 rem -= ib->ibsize; in reverse_prefetch()
130 * of consecutive CP_INDIRECT_BUFFER packets, until we find the one that
146 parse_cp_indirect(&dwords[1], count - 1, &ibaddr, &ibsize); in scan_cmdstream()
150 * search backwards from here to find the SQE position: in scan_cmdstream()
169 dwords_left -= count; in scan_cmdstream()
190 /* Once we find the actual IB1 position, we need to find the IB2 position. in handle_prefetch()
193 * have a history of enough RB->IB1 IB's, so we can simply scan forward in handle_prefetch()
194 * from our oldest history entry until we find the IB2 match.. in handle_prefetch()
198 uint32_t *ibaddr = hostptr(ib->ibaddr); in handle_prefetch()
201 struct ib *ib2 = scan_cmdstream(&ib1_state, 2, ibaddr, ib->ibsize); in handle_prefetch()
209 * IB1:CP_INDIRECT_BUFFER <-- detected IB1 position in handle_prefetch()
213 * reset the IB1 crash position back to the oldest RB->IB1 IB that we in handle_prefetch()
226 * in IB1 to setup for the next tile, breaking up prefetch. in handle_prefetch()
232 options.ibs[1].base = first_rb_ib->ibaddr; in handle_prefetch()
233 options.ibs[1].rem = first_rb_ib->ibsize; in handle_prefetch()