err_printf
err_printf(m, "%s [%d]:\n", name, count);
err_printf(m, " %08x_%08x %8u %02x %02x %02x",
err_printf(m, " (name: %d)", err->name);
err_printf(m, " (fence: %d)", err->fence_reg);
err_printf(m, " INSTDONE: 0x%08x\n",
err_printf(m, " SC_INSTDONE: 0x%08x\n",
err_printf(m, " SAMPLER_INSTDONE[%d][%d]: 0x%08x\n",
err_printf(m, " ROW_INSTDONE[%d][%d]: 0x%08x\n",
err_printf(m, "%s pid %d, ban score %d, seqno %8x:%08x, prio %d, emitted %ldms, start %08x, head %08x, tail %08x\n",
err_printf(m, "%s%s[%d] user_handle %d hw_id %d, prio %d, ban score %d%s guilty %d active %d\n",
err_printf(m, "%s command stream:\n",
err_printf(m, " IDLE?: %s\n", yesno(ee->idle));
err_printf(m, " START: 0x%08x\n", ee->start);
err_printf(m, " HEAD: 0x%08x [0x%08x]\n", ee->head, ee->rq_head);
err_printf(m, " TAIL: 0x%08x [0x%08x, 0x%08x]\n",
err_printf(m, " CTL: 0x%08x\n", ee->ctl);
err_printf(m, " MODE: 0x%08x\n", ee->mode);
err_printf(m, " HWS: 0x%08x\n", ee->hws);
err_printf(m, " ACTHD: 0x%08x %08x\n",
err_printf(m, " IPEIR: 0x%08x\n", ee->ipeir);
err_printf(m, " IPEHR: 0x%08x\n", ee->ipehr);
err_printf(m, " batch: [0x%08x_%08x, 0x%08x_%08x]\n",
err_printf(m, " BBADDR: 0x%08x_%08x\n",
err_printf(m, " BB_STATE: 0x%08x\n", ee->bbstate);
err_printf(m, " INSTPS: 0x%08x\n", ee->instps);
err_printf(m, " INSTPM: 0x%08x\n", ee->instpm);
err_printf(m, " FADDR: 0x%08x %08x\n", upper_32_bits(ee->faddr),
err_printf(m, " RC PSMI: 0x%08x\n", ee->rc_psmi);
err_printf(m, " FAULT_REG: 0x%08x\n", ee->fault_reg);
err_printf(m, " SYNC_0: 0x%08x\n",
err_printf(m, " SYNC_1: 0x%08x\n",
err_printf(m, " SYNC_2: 0x%08x\n",
err_printf(m, " GFX_MODE: 0x%08x\n", ee->vm_info.gfx_mode);
err_printf(m, " PDP%d: 0x%016llx\n",
err_printf(m, " PP_DIR_BASE: 0x%08x\n",
err_printf(m, " seqno: 0x%08x\n", ee->seqno);
err_printf(m, " last_seqno: 0x%08x\n", ee->last_seqno);
err_printf(m, " waiting: %s\n", yesno(ee->waiting));
err_printf(m, " ring->head: 0x%08x\n", ee->cpu_ring_head);
err_printf(m, " ring->tail: 0x%08x\n", ee->cpu_ring_tail);
err_printf(m, " hangcheck stall: %s\n", yesno(ee->hangcheck_stalled));
err_printf(m, " hangcheck action: %s\n",
err_printf(m, " hangcheck action timestamp: %ldms (%lu%s)\n",
err_printf(m, " engine reset count: %u\n", ee->reset_count);
err_printf(m, " ELSP[%d]:", n);
err_printf(m, "%s --- %s = 0x%08x %08x\n",
err_printf(m, "PCI ID: 0x%04x\n", pdev->device);
err_printf(m, "PCI Revision: 0x%02x\n", pdev->revision);
err_printf(m, "PCI Subsystem: %04x:%04x\n",
err_printf(m, "No error state collected\n");
err_printf(m, "%s\n", error->error_msg);
err_printf(m, "Kernel: " UTS_RELEASE "\n");
err_printf(m, "Time: %lld s %ld us\n",
err_printf(m, "Boottime: %lld s %ld us\n",
err_printf(m, "Uptime: %lld s %ld us\n",
err_printf(m, "Epoch: %lu jiffies (%u HZ)\n", error->epoch, HZ);
err_printf(m, "Capture: %lu jiffies; %ld ms ago, %ld ms after epoch\n",
err_printf(m, "Active process (on ring %s): %s [%d], score %d%s\n",
err_printf(m, "Reset count: %u\n", error->reset_count);
err_printf(m, "Suspend count: %u\n", error->suspend_count);
err_printf(m, "Platform: %s\n", intel_platform_name(error->device_info.platform));
err_printf(m, "IOMMU enabled?: %d\n", error->iommu);
err_printf(m, "DMC loaded: %s\n",
err_printf(m, "DMC fw version: %d.%d\n",
err_printf(m, "GT awake: %s\n", yesno(error->awake));
err_printf(m, "RPM wakelock: %s\n", yesno(error->wakelock));
err_printf(m, "PM suspended: %s\n", yesno(error->suspended));
err_printf(m, "EIR: 0x%08x\n", error->eir);
err_printf(m, "IER: 0x%08x\n", error->ier);
err_printf(m, "GTIER[%d]: 0x%08x\n", i, error->gtier[i]);
err_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er);
err_printf(m, "FORCEWAKE: 0x%08x\n", error->forcewake);
err_printf(m, "DERRMR: 0x%08x\n", error->derrmr);
err_printf(m, "CCID: 0x%08x\n", error->ccid);
err_printf(m, "Missed interrupts: 0x%08lx\n", dev_priv->gpu_error.missed_irq_rings);
err_printf(m, " fence[%d] = %08llx\n", i, error->fence[i]);
err_printf(m, "ERROR: 0x%08x\n", error->error);
err_printf(m, "FAULT_TLB_DATA: 0x%08x 0x%08x\n",
err_printf(m, "DONE_REG: 0x%08x\n", error->done_reg);
err_printf(m, "ERR_INT: 0x%08x\n", error->err_int);
err_printf(m, " (submitted by %s [%d], ctx %d [%d], score %d%s)",
err_printf(m, " --- gtt_offset = 0x%08x %08x\n",
err_printf(m, "%s --- %d requests\n",
err_printf(m, "%s --- ? waiters [unable to acquire spinlock]\n",
err_printf(m, "%s --- %d waiters\n",
err_printf(m, " seqno 0x%08x for %s [%d]\n",
err_printf(m, "Num Pipes: %d\n", INTEL_INFO(dev_priv)->num_pipes);
err_printf(m, "PWR_WELL_CTL2: %08x\n",
err_printf(m, "Pipe [%d]:\n", i);
err_printf(m, " Power: %s\n",
err_printf(m, " SRC: %08x\n", error->pipe[i].source);
err_printf(m, " STAT: %08x\n", error->pipe[i].stat);
err_printf(m, "Plane [%d]:\n", i);
err_printf(m, " CNTR: %08x\n", error->plane[i].control);
err_printf(m, " STRIDE: %08x\n", error->plane[i].stride);
err_printf(m, " SIZE: %08x\n", error->plane[i].size);
err_printf(m, " POS: %08x\n", error->plane[i].pos);
err_printf(m, " ADDR: %08x\n", error->plane[i].addr);
err_printf(m, " SURF: %08x\n", error->plane[i].surface);
err_printf(m, " TILEOFF: %08x\n", error->plane[i].tile_offset);
err_printf(m, "Cursor [%d]:\n", i);
err_printf(m, " CNTR: %08x\n", error->cursor[i].control);
err_printf(m, " POS: %08x\n", error->cursor[i].position);
err_printf(m, " BASE: %08x\n", error->cursor[i].base);
err_printf(m, "CPU transcoder: %s\n",
err_printf(m, " Power: %s\n",
err_printf(m, " CONF: %08x\n", error->transcoder[i].conf);
err_printf(m, " HTOTAL: %08x\n", error->transcoder[i].htotal);
err_printf(m, " HBLANK: %08x\n", error->transcoder[i].hblank);
err_printf(m, " HSYNC: %08x\n", error->transcoder[i].hsync);
err_printf(m, " VTOTAL: %08x\n", error->transcoder[i].vtotal);
err_printf(m, " VBLANK: %08x\n", error->transcoder[i].vblank);
err_printf(m, " VSYNC: %08x\n", error->transcoder[i].vsync);