Lines Matching refs:ee
430 const struct intel_engine_coredump *ee) in error_print_instdone() argument
432 const struct sseu_dev_info *sseu = &ee->engine->gt->info.sseu; in error_print_instdone()
437 ee->instdone.instdone); in error_print_instdone()
439 if (ee->engine->class != RENDER_CLASS || INTEL_GEN(m->i915) <= 3) in error_print_instdone()
443 ee->instdone.slice_common); in error_print_instdone()
451 ee->instdone.sampler[slice][subslice]); in error_print_instdone()
456 ee->instdone.row[slice][subslice]); in error_print_instdone()
462 ee->instdone.slice_common_extra[0]); in error_print_instdone()
464 ee->instdone.slice_common_extra[1]); in error_print_instdone()
510 find_batch(const struct intel_engine_coredump *ee) in find_batch() argument
512 return __find_vma(ee->vma, "batch"); in find_batch()
516 const struct intel_engine_coredump *ee) in error_print_engine() argument
521 err_printf(m, "%s command stream:\n", ee->engine->name); in error_print_engine()
522 err_printf(m, " CCID: 0x%08x\n", ee->ccid); in error_print_engine()
523 err_printf(m, " START: 0x%08x\n", ee->start); in error_print_engine()
524 err_printf(m, " HEAD: 0x%08x [0x%08x]\n", ee->head, ee->rq_head); in error_print_engine()
526 ee->tail, ee->rq_post, ee->rq_tail); in error_print_engine()
527 err_printf(m, " CTL: 0x%08x\n", ee->ctl); in error_print_engine()
528 err_printf(m, " MODE: 0x%08x\n", ee->mode); in error_print_engine()
529 err_printf(m, " HWS: 0x%08x\n", ee->hws); in error_print_engine()
531 (u32)(ee->acthd>>32), (u32)ee->acthd); in error_print_engine()
532 err_printf(m, " IPEIR: 0x%08x\n", ee->ipeir); in error_print_engine()
533 err_printf(m, " IPEHR: 0x%08x\n", ee->ipehr); in error_print_engine()
534 err_printf(m, " ESR: 0x%08x\n", ee->esr); in error_print_engine()
536 error_print_instdone(m, ee); in error_print_engine()
538 batch = find_batch(ee); in error_print_engine()
549 (u32)(ee->bbaddr>>32), (u32)ee->bbaddr); in error_print_engine()
550 err_printf(m, " BB_STATE: 0x%08x\n", ee->bbstate); in error_print_engine()
551 err_printf(m, " INSTPS: 0x%08x\n", ee->instps); in error_print_engine()
553 err_printf(m, " INSTPM: 0x%08x\n", ee->instpm); in error_print_engine()
554 err_printf(m, " FADDR: 0x%08x %08x\n", upper_32_bits(ee->faddr), in error_print_engine()
555 lower_32_bits(ee->faddr)); in error_print_engine()
557 err_printf(m, " RC PSMI: 0x%08x\n", ee->rc_psmi); in error_print_engine()
558 err_printf(m, " FAULT_REG: 0x%08x\n", ee->fault_reg); in error_print_engine()
561 err_printf(m, " GFX_MODE: 0x%08x\n", ee->vm_info.gfx_mode); in error_print_engine()
567 i, ee->vm_info.pdp[i]); in error_print_engine()
570 ee->vm_info.pp_dir_base); in error_print_engine()
573 err_printf(m, " engine reset count: %u\n", ee->reset_count); in error_print_engine()
575 for (n = 0; n < ee->num_ports; n++) { in error_print_engine()
577 error_print_request(m, " ", &ee->execlist[n]); in error_print_engine()
580 error_print_context(m, " Active context: ", &ee->context); in error_print_engine()
694 const struct intel_engine_coredump *ee; in err_print_gt() local
737 for (ee = gt->engine; ee; ee = ee->next) { in err_print_gt()
740 error_print_engine(m, ee); in err_print_gt()
741 for (vma = ee->vma; vma; vma = vma->next) in err_print_gt()
742 print_error_vma(m, ee->engine, vma); in err_print_gt()
754 const struct intel_engine_coredump *ee; in __err_print_to_sgl() local
775 for (ee = error->gt ? error->gt->engine : NULL; ee; ee = ee->next) in __err_print_to_sgl()
777 ee->engine->name, in __err_print_to_sgl()
778 ee->context.comm, in __err_print_to_sgl()
779 ee->context.pid); in __err_print_to_sgl()
949 struct intel_engine_coredump *ee = gt->engine; in cleanup_gt() local
951 gt->engine = ee->next; in cleanup_gt()
953 i915_vma_coredump_free(ee->vma); in cleanup_gt()
954 kfree(ee); in cleanup_gt()
1110 static void engine_record_registers(struct intel_engine_coredump *ee) in engine_record_registers() argument
1112 const struct intel_engine_cs *engine = ee->engine; in engine_record_registers()
1116 ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL); in engine_record_registers()
1119 ee->fault_reg = intel_uncore_read(engine->uncore, in engine_record_registers()
1122 ee->fault_reg = intel_uncore_read(engine->uncore, in engine_record_registers()
1125 ee->fault_reg = GEN6_RING_FAULT_REG_READ(engine); in engine_record_registers()
1129 ee->esr = ENGINE_READ(engine, RING_ESR); in engine_record_registers()
1130 ee->faddr = ENGINE_READ(engine, RING_DMA_FADD); in engine_record_registers()
1131 ee->ipeir = ENGINE_READ(engine, RING_IPEIR); in engine_record_registers()
1132 ee->ipehr = ENGINE_READ(engine, RING_IPEHR); in engine_record_registers()
1133 ee->instps = ENGINE_READ(engine, RING_INSTPS); in engine_record_registers()
1134 ee->bbaddr = ENGINE_READ(engine, RING_BBADDR); in engine_record_registers()
1135 ee->ccid = ENGINE_READ(engine, CCID); in engine_record_registers()
1137 ee->faddr |= (u64)ENGINE_READ(engine, RING_DMA_FADD_UDW) << 32; in engine_record_registers()
1138 ee->bbaddr |= (u64)ENGINE_READ(engine, RING_BBADDR_UDW) << 32; in engine_record_registers()
1140 ee->bbstate = ENGINE_READ(engine, RING_BBSTATE); in engine_record_registers()
1142 ee->faddr = ENGINE_READ(engine, DMA_FADD_I8XX); in engine_record_registers()
1143 ee->ipeir = ENGINE_READ(engine, IPEIR); in engine_record_registers()
1144 ee->ipehr = ENGINE_READ(engine, IPEHR); in engine_record_registers()
1147 intel_engine_get_instdone(engine, &ee->instdone); in engine_record_registers()
1149 ee->instpm = ENGINE_READ(engine, RING_INSTPM); in engine_record_registers()
1150 ee->acthd = intel_engine_get_active_head(engine); in engine_record_registers()
1151 ee->start = ENGINE_READ(engine, RING_START); in engine_record_registers()
1152 ee->head = ENGINE_READ(engine, RING_HEAD); in engine_record_registers()
1153 ee->tail = ENGINE_READ(engine, RING_TAIL); in engine_record_registers()
1154 ee->ctl = ENGINE_READ(engine, RING_CTL); in engine_record_registers()
1156 ee->mode = ENGINE_READ(engine, RING_MI_MODE); in engine_record_registers()
1186 ee->hws = intel_uncore_read(engine->uncore, mmio); in engine_record_registers()
1189 ee->reset_count = i915_reset_engine_count(&i915->gpu_error, engine); in engine_record_registers()
1194 ee->vm_info.gfx_mode = ENGINE_READ(engine, RING_MODE_GEN7); in engine_record_registers()
1197 ee->vm_info.pp_dir_base = in engine_record_registers()
1200 ee->vm_info.pp_dir_base = in engine_record_registers()
1206 ee->vm_info.pdp[i] = in engine_record_registers()
1209 ee->vm_info.pdp[i] <<= 32; in engine_record_registers()
1210 ee->vm_info.pdp[i] |= in engine_record_registers()
1240 static void engine_record_execlists(struct intel_engine_coredump *ee) in engine_record_execlists() argument
1242 const struct intel_engine_execlists * const el = &ee->engine->execlists; in engine_record_execlists()
1247 record_request(*port++, &ee->execlist[n++]); in engine_record_execlists()
1249 ee->num_ports = n; in engine_record_execlists()
1334 static void add_vma(struct intel_engine_coredump *ee, in add_vma() argument
1338 vma->next = ee->vma; in add_vma()
1339 ee->vma = vma; in add_vma()
1346 struct intel_engine_coredump *ee; in intel_engine_coredump_alloc() local
1348 ee = kzalloc(sizeof(*ee), gfp); in intel_engine_coredump_alloc()
1349 if (!ee) in intel_engine_coredump_alloc()
1352 ee->engine = engine; in intel_engine_coredump_alloc()
1354 engine_record_registers(ee); in intel_engine_coredump_alloc()
1355 engine_record_execlists(ee); in intel_engine_coredump_alloc()
1357 return ee; in intel_engine_coredump_alloc()
1361 intel_engine_coredump_add_request(struct intel_engine_coredump *ee, in intel_engine_coredump_add_request() argument
1367 ee->simulated |= record_context(&ee->context, rq); in intel_engine_coredump_add_request()
1368 if (ee->simulated) in intel_engine_coredump_add_request()
1381 ee->rq_head = rq->head; in intel_engine_coredump_add_request()
1382 ee->rq_post = rq->postfix; in intel_engine_coredump_add_request()
1383 ee->rq_tail = rq->tail; in intel_engine_coredump_add_request()
1389 intel_engine_coredump_add_vma(struct intel_engine_coredump *ee, in intel_engine_coredump_add_vma() argument
1393 const struct intel_engine_cs *engine = ee->engine; in intel_engine_coredump_add_vma()
1399 add_vma(ee, in intel_engine_coredump_add_vma()
1410 add_vma(ee, in intel_engine_coredump_add_vma()
1416 add_vma(ee, in intel_engine_coredump_add_vma()
1428 struct intel_engine_coredump *ee; in capture_engine() local
1432 ee = intel_engine_coredump_alloc(engine, GFP_KERNEL); in capture_engine()
1433 if (!ee) in capture_engine()
1439 capture = intel_engine_coredump_add_request(ee, rq, in capture_engine()
1443 kfree(ee); in capture_engine()
1447 intel_engine_coredump_add_vma(ee, capture, compress); in capture_engine()
1449 return ee; in capture_engine()
1460 struct intel_engine_coredump *ee; in gt_record_engines() local
1465 ee = capture_engine(engine, compress); in gt_record_engines()
1466 if (!ee) in gt_record_engines()
1469 gt->simulated |= ee->simulated; in gt_record_engines()
1470 if (ee->simulated) { in gt_record_engines()
1471 kfree(ee); in gt_record_engines()
1475 ee->next = gt->engine; in gt_record_engines()
1476 gt->engine = ee; in gt_record_engines()
1658 static u32 generate_ecode(const struct intel_engine_coredump *ee) in generate_ecode() argument
1666 return ee ? ee->ipehr ^ ee->instdone.instdone : 0; in generate_ecode()