History

mm/migrate: add migrate-shared test for migrate_vma_*()

Add a migrate_vma_*() self test for mmap(MAP_SHARED) to verify that !vma_anonymous() ranges won't be migrated.

Ralph Campbell committed 6 years ago

Commit b0fc0f31 parent 0744f281 file · +35 −0Browse files

Unified · Split

tools/testing/selftests/vm/hmm-tests.c+35−0
@@ -941,6 +941,41 @@ TEST_F(hmm, migrate_fault) · 940 unmodified lines
941 hmm_buffer_free(buffer);941 hmm_buffer_free(buffer);
942}942}
943 943
944/*
945 * Migrate anonymous shared memory to device private memory.
946 */
947TEST_F(hmm, migrate_shared)
948{
949 struct hmm_buffer *buffer;
950 unsigned long npages;
951 unsigned long size;
952 int ret;
953
954 npages = ALIGN(HMM_BUFFER_SIZE, self->page_size) >> self->page_shift;
955 ASSERT_NE(npages, 0);
956 size = npages << self->page_shift;
957
958 buffer = malloc(sizeof(*buffer));
959 ASSERT_NE(buffer, NULL);
960
961 buffer->fd = -1;
962 buffer->size = size;
963 buffer->mirror = malloc(size);
964 ASSERT_NE(buffer->mirror, NULL);
965
966 buffer->ptr = mmap(NULL, size,
967 PROT_READ | PROT_WRITE,
968 MAP_SHARED | MAP_ANONYMOUS,
969 buffer->fd, 0);
970 ASSERT_NE(buffer->ptr, MAP_FAILED);
971
972 /* Migrate memory to device. */
973 ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_MIGRATE, buffer, npages);
974 ASSERT_EQ(ret, -ENOENT);
975
976 hmm_buffer_free(buffer);
977}
978
944/*979/*
945 * Try to migrate various memory types to device private memory.980 * Try to migrate various memory types to device private memory.
946 */981 */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t