From 707e51d7869169aebe42ffa91454c40dc02702d6 Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Tue, 11 Feb 2014 02:53:53 +0000 Subject: [PATCH] Check for --cpus-per-proc earlier, before the correct option can be processed. Thanks to Tetsuya Mishima for reporting it. Refs trac:4117 This commit was SVN r30662. The following Trac tickets were found above: Ticket 4117 --> https://svn.open-mpi.org/trac/ompi/ticket/4117 --- orte/mca/rmaps/base/rmaps_base_frame.c | 16 ++++++++++------ orte/mca/rmaps/base/rmaps_base_map_job.c | 1 + orte/mca/rmaps/rmaps_types.h | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/orte/mca/rmaps/base/rmaps_base_frame.c b/orte/mca/rmaps/base/rmaps_base_frame.c index 0b67e84e28..9a641f783c 100644 --- a/orte/mca/rmaps/base/rmaps_base_frame.c +++ b/orte/mca/rmaps/base/rmaps_base_frame.c @@ -12,6 +12,7 @@ * Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2013 Los Alamos National Security, LLC. * All rights reserved. + * Copyright (c) 2014 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -268,7 +269,7 @@ static int orte_rmaps_base_open(mca_base_open_flag_t flags) } #endif - /* check for a violation that has to be detected before we parse the mapping option */ + /* check for violations that has to be detected before we parse the mapping option */ if (NULL != orte_rmaps_base.ppr) { orte_show_help("help-orte-rmaps-base.txt", "deprecated", true, "--ppr, -ppr", "--map-by ppr:", @@ -281,6 +282,12 @@ static int orte_rmaps_base_open(mca_base_open_flag_t flags) return ORTE_ERR_SILENT; } } + if (1 < orte_rmaps_base.cpus_per_rank) { + orte_show_help("help-orte-rmaps-base.txt", "deprecated", true, + "--cpus-per-proc, -cpus-per-proc, --cpus-per-rank, -cpus-per-rank", + "--map-by :PE=N", + "rmaps_base_cpus_per_proc", "rmaps_base_mapping_policy=:PE=N"); + } if (ORTE_SUCCESS != (rc = orte_rmaps_base_set_mapping_policy(&orte_rmaps_base.mapping, &orte_rmaps_base.device, @@ -372,13 +379,10 @@ static int orte_rmaps_base_open(mca_base_open_flag_t flags) } if (1 < orte_rmaps_base.cpus_per_rank) { - orte_show_help("help-orte-rmaps-base.txt", "deprecated", true, - "--cpus-per-proc, -cpus-per-proc, --cpus-per-rank, -cpus-per-rank", - "--map-by :PE=N", - "rmaps_base_cpus_per_proc", "rmaps_base_mapping_policy=:PE=N"); /* check to see if we were told to map at too low a level */ if ((ORTE_MAPPING_GIVEN & ORTE_GET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping)) && - ORTE_GET_MAPPING_POLICY(orte_rmaps_base.mapping) > ORTE_MAPPING_BYSOCKET) { + ORTE_GET_MAPPING_POLICY(orte_rmaps_base.mapping) > ORTE_MAPPING_BYSOCKET && + ORTE_GET_MAPPING_POLICY(orte_rmaps_base.mapping) < ORTE_MAPPING_BYSLOT) { orte_show_help("help-orte-rmaps-base.txt", "mapping-too-low", true, orte_rmaps_base.cpus_per_rank, orte_rmaps_base_print_mapping(orte_rmaps_base.mapping)); diff --git a/orte/mca/rmaps/base/rmaps_base_map_job.c b/orte/mca/rmaps/base/rmaps_base_map_job.c index 969f322ff3..86a3d1a248 100644 --- a/orte/mca/rmaps/base/rmaps_base_map_job.c +++ b/orte/mca/rmaps/base/rmaps_base_map_job.c @@ -12,6 +12,7 @@ * Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2011-2012 Los Alamos National Security, LLC. * All rights reserved. + * Copyright (c) 2014 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/orte/mca/rmaps/rmaps_types.h b/orte/mca/rmaps/rmaps_types.h index 208fad49db..33542656c6 100644 --- a/orte/mca/rmaps/rmaps_types.h +++ b/orte/mca/rmaps/rmaps_types.h @@ -11,6 +11,7 @@ * Copyright (c) 2011 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. * All rights reserved. + * Copyright (c) 2014 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow