From: Benjamin H. <be...@ke...> - 2006-09-20 10:49:58
|
> I don't think so. > We are not doing vram yet in the TTM code, but I think a general > "eviction" would consist of > > 1) locking mmap_sems for all processes mapping the buffer. > 2) zap the page table. Any attempt to access will be blocked by > mmap_sem in nopage(). > 3) Copy contents from vram to system using either PCI SG or > video-><blit>->AGP-><flip>->system. > 4) Wait for completion. > 5) release the mmap sem. The page table will be refilled using > nopage(). On Cell, for SPU mappings, we don't scan through all processes mapping it, we use umap_mapping_range() which does it. However, after double-checking, i have some doubts about the locking so I'm trying to clarify that and I'll come back to you wether it's actually a viable solution or not. Ben. |