From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Kleen Subject: [PATCH] Fix mbind_migrate_pages Date: Sat, 10 Jan 2009 06:51:44 +0100 Message-ID: <20090110055144.GB26290@one.firstfloor.org> Mime-Version: 1.0 Return-path: Content-Disposition: inline Sender: linux-numa-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: cpw@sgi.com, linux-numa@vger.kernel.org The nodemask conversion of mbind_mig_pages had some off by one bugs, making the program always fail on 2 node systems. Noticed by Jay Weinstein. Signed-off-by: Andi Kleen diff -urp numactl-2.0.2/test/mbind_mig_pages.c numactl-2.0.2-hack//test/mbind_mig_pages.c --- numactl-2.0.2/test/mbind_mig_pages.c 2008-08-05 16:36:58.000000000 +0200 +++ numactl-2.0.2-hack//test/mbind_mig_pages.c 2009-01-10 06:26:54.000000000 +0100 @@ -91,7 +91,7 @@ int main(int argc, char **argv) /* Move to node zero */ printf("\nMoving pages via mbind to node 0 ...\n"); rc = mbind(pages, page_count * pagesize, MPOL_BIND, old_nodes->maskp, - old_nodes->size, MPOL_MF_MOVE | MPOL_MF_STRICT); + old_nodes->size + 1, MPOL_MF_MOVE | MPOL_MF_STRICT); if (rc < 0) { perror("mbind"); errors++; @@ -100,7 +100,7 @@ int main(int argc, char **argv) printf("\nMoving pages via mbind from node 0 to 1 ...\n"); rc = mbind(pages, page_count * pagesize, MPOL_BIND, new_nodes->maskp, - new_nodes->size, MPOL_MF_MOVE | MPOL_MF_STRICT); + new_nodes->size + 1, MPOL_MF_MOVE | MPOL_MF_STRICT); if (rc < 0) { perror("mbind"); errors++; -- ak@linux.intel.com