The standard option that is used by auto tools to have dependencies that are only used by a maintainer is: --enable-maintainer-mode
We use it to hide .l/.y/.i dependencies from the Makefile such that only those who declare themselves maintainers will refresh automatically generated source files. Why do you want to invent a new one? Eitan Zahavi Senior Engineering Director, Software Architect Mellanox Technologies LTD Tel:+972-4-9097208 Fax:+972-4-9593245 P.O. Box 586 Yokneam 20692 ISRAEL > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Yevgeny Kliteynik > Sent: Thursday, August 30, 2007 4:32 AM > To: Hal Rosenstock > Cc: OpenIB > Subject: Re: [ofa-general] [PATCH 5/7 V3] osm: QoS - adding > QoS policy options > > Hal Rosenstock wrote: > > On 8/29/07, Yevgeny Kliteynik <[EMAIL PROTECTED]> wrote: > >> Hal Rosenstock wrote: > >>> On 8/29/07, Yevgeny Kliteynik <[EMAIL PROTECTED]> wrote: > >>>> Hal Rosenstock wrote: > >>>>> On 8/27/07, Yevgeny Kliteynik > <[EMAIL PROTECTED]> wrote: > >>>>>> Adding QoS policy file option to OpenSM optionsm and > QoS Policy > >>>>>> field to subn object. > >>>>>> > >>>>>> Signed-off-by: Yevgeny Kliteynik <[EMAIL PROTECTED]> > >>>>>> --- > >>>>>> opensm/include/opensm/osm_base.h | 17 +++++++++++++++++ > >>>>>> opensm/include/opensm/osm_subnet.h | 13 +++++++++++++ > >>>>>> opensm/opensm/main.c | 12 +++++++++++- > >>>>>> opensm/opensm/osm_subnet.c | 10 +++++++++- > >>>>>> 4 files changed, 50 insertions(+), 2 deletions(-) > >>>>>> > >>>>>> diff --git a/opensm/include/opensm/osm_base.h > >>>>>> b/opensm/include/opensm/osm_base.h > >>>>>> index 545779b..0a35e22 100644 > >>>>>> --- a/opensm/include/opensm/osm_base.h > >>>>>> +++ b/opensm/include/opensm/osm_base.h > >>>>>> @@ -224,6 +224,23 @@ BEGIN_C_DECLS #define > >>>>>> OSM_DEFAULT_PARTITION_CONFIG_FILE > "/etc/ofa/opensm-partitions.conf" > >>>>>> #endif > >>>>>> /***********/ > >>>>>> + > >>>>>> +/****d* OpenSM: Base/OSM_DEFAULT_QOS_POLICY_FILE > >>>>>> +* NAME > >>>>>> +* OSM_DEFAULT_QOS_POLICY_FILE > >>>>>> +* > >>>>>> +* DESCRIPTION > >>>>>> +* Specifies the default QoS policy file name > >>>>>> +* > >>>>>> +* SYNOPSIS > >>>>>> +*/ > >>>>>> +#ifdef __WIN__ > >>>>>> +#define OSM_DEFAULT_QOS_POLICY_FILE strcat(GetOsmCachePath(), > >>>>>> +"osm-qos-policy.conf") #else #define > OSM_DEFAULT_QOS_POLICY_FILE > >>>>>> +"/etc/ofa/opensm-qos-policy.conf" > >>>>>> +#endif > >>>>>> +/***********/ > >>>>>> + > >>>>>> /****d* OpenSM: Base/OSM_DEFAULT_SWEEP_INTERVAL_SECS > >>>>>> * NAME > >>>>>> * OSM_DEFAULT_SWEEP_INTERVAL_SECS > >>>>>> diff --git a/opensm/include/opensm/osm_subnet.h > >>>>>> b/opensm/include/opensm/osm_subnet.h > >>>>>> index a7543dc..5e8b522 100644 > >>>>>> --- a/opensm/include/opensm/osm_subnet.h > >>>>>> +++ b/opensm/include/opensm/osm_subnet.h > >>>>>> @@ -68,6 +68,7 @@ BEGIN_C_DECLS > >>>>>> #define OSM_SUBNET_VECTOR_GROW_SIZE 1 > >>>>>> #define OSM_SUBNET_VECTOR_CAPACITY 256 > >>>>>> struct _osm_opensm_t; > >>>>>> +struct _osm_qos_policy_t; > >>>>>> > >>>>>> /****h* OpenSM/Subnet > >>>>>> * NAME > >>>>>> @@ -257,6 +258,7 @@ typedef struct _osm_subn_opt { > >>>>>> char *partition_config_file; > >>>>>> boolean_t no_partition_enforcement; > >>>>>> boolean_t no_qos; > >>>>>> + char *qos_policy_file; > >>>>>> boolean_t accum_log_file; > >>>>>> char *console; > >>>>>> uint16_t console_port; > >>>>>> @@ -398,6 +400,13 @@ typedef struct _osm_subn_opt { > >>>>>> * specified the log file will be > truncated upon reaching > >>>>>> * this limit. > >>>>>> * > >>>>>> +* no_qos > >>>>>> +* Boolean that specifies whether the > OpenSM QoS functionality > >>>>>> +* should be off or on. > >>>>>> +* > >>>>>> +* qos_policy_file > >>>>>> +* Name of the QoS policy file. > >>>>>> +* > >>>>> Are these options mutually exclusive or not ? > >>>> If QoS in OpenSM is off, the qos_policy_file will be ignored > >>> But aren't there two QoSs ? Can't the old QoS be run > without this ? > >>> I think that is a requirement. > >> OK, there are three ways we want this thing to work: > >> 1. QoS is off > >> 2. The old QoS is on but w/o policy file 3. The old QoS is > on, plus > >> reading policy file > >> > >> The first option is clear: if a user doesn't turns QoS on > (-Q), QoS is off as before. > >> > >> Second and third options: if QoS is on, OpenSM looks for > policy file > >> in the default location or in other location that was provided by > >> user. If the file is not found, QoS works as before. > > > > This sounds OK to me and is my first preference. > > > >> Do we want to add additional option for "enhanced" QoS? > >> If so, we will have three QoS-ralated command line options: > >> - option for turning the QoS on (currently -Q) > >> - option to turn the new QoS on (some new letter - must get > >> one quick before they all run out... :) > >> - option for policy file location if differs from default > (currently > >> -Y) > > > > This seems like the least preferable to me. Also, would > need to deal > > with both on which seems to mean use new QoS. > > > >> Alternatively, we can turn -Q option into levels: > >> -Q 0: QoS is off (default) > >> -Q 1: old QoS is on > >> -Q 2: old QoS plus reading policy file > > > > This one also seems OK to me (second preference). > > > > Anyone else with an opinion on this ? Sasha ? > > > > Also, what about --enable-qos-policy build option for those > who don't > > want to include this in their build ? > > Do you mean permanently, or just until the new QoS will be stable? > Note that if someone gets ofed rpm, he gets the generated > files in this rpm, so he doesn't need les or yacc, so this > option would be useful only for machines that have git but > don't have lex or yacc. > Do you think it's a real issue? > > -- Yevgeny > > > -- Hal > > > >> -- Yevgeny > >> > >>>>>> * accum_log_file > >>>>>> * If TRUE (default) - the log file will > be accumulated. > >>>>>> * If FALSE - the log file will be erased > before starting current opensm run. > >>>>>> @@ -551,6 +560,7 @@ typedef struct _osm_subn { > >>>>>> ib_net64_t sm_port_guid; > >>>>>> uint8_t sm_state; > >>>>>> osm_subn_opt_t opt; > >>>>>> + struct _osm_qos_policy_t *p_qos_policy; > >>>>>> uint16_t max_unicast_lid_ho; > >>>>>> uint16_t max_multicast_lid_ho; > >>>>>> uint8_t min_ca_mtu; > >>>>>> @@ -619,6 +629,9 @@ typedef struct _osm_subn { > >>>>>> * opt > >>>>>> * Subnet options structure contains site > specific configuration. > >>>>>> * > >>>>>> +* p_qos_policy > >>>>>> +* Subnet QoS policy structure. > >>>>>> +* > >>>>>> * max_unicast_lid_ho > >>>>>> * The minimal max unicast lid reported > by all switches > >>>>>> * > >>>>>> diff --git a/opensm/opensm/main.c b/opensm/opensm/main.c index > >>>>>> e2541d8..599c4dc 100644 > >>>>>> --- a/opensm/opensm/main.c > >>>>>> +++ b/opensm/opensm/main.c > >>>>>> @@ -269,6 +269,10 @@ void show_usage(void) > >>>>>> " The default name is \'" > >>>>>> OSM_DEFAULT_PARTITION_CONFIG_FILE "\'.\n\n"); > >>>>>> printf("-Q\n" "--qos\n" " This option > enables QoS setup.\n\n"); > >>>>>> + printf("-Y\n" > >>>>>> + "--qos_policy_file\n" > >>>>>> + " This option defines the > optional QoS policy file.\n" > >>>>>> + " The default name is \'" > OSM_DEFAULT_QOS_POLICY_FILE "\'.\n\n"); > >>>>>> printf("-N\n" > >>>>>> "--no_part_enforce\n" > >>>>>> " This option disables > partition enforcement on switch external ports.\n\n"); > >>>>>> @@ -580,7 +584,7 @@ int main(int argc, char *argv[]) > >>>>>> char *ignore_guids_file_name = NULL; > >>>>>> uint32_t val; > >>>>>> const char *const short_option = > >>>>>> - > "i:f:ed:g:l:L:s:t:a:u:R:zM:U:S:P:NBIQvVhorcyxp:n:q:k:C:"; > >>>>>> + > >>>>>> + "i:f:ed:g:l:L:s:t:a:u:R:zM:U:S:P:Y:NBIQvVhorcyxp:n:q:k:C:"; > >>>>>> > >>>>>> /* > >>>>>> In the array below, the 2nd parameter specifies the > >>>>>> number @@ -604,6 +608,7 @@ int main(int argc, char *argv[]) > >>>>>> {"Pconfig", 1, NULL, 'P'}, > >>>>>> {"no_part_enforce", 0, NULL, 'N'}, > >>>>>> {"qos", 0, NULL, 'Q'}, > >>>>>> + {"qos_policy_file", 1, NULL, 'Y'}, > >>>>>> {"maxsmps", 1, NULL, 'n'}, > >>>>>> {"console", 1, NULL, 'q'}, > >>>>>> {"V", 0, NULL, 'V'}, @@ -823,6 +828,11 @@ int > >>>>>> main(int argc, char *argv[]) > >>>>>> opt.no_qos = FALSE; > >>>>>> break; > >>>>>> > >>>>>> + case 'Y': > >>>>>> + opt.qos_policy_file = optarg; > >>>>>> + printf(" QoS policy file > \'%s\'\n", optarg); > >>>>>> + break; > >>>>>> + > >>>>> There should also be an update to the OpenSM man page for this. > >>>> That and a text file with description of policy file syntax > >>> Good. Thanks. > >>> > >>> -- Hal > >>> > >>>> -- Yevgeny > >>>> > >>>>> -- Hal > >>>>> > >>>>>> case 'y': > >>>>>> opt.exit_on_fatal = FALSE; > >>>>>> printf(" Staying on fatal > initialization > >>>>>> errors\n"); diff --git a/opensm/opensm/osm_subnet.c > >>>>>> b/opensm/opensm/osm_subnet.c index 818d73f..4162522 100644 > >>>>>> --- a/opensm/opensm/osm_subnet.c > >>>>>> +++ b/opensm/opensm/osm_subnet.c > >>>>>> @@ -452,6 +452,7 @@ void osm_subn_set_default_opt(IN > osm_subn_opt_t * const p_opt) > >>>>>> p_opt->partition_config_file = > OSM_DEFAULT_PARTITION_CONFIG_FILE; > >>>>>> p_opt->no_partition_enforcement = FALSE; > >>>>>> p_opt->no_qos = TRUE; > >>>>>> + p_opt->qos_policy_file = OSM_DEFAULT_QOS_POLICY_FILE; > >>>>>> p_opt->accum_log_file = TRUE; > >>>>>> p_opt->port_profile_switch_nodes = FALSE; > >>>>>> p_opt->pfn_ui_pre_lid_assign = NULL; @@ -1178,6 > +1179,9 @@ > >>>>>> ib_api_status_t osm_subn_parse_conf_file(IN osm_subn_opt_t * > >>>>>> const p_opts) > >>>>>> > >>>>>> opts_unpack_boolean("no_qos", p_key, p_val, > >>>>>> &p_opts->no_qos); > >>>>>> > >>>>>> + opts_unpack_charp("qos_policy_file", > >>>>>> + p_key, p_val, > >>>>>> + &p_opts->qos_policy_file); > >>>>>> + > >>>>>> opts_unpack_boolean("accum_log_file", > >>>>>> p_key, p_val, > >>>>>> &p_opts->accum_log_file); > >>>>>> > >>>>>> @@ -1541,7 +1545,11 @@ ib_api_status_t > osm_subn_write_conf_file(IN osm_subn_opt_t * const p_opts) > >>>>>> fprintf(opts_file, > >>>>>> "#\n# QoS OPTIONS\n#\n" > >>>>>> "# Disable QoS setup\n" > >>>>>> - "no_qos %s\n\n", p_opts->no_qos ? > "TRUE" : "FALSE"); > >>>>>> + "no_qos %s\n\n" > >>>>>> + "# QoS policy file to be used\n" > >>>>>> + "qos_policy_file %s\n\n", > >>>>>> + p_opts->no_qos ? "TRUE" : "FALSE", > >>>>>> + p_opts->qos_policy_file); > >>>>>> > >>>>>> subn_dump_qos_options(opts_file, > >>>>>> "QoS default options", "qos", > >>>>>> -- > >>>>>> 1.5.1.4 > >>>>>> > >>>>>> _______________________________________________ > >>>>>> general mailing list > >>>>>> [email protected] > >>>>>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general > >>>>>> > >>>>>> To unsubscribe, please visit > >>>>>> http://openib.org/mailman/listinfo/openib-general > >>>>>> > >> > > > > _______________________________________________ > general mailing list > [email protected] > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general > > To unsubscribe, please visit > http://openib.org/mailman/listinfo/openib-general > _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
