public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* remap_file_pages regression
@ 2016-02-15  1:32 Grazvydas Ignotas
  2016-02-15 10:26 ` Kirill A. Shutemov
  0 siblings, 1 reply; 4+ messages in thread
From: Grazvydas Ignotas @ 2016-02-15  1:32 UTC (permalink / raw)
  To: linux-kernel, Kirill A . Shutemov; +Cc: Andrew Morton, Grazvydas Ignotas

Hi,

since remap_file_pages() rework the following simple program fails.
I haven't actually bisected this, only know it worked on 3.19 at least
(I bought a new system now and need 4.2+ for hardware support). If you
are curious, the program is an emulator and is using remap_file_pages()
to implement memory mirroring efficiently (and to remap things during
run time).

Grazvydas

====%<===

#define _GNU_SOURCE
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/mman.h>

#define SIZE	(4096 * 3)

int main(int argc, char **argv)
{
	unsigned long *p;
	long i;

	p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE,
			MAP_SHARED | MAP_ANONYMOUS, -1, 0);
	if (p == MAP_FAILED) {
		perror("mmap");
		return -1;
	}

	for (i = 0; i < SIZE / 4096; i++)
		p[i * 4096 / sizeof(*p)] = i;

	if (remap_file_pages(p, 4096, 0, 1, 0)) {
		perror("remap_file_pages");
		return -1;
	}

	if (remap_file_pages(p, 4096 * 2, 0, 1, 0)) {
		perror("remap_file_pages");
		return -1;
	}

	assert(p[0] == 1);

	munmap(p, SIZE);

	return 0;
}

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-02-15 22:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-15  1:32 remap_file_pages regression Grazvydas Ignotas
2016-02-15 10:26 ` Kirill A. Shutemov
2016-02-15 22:08   ` Grazvydas Ignotas
2016-02-15 22:17     ` Kirill A. Shutemov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox