Why can't ttm_tt_swapout() handle uncached or WC BOs?
Michel Dänzer
michel at daenzer.net
Thu Sep 17 14:44:40 UTC 2020
On 2020-09-17 2:20 p.m., Christian König wrote:
> Hi guys,
>
> Michel once submitted a patch to fix triggering this BUG_ON in
> ttm_tt_swapout():
>
>> BUG_ON(ttm->caching_state != tt_cached);
>
> Now my question is does anybody know why we have that in the first place?
>
> The only problematic thing I can see is calling copy_highpage() and that
> one is just doing a kmap_atomic()/kunmap_atomic() on the source and
> destination.
>
> I can't see why it should be problematic for this temporary mapping to
> be cached instead of uncached or WC?
>
> Does anybody has any idea?
One thing is that AFAIK some (ARM?) CPUs can get very upset when there's
both a cached and uncacheable mapping for the same physical page.
--
Earthling Michel Dänzer | https://redhat.com
Libre software enthusiast | Mesa and X developer
More information about the dri-devel
mailing list