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

Showing the changes to tools/testing (1 of 1 file). Show all

Unified · Split

tools/testing/selftests/vm/hmm-tests.c+35−0
@@ -941,6 +941,41 @@ TEST_F(hmm, migrate_fault) · 940 unmodified lines
941941 hmm_buffer_free(buffer);
942942 }
943943
944+/*
945+ * Migrate anonymous shared memory to device private memory.
946+ */
947+TEST_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+
944979 /*
945980 * Try to migrate various memory types to device private memory.
946981 */

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