[PATCH] drm/radeon: drop register readback in cayman_cp_int_cntl_setup

Lucas Stach dev at lynxeye.de
Tue Oct 25 11:01:40 UTC 2016


Am Dienstag, den 25.10.2016, 09:21 +0200 schrieb Christian König:
> Am 24.10.2016 um 23:32 schrieb Lucas Stach:
> > 
> > The read is taking a considerable amount of time (about 50us on
> > this
> > machine). The register does not ever hold anything other than the
> > ring
> > ID that is updated in this exact function, so there is no need for
> > the read modify write cycle.
> > 
> > This chops off a big chunk of the time spent in hardirq disabled
> > context, as this function is called multiple times in the interrupt
> > handler. With this change applied radeon won't show up in the list
> > of the worst IRQ latency offenders anymore, where it was a regular
> > before.
> > 
> > Signed-off-by: Lucas Stach <dev at lynxeye.de>
> 
> Ups, and to make it even worse SRBM_GFX_CNTL is explicitly documented
> to 
> be a write only register.
> 
> That it takes a considerable amount of time is probably because the
> SRBM 
> runs into an error condition when you read it.
> 
> So patch is Reviewed-by: Christian König <christian.koenig at amd.com>
> and 
> please also add a CC:stable on that.
> 
> Do we have other occasions where we try to use a read modify write
> cycle?

No, that's the only occasion where this specific register is read back
(including newer generations that use it like cik).

Regards,
Lucas


More information about the dri-devel mailing list