Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1253183

[PATCH v11 00/14] HMM anomymous memory migration to device memory

From Jérôme Glisse <jglisse@redhat.com>
Newsgroups linux.kernel
Subject [PATCH v11 00/14] HMM anomymous memory migration to device memory
Date 2015-10-21 22:20 +0200
Message-ID <qm81A-5gx-1@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH v11 00/14] HMM anomymous memory migration to device memory Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 07/14] HMM: mm add helper to update page table when migrating memory v2. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 06/14] HMM: mm add helper to update page table when migrating memory back v2. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 05/14] HMM: handle HMM device page table entry on mirror page table fault and update. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 11/14] HMM: add helpers for migration back to system memory v3. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 02/14] HMM: add special swap filetype for memory migrated to device v2. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 14/14] HMM: add mirror fault support for system to device memory migration v3. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 09/14] HMM: allow to get pointer to spinlock protecting a directory. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 04/14] HMM: add new HMM page table flag (select flag). Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 13/14] HMM: CPU page fault on migrated memory. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 10/14] HMM: split DMA mapping function in two. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 12/14] HMM: fork copy migrated memory into system memory for child process. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:20 +0200
  [PATCH v11 08/14] HMM: new callback for copying memory from and to device memory v2. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:30 +0200
  [PATCH v11 01/14] fork: pass the dst vma to copy_page_range() and its sub-functions. Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:30 +0200
  [PATCH v11 03/14] HMM: add new HMM page table flag (valid device memory). Jérôme Glisse <jglisse@redhat.com> - 2015-10-21 22:30 +0200

csiph-web