From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751941AbcBOBdE (ORCPT ); Sun, 14 Feb 2016 20:33:04 -0500 Received: from mail-wm0-f54.google.com ([74.125.82.54]:38573 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751670AbcBOBdB (ORCPT ); Sun, 14 Feb 2016 20:33:01 -0500 From: Grazvydas Ignotas To: linux-kernel@vger.kernel.org, "Kirill A . Shutemov" Cc: Andrew Morton , Grazvydas Ignotas Subject: remap_file_pages regression Date: Mon, 15 Feb 2016 03:32:55 +0200 Message-Id: <1455499975-8390-1-git-send-email-notasas@gmail.com> X-Mailer: git-send-email 2.7.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 #include #include #include #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; }