Minor fixes since last post, apply on top of 4.3rc6. Tree with the patchset: git://people.freedesktop.org/~glisse/linux hmm-v11 branch This patchset implement anonymous memory migration for HMM. See HMM patchset for full description of what is HMM and why doing HMM : https://lkml.org/lkml/2015/10/21/739 Seamless migration from system memory to device memory ie on CPU access we migrate memory back to system memory so CPU can access it again. Design is simple, a new special swap type is added and CPU pte are set to this special swap type for migrated memory. On CPU page fault HMM use its mirror page table to find proper page into device memory and migrate it back to system memory. Migration to device memory involves several steps : - First CPU page table is updated to special pte and current pte is save to temporary array. - We check that all pte are for normal/real pages. - We check that no one holds an extra reference on the page. - At this point we know we are the only one know about that memory and we can safely copy it to device memory. - Once everything is copied and fine on device side we free the system ram pages. Migration from device memory back to system memory is simpler: - We get exclusive access for each pte we want to migrate back (special swap pte value). - We allocate system memory (memcg and anon_vma handled here). - We copy back device memory content into system memory and update device page table to point to system memory. - We update CPU page table to point to new system memory. Cheers, Jérôme -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>