1
1

fcoll/base: adjust selection table

adjust the fcoll selection table to achieve the following:
 - two_phase should not advertise itself on lustre file systems
 - two_phase should advertise itself on sequential file systems (stripe_size == 0 )
 - priority for dynamic, static and individual is reduced. This will lead to
   two_phase being selected in scenarios where two or more components indicate
   willingness to run.

Signed-off-by: Edgar Gabriel <gabriel@cs.uh.edu>
Этот коммит содержится в:
Edgar Gabriel 2017-07-12 14:50:01 -05:00
родитель 9d3dcc9f69
Коммит 450ccd439b
4 изменённых файлов: 9 добавлений и 8 удалений

Просмотреть файл

@ -9,7 +9,7 @@
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2008-2017 University of Houston. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -279,7 +279,8 @@ int mca_fcoll_base_query_table (struct mca_io_ompio_file_t *file, char *name)
}
if (!strcmp (name, "two_phase")) {
if ((int)file->f_cc_size < file->f_bytes_per_agg &&
file->f_cc_size < file->f_stripe_size) {
(0 == file->f_stripe_size || file->f_cc_size < file->f_stripe_size) &&
(LUSTRE != file->f_fstype) ) {
return 1;
}
}

Просмотреть файл

@ -61,8 +61,8 @@ mca_fcoll_dynamic_component_file_query (mca_io_ompio_file_t *fh, int *priority)
}
if (mca_fcoll_base_query_table (fh, "dynamic")) {
if (*priority < 50) {
*priority = 50;
if (*priority < 30) {
*priority = 30;
}
}

Просмотреть файл

@ -61,8 +61,8 @@ mca_fcoll_individual_component_file_query (mca_io_ompio_file_t *fh, int *priorit
}
if (mca_fcoll_base_query_table (fh, "individual")) {
if (*priority < 50) {
*priority = 50;
if (*priority < 30) {
*priority = 30;
}
if ( 2 >= fh->f_size ) {
*priority = 100;

Просмотреть файл

@ -61,8 +61,8 @@ mca_fcoll_static_component_file_query (mca_io_ompio_file_t *fh, int *priority)
}
if (mca_fcoll_base_query_table (fh, "static")) {
if (*priority < 50) {
*priority = 50;
if (*priority < 30) {
*priority = 30;
}
}