![Bill D'Amico](/assets/img/avatar_default.png)
Changes paffinity interface to use a cpu mask for available/preferred cpus rather than the current coarse grained paffinity that lets the OS choose which processor. Macros for setting and clearing masks are provided. Solaris and windows changes have not been made. Solaris subdirectory has some suggested changes - however the relevant man pages for the Solaris 10 APIs have some ambiguity regarding order in which one create and sets a processor set. As we did not have access to a solaris 10 machine we could not test to see the correct way to do the work under solaris. This commit was SVN r14887.
70 строки
2.0 KiB
C
70 строки
2.0 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved.
|
|
*
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
*
|
|
* Processor affinity for Linux.
|
|
*
|
|
* Linux sucks. There are at least 3 different ways that
|
|
* sched_setaffinity is implemented.
|
|
*
|
|
* Fortunately we have an independent project called Portable Linux
|
|
* Processor Affinity (PLPA) which allows us to do processor affinity
|
|
* without knowing which flavor of afffinity is installed on the
|
|
* system a priori - PLPA does a few probes behind the scenes and
|
|
* utilizes the correct syntax to the correct system call to set
|
|
* or get processor affinity for us.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef MCA_PAFFINITY_LINUX_EXPORT_H
|
|
#define MCA_PAFFINITY_LINUX_EXPORT_H
|
|
|
|
#include "opal_config.h"
|
|
|
|
#include "opal/mca/mca.h"
|
|
#include "opal/mca/paffinity/paffinity.h"
|
|
#include "opal/mca/paffinity/linux/plpa/src/libplpa/plpa.h"
|
|
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Globally exported variable
|
|
*/
|
|
OPAL_DECLSPEC extern const opal_paffinity_base_component_1_1_0_t
|
|
mca_paffinity_linux_component;
|
|
|
|
|
|
/**
|
|
* paffinity query API function
|
|
*/
|
|
const opal_paffinity_base_module_1_1_0_t *
|
|
opal_paffinity_linux_component_query(int *query);
|
|
|
|
#if defined(c_plusplus) || defined(__cplusplus)
|
|
}
|
|
#endif
|
|
#endif /* MCA_PAFFINITY_LINUX_EXPORT_H */
|