Thanks - these used to be bitmaps, but changed when we started getting so many 
options. Sadly, they are very rarely used, so bugs like this can go unnoticed 
for long times. Appreciate you taking such a close look at them.

Ralph

On Feb 13, 2014, at 4:55 PM, tmish...@jcity.maeda.co.jp wrote:

> 
> Hi Ralph,
> 
> I would report one more finding in openmpi-1.7.5a1.
> 
> Because ORTE_MAPPING_BY...s are not a bit field expression,
> at orte_rmaps_base_set_ranking_policy in rmaps_base_frame.c
> you should not use "&" to compare them:
> 
>   747      if (NULL == spec) {
>   748          /* check for map-by object directives - we set the
>   749           * ranking to match if one was given
>   750           */
>   751          if (ORTE_MAPPING_GIVEN & ORTE_GET_MAPPING_DIRECTIVE
> (mapping)) {
>   752              if (ORTE_MAPPING_BYCORE == ORTE_GET_MAPPING_POLICY
> (mapping)) {
>   753                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_CORE);
>   754              } else if (ORTE_MAPPING_BYNODE ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   755                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_NODE);
>   756              } else if (ORTE_MAPPING_BYL1CACHE ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   757                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_L1CACHE);
>   758              } else if (ORTE_MAPPING_BYL2CACHE ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   759                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_L2CACHE);
>   760              } else if (ORTE_MAPPING_BYL3CACHE ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   761                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_L3CACHE);
>   762              } else if (ORTE_MAPPING_BYSOCKET ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   763                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_SOCKET);
>   764              } else if (ORTE_MAPPING_BYNUMA ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   765                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_NUMA);
>   766              } else if (ORTE_MAPPING_BYBOARD ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   767                  ORTE_SET_RANKING_POLICY(tmp, ORTE_RANK_BY_BOARD);
>   768              } else if (ORTE_MAPPING_BYHWTHREAD ==
> ORTE_GET_MAPPING_POLICY(mapping)) {
>   769                  ORTE_SET_RANKING_POLICY(tmp,
> ORTE_RANK_BY_HWTHREAD);
>   770              }
> 
> Regards,
> Tetsuya Mishima
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to