Lines Matching refs:ee

422 				 const struct drm_i915_error_engine *ee)  in error_print_instdone()  argument
428 ee->instdone.instdone); in error_print_instdone()
430 if (ee->engine->class != RENDER_CLASS || INTEL_GEN(m->i915) <= 3) in error_print_instdone()
434 ee->instdone.slice_common); in error_print_instdone()
442 ee->instdone.sampler[slice][subslice]); in error_print_instdone()
447 ee->instdone.row[slice][subslice]); in error_print_instdone()
479 const struct drm_i915_error_engine *ee, in error_print_engine() argument
484 err_printf(m, "%s command stream:\n", ee->engine->name); in error_print_engine()
485 err_printf(m, " IDLE?: %s\n", yesno(ee->idle)); in error_print_engine()
486 err_printf(m, " START: 0x%08x\n", ee->start); in error_print_engine()
487 err_printf(m, " HEAD: 0x%08x [0x%08x]\n", ee->head, ee->rq_head); in error_print_engine()
489 ee->tail, ee->rq_post, ee->rq_tail); in error_print_engine()
490 err_printf(m, " CTL: 0x%08x\n", ee->ctl); in error_print_engine()
491 err_printf(m, " MODE: 0x%08x\n", ee->mode); in error_print_engine()
492 err_printf(m, " HWS: 0x%08x\n", ee->hws); in error_print_engine()
494 (u32)(ee->acthd>>32), (u32)ee->acthd); in error_print_engine()
495 err_printf(m, " IPEIR: 0x%08x\n", ee->ipeir); in error_print_engine()
496 err_printf(m, " IPEHR: 0x%08x\n", ee->ipehr); in error_print_engine()
498 error_print_instdone(m, ee); in error_print_engine()
500 if (ee->batchbuffer) { in error_print_engine()
501 u64 start = ee->batchbuffer->gtt_offset; in error_print_engine()
502 u64 end = start + ee->batchbuffer->gtt_size; in error_print_engine()
510 (u32)(ee->bbaddr>>32), (u32)ee->bbaddr); in error_print_engine()
511 err_printf(m, " BB_STATE: 0x%08x\n", ee->bbstate); in error_print_engine()
512 err_printf(m, " INSTPS: 0x%08x\n", ee->instps); in error_print_engine()
514 err_printf(m, " INSTPM: 0x%08x\n", ee->instpm); in error_print_engine()
515 err_printf(m, " FADDR: 0x%08x %08x\n", upper_32_bits(ee->faddr), in error_print_engine()
516 lower_32_bits(ee->faddr)); in error_print_engine()
518 err_printf(m, " RC PSMI: 0x%08x\n", ee->rc_psmi); in error_print_engine()
519 err_printf(m, " FAULT_REG: 0x%08x\n", ee->fault_reg); in error_print_engine()
522 err_printf(m, " GFX_MODE: 0x%08x\n", ee->vm_info.gfx_mode); in error_print_engine()
528 i, ee->vm_info.pdp[i]); in error_print_engine()
531 ee->vm_info.pp_dir_base); in error_print_engine()
534 err_printf(m, " ring->head: 0x%08x\n", ee->cpu_ring_head); in error_print_engine()
535 err_printf(m, " ring->tail: 0x%08x\n", ee->cpu_ring_tail); in error_print_engine()
537 jiffies_to_msecs(ee->hangcheck_timestamp - epoch), in error_print_engine()
538 ee->hangcheck_timestamp, in error_print_engine()
539 ee->hangcheck_timestamp == epoch ? "; epoch" : ""); in error_print_engine()
540 err_printf(m, " engine reset count: %u\n", ee->reset_count); in error_print_engine()
542 for (n = 0; n < ee->num_ports; n++) { in error_print_engine()
544 error_print_request(m, " ", &ee->execlist[n], epoch); in error_print_engine()
547 error_print_context(m, " Active context: ", &ee->context); in error_print_engine()
659 const struct drm_i915_error_engine *ee; in __err_print_to_sgl() local
684 for (ee = error->engine; ee; ee = ee->next) in __err_print_to_sgl()
686 ee->engine->name, in __err_print_to_sgl()
687 ee->context.comm, in __err_print_to_sgl()
688 ee->context.pid); in __err_print_to_sgl()
737 for (ee = error->engine; ee; ee = ee->next) in __err_print_to_sgl()
738 error_print_engine(m, ee, error->epoch); in __err_print_to_sgl()
740 for (ee = error->engine; ee; ee = ee->next) { in __err_print_to_sgl()
743 obj = ee->batchbuffer; in __err_print_to_sgl()
745 err_puts(m, ee->engine->name); in __err_print_to_sgl()
746 if (ee->context.pid) in __err_print_to_sgl()
748 ee->context.comm, in __err_print_to_sgl()
749 ee->context.pid); in __err_print_to_sgl()
753 print_error_obj(m, ee->engine, NULL, obj); in __err_print_to_sgl()
756 for (j = 0; j < ee->user_bo_count; j++) in __err_print_to_sgl()
757 print_error_obj(m, ee->engine, "user", ee->user_bo[j]); in __err_print_to_sgl()
759 if (ee->num_requests) { in __err_print_to_sgl()
761 ee->engine->name, in __err_print_to_sgl()
762 ee->num_requests); in __err_print_to_sgl()
763 for (j = 0; j < ee->num_requests; j++) in __err_print_to_sgl()
765 &ee->requests[j], in __err_print_to_sgl()
769 print_error_obj(m, ee->engine, "ringbuffer", ee->ringbuffer); in __err_print_to_sgl()
770 print_error_obj(m, ee->engine, "HW Status", ee->hws_page); in __err_print_to_sgl()
771 print_error_obj(m, ee->engine, "HW context", ee->ctx); in __err_print_to_sgl()
772 print_error_obj(m, ee->engine, "WA context", ee->wa_ctx); in __err_print_to_sgl()
773 print_error_obj(m, ee->engine, in __err_print_to_sgl()
774 "WA batchbuffer", ee->wa_batchbuffer); in __err_print_to_sgl()
775 print_error_obj(m, ee->engine, in __err_print_to_sgl()
776 "NULL context", ee->default_state); in __err_print_to_sgl()
927 struct drm_i915_error_engine *ee = error->engine; in __i915_gpu_state_free() local
929 error->engine = ee->next; in __i915_gpu_state_free()
931 for (i = 0; i < ee->user_bo_count; i++) in __i915_gpu_state_free()
932 i915_error_object_free(ee->user_bo[i]); in __i915_gpu_state_free()
933 kfree(ee->user_bo); in __i915_gpu_state_free()
935 i915_error_object_free(ee->batchbuffer); in __i915_gpu_state_free()
936 i915_error_object_free(ee->wa_batchbuffer); in __i915_gpu_state_free()
937 i915_error_object_free(ee->ringbuffer); in __i915_gpu_state_free()
938 i915_error_object_free(ee->hws_page); in __i915_gpu_state_free()
939 i915_error_object_free(ee->ctx); in __i915_gpu_state_free()
940 i915_error_object_free(ee->wa_ctx); in __i915_gpu_state_free()
942 kfree(ee->requests); in __i915_gpu_state_free()
943 kfree(ee); in __i915_gpu_state_free()
1027 const struct drm_i915_error_engine *ee = error->engine; in i915_error_generate_code() local
1035 return ee ? ee->ipehr ^ ee->instdone.instdone : 0; in i915_error_generate_code()
1064 struct drm_i915_error_engine *ee) in error_record_engine_registers() argument
1069 ee->rc_psmi = ENGINE_READ(engine, RING_PSMI_CTL); in error_record_engine_registers()
1072 ee->fault_reg = I915_READ(GEN12_RING_FAULT_REG); in error_record_engine_registers()
1074 ee->fault_reg = I915_READ(GEN8_RING_FAULT_REG); in error_record_engine_registers()
1076 ee->fault_reg = GEN6_RING_FAULT_REG_READ(engine); in error_record_engine_registers()
1080 ee->faddr = ENGINE_READ(engine, RING_DMA_FADD); in error_record_engine_registers()
1081 ee->ipeir = ENGINE_READ(engine, RING_IPEIR); in error_record_engine_registers()
1082 ee->ipehr = ENGINE_READ(engine, RING_IPEHR); in error_record_engine_registers()
1083 ee->instps = ENGINE_READ(engine, RING_INSTPS); in error_record_engine_registers()
1084 ee->bbaddr = ENGINE_READ(engine, RING_BBADDR); in error_record_engine_registers()
1086 ee->faddr |= (u64)ENGINE_READ(engine, RING_DMA_FADD_UDW) << 32; in error_record_engine_registers()
1087 ee->bbaddr |= (u64)ENGINE_READ(engine, RING_BBADDR_UDW) << 32; in error_record_engine_registers()
1089 ee->bbstate = ENGINE_READ(engine, RING_BBSTATE); in error_record_engine_registers()
1091 ee->faddr = ENGINE_READ(engine, DMA_FADD_I8XX); in error_record_engine_registers()
1092 ee->ipeir = ENGINE_READ(engine, IPEIR); in error_record_engine_registers()
1093 ee->ipehr = ENGINE_READ(engine, IPEHR); in error_record_engine_registers()
1096 intel_engine_get_instdone(engine, &ee->instdone); in error_record_engine_registers()
1098 ee->instpm = ENGINE_READ(engine, RING_INSTPM); in error_record_engine_registers()
1099 ee->acthd = intel_engine_get_active_head(engine); in error_record_engine_registers()
1100 ee->start = ENGINE_READ(engine, RING_START); in error_record_engine_registers()
1101 ee->head = ENGINE_READ(engine, RING_HEAD); in error_record_engine_registers()
1102 ee->tail = ENGINE_READ(engine, RING_TAIL); in error_record_engine_registers()
1103 ee->ctl = ENGINE_READ(engine, RING_CTL); in error_record_engine_registers()
1105 ee->mode = ENGINE_READ(engine, RING_MI_MODE); in error_record_engine_registers()
1135 ee->hws = I915_READ(mmio); in error_record_engine_registers()
1138 ee->idle = intel_engine_is_idle(engine); in error_record_engine_registers()
1139 if (!ee->idle) in error_record_engine_registers()
1140 ee->hangcheck_timestamp = engine->hangcheck.action_timestamp; in error_record_engine_registers()
1141 ee->reset_count = i915_reset_engine_count(&dev_priv->gpu_error, in error_record_engine_registers()
1147 ee->vm_info.gfx_mode = ENGINE_READ(engine, RING_MODE_GEN7); in error_record_engine_registers()
1150 ee->vm_info.pp_dir_base = in error_record_engine_registers()
1153 ee->vm_info.pp_dir_base = in error_record_engine_registers()
1159 ee->vm_info.pdp[i] = in error_record_engine_registers()
1161 ee->vm_info.pdp[i] <<= 32; in error_record_engine_registers()
1162 ee->vm_info.pdp[i] |= in error_record_engine_registers()
1190 struct drm_i915_error_engine *ee) in engine_record_requests() argument
1202 ee->requests = kcalloc(count, sizeof(*ee->requests), ATOMIC_MAYFAIL); in engine_record_requests()
1203 if (!ee->requests) in engine_record_requests()
1206 ee->num_requests = count; in engine_record_requests()
1212 if (count >= ee->num_requests) { in engine_record_requests()
1231 record_request(request, &ee->requests[count++]); in engine_record_requests()
1233 ee->num_requests = count; in engine_record_requests()
1237 struct drm_i915_error_engine *ee) in error_record_engine_execlists() argument
1244 record_request(*port++, &ee->execlist[n++]); in error_record_engine_execlists()
1246 ee->num_ports = n; in error_record_engine_execlists()
1308 struct drm_i915_error_engine *ee, in request_record_user_bo() argument
1337 ee->user_bo = bo; in request_record_user_bo()
1338 ee->user_bo_count = count; in request_record_user_bo()
1367 struct drm_i915_error_engine *ee; in gem_record_rings() local
1369 ee = kzalloc(sizeof(*ee), GFP_KERNEL); in gem_record_rings()
1370 if (!ee) in gem_record_rings()
1388 error->simulated |= record_context(&ee->context, request); in gem_record_rings()
1397 &ee->batchbuffer); in gem_record_rings()
1402 &ee->wa_batchbuffer); in gem_record_rings()
1404 capture = request_record_user_bo(request, ee, capture); in gem_record_rings()
1408 &ee->ctx); in gem_record_rings()
1412 &ee->ringbuffer); in gem_record_rings()
1414 ee->cpu_ring_head = request->ring->head; in gem_record_rings()
1415 ee->cpu_ring_tail = request->ring->tail; in gem_record_rings()
1417 ee->rq_head = request->head; in gem_record_rings()
1418 ee->rq_post = request->postfix; in gem_record_rings()
1419 ee->rq_tail = request->tail; in gem_record_rings()
1421 engine_record_requests(engine, request, ee); in gem_record_rings()
1424 error_record_engine_registers(error, engine, ee); in gem_record_rings()
1425 error_record_engine_execlists(engine, ee); in gem_record_rings()
1441 ee->hws_page = in gem_record_rings()
1446 ee->wa_ctx = in gem_record_rings()
1451 ee->default_state = in gem_record_rings()
1454 ee->engine = engine; in gem_record_rings()
1456 ee->next = error->engine; in gem_record_rings()
1457 error->engine = ee; in gem_record_rings()
1459 ee = kzalloc(sizeof(*ee), GFP_KERNEL); in gem_record_rings()
1460 if (!ee) in gem_record_rings()
1464 kfree(ee); in gem_record_rings()
1652 const struct drm_i915_error_engine *ee; in capture_find_epoch() local
1655 for (ee = error->engine; ee; ee = ee->next) { in capture_find_epoch()
1656 if (ee->hangcheck_timestamp && in capture_find_epoch()
1657 time_before(ee->hangcheck_timestamp, epoch)) in capture_find_epoch()
1658 epoch = ee->hangcheck_timestamp; in capture_find_epoch()