I believe a better approach would be to default to standard scheduling and add a new flag "--realtime" which enables realtime scheduling.
Regards -steve On 08/05/2011 12:09 AM, Angus Salkeld wrote: > Signed-off-by: Angus Salkeld <[email protected]> > --- > exec/main.c | 55 +------------------------------------------------------ > 1 files changed, 1 insertions(+), 54 deletions(-) > > diff --git a/exec/main.c b/exec/main.c > index b03d33e..006f846 100644 > --- a/exec/main.c > +++ b/exec/main.c > @@ -144,8 +144,6 @@ LOGSYS_DECLARE_SUBSYS ("MAIN"); > > #define SERVER_BACKLOG 5 > > -static int sched_priority = 0; > - > static unsigned int service_count = 32; > > static struct totem_logging_configuration totem_logging_configuration; > @@ -972,46 +970,6 @@ void message_source_set ( > source->conn = conn; > } > > -static void corosync_setscheduler (void) > -{ > -#if defined(HAVE_PTHREAD_SETSCHEDPARAM) && > defined(HAVE_SCHED_GET_PRIORITY_MAX) && defined(HAVE_SCHED_SETSCHEDULER) > - int res; > - > - sched_priority = sched_get_priority_max (SCHED_RR); > - if (sched_priority != -1) { > - global_sched_param.sched_priority = sched_priority; > - res = sched_setscheduler (0, SCHED_RR, &global_sched_param); > - if (res == -1) { > - LOGSYS_PERROR(errno, LOGSYS_LEVEL_WARNING, > - "Could not set SCHED_RR at priority %d", > - global_sched_param.sched_priority); > - > - global_sched_param.sched_priority = 0; > - logsys_thread_priority_set (SCHED_OTHER, NULL, 1); > - } else { > - > - /* > - * Turn on SCHED_RR in logsys system > - */ > - res = logsys_thread_priority_set (SCHED_RR, > &global_sched_param, 10); > - if (res == -1) { > - log_printf (LOGSYS_LEVEL_ERROR, > - "Could not set logsys thread > priority." > - " Can't continue because of > priority inversions."); > - corosync_exit_error (AIS_DONE_LOGSETUP); > - } > - } > - } else { > - LOGSYS_PERROR (errno, LOGSYS_LEVEL_WARNING, > - "Could not get maximum scheduler priority"); > - sched_priority = 0; > - } > -#else > - log_printf(LOGSYS_LEVEL_WARNING, > - "The Platform is missing process priority setting features. > Leaving at default."); > -#endif > -} > - > static void fplay_key_change_notify_fn ( > object_change_type_t change_type, > hdb_handle_t parent_object_handle, > @@ -1203,7 +1161,7 @@ int main (int argc, char **argv, char **envp) > char *iface; > char *strtok_save_pt; > int res, ch; > - int background, setprio; > + int background; > struct stat stat_out; > char corosync_lib_dir[PATH_MAX]; > hdb_handle_t object_runtime_handle; > @@ -1212,7 +1170,6 @@ int main (int argc, char **argv, char **envp) > /* default configuration > */ > background = 1; > - setprio = 1; > > while ((ch = getopt (argc, argv, "fpv")) != EOF) { > > @@ -1222,7 +1179,6 @@ int main (int argc, char **argv, char **envp) > logsys_config_mode_set (NULL, > LOGSYS_MODE_OUTPUT_STDERR|LOGSYS_MODE_THREADED|LOGSYS_MODE_FORK); > break; > case 'p': > - setprio = 0; > break; > case 'v': > printf ("Corosync Cluster Engine, version > '%s'\n", VERSION); > @@ -1240,15 +1196,6 @@ int main (int argc, char **argv, char **envp) > } > } > > - /* > - * Set round robin realtime scheduling with priority 99 > - * Lock all memory to avoid page faults which may interrupt > - * application healthchecking > - */ > - if (setprio) { > - corosync_setscheduler (); > - } > - > corosync_mlockall (); > > log_printf (LOGSYS_LEVEL_NOTICE, "Corosync Cluster Engine ('%s'): > started and ready to provide service.\n", VERSION); _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
