mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	drm/i915: Show bounds of active request in the ring on GPU hang
Include the position of the active request in the ring, and display that alongside the current RING registers (on a GPU hang). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20161004201132.21801-6-chris@chris-wilson.co.uk
This commit is contained in:
		
							parent
							
								
									77c607013e
								
							
						
					
					
						commit
						cdb324bde5
					
				
					 2 changed files with 10 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -788,6 +788,9 @@ struct drm_i915_error_state {
 | 
			
		|||
		struct i915_address_space *vm;
 | 
			
		||||
		int num_requests;
 | 
			
		||||
 | 
			
		||||
		/* position of active request inside the ring */
 | 
			
		||||
		u32 rq_head, rq_post, rq_tail;
 | 
			
		||||
 | 
			
		||||
		/* our own tracking of ring head and tail */
 | 
			
		||||
		u32 cpu_ring_head;
 | 
			
		||||
		u32 cpu_ring_tail;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -262,8 +262,9 @@ static void error_print_engine(struct drm_i915_error_state_buf *m,
 | 
			
		|||
{
 | 
			
		||||
	err_printf(m, "%s command stream:\n", engine_str(ee->engine_id));
 | 
			
		||||
	err_printf(m, "  START: 0x%08x\n", ee->start);
 | 
			
		||||
	err_printf(m, "  HEAD:  0x%08x\n", ee->head);
 | 
			
		||||
	err_printf(m, "  TAIL:  0x%08x\n", ee->tail);
 | 
			
		||||
	err_printf(m, "  HEAD:  0x%08x\n [0x%08x]", ee->head, ee->rq_head);
 | 
			
		||||
	err_printf(m, "  TAIL:  0x%08x [0x%08x, 0x%08x]\n",
 | 
			
		||||
		   ee->tail, ee->rq_post, ee->rq_tail);
 | 
			
		||||
	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);
 | 
			
		||||
| 
						 | 
				
			
			@ -1230,6 +1231,10 @@ static void i915_gem_record_rings(struct drm_i915_private *dev_priv,
 | 
			
		|||
			error->simulated |=
 | 
			
		||||
				request->ctx->flags & CONTEXT_NO_ERROR_CAPTURE;
 | 
			
		||||
 | 
			
		||||
			ee->rq_head = request->head;
 | 
			
		||||
			ee->rq_post = request->postfix;
 | 
			
		||||
			ee->rq_tail = request->tail;
 | 
			
		||||
 | 
			
		||||
			ring = request->ring;
 | 
			
		||||
			ee->cpu_ring_head = ring->head;
 | 
			
		||||
			ee->cpu_ring_tail = ring->tail;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue