Rev 339: make ctdbd realtime if possible in
http://samba.org/~tridge/ctdb
tridge at samba.org
tridge at samba.org
Thu May 24 04:52:11 GMT 2007
------------------------------------------------------------
revno: 339
revision-id: tridge at samba.org-20070524045210-x9rjizzstayky7qu
parent: tridge at samba.org-20070524034927-mdvxyva7cv1crrcy
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Thu 2007-05-24 14:52:10 +1000
message:
make ctdbd realtime if possible
modified:
common/ctdb_daemon.c ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1
common/ctdb_util.c ctdb_util.c-20061128065342-to93h6eejj5kon81-3
configure.ac configure.ac-20061117234101-o3qt14umlg9en8z0-10
include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
=== modified file 'common/ctdb_daemon.c'
--- a/common/ctdb_daemon.c 2007-05-23 10:15:09 +0000
+++ b/common/ctdb_daemon.c 2007-05-24 04:52:10 +0000
@@ -738,6 +738,9 @@
block_signal(SIGPIPE);
block_signal(SIGCHLD);
+ /* try to set us up as realtime */
+ ctdb_set_realtime();
+
/* start the recovery daemon process */
if (ctdb_start_recoverd(ctdb) != 0) {
DEBUG(0,("Failed to start recovery daemon\n"));
=== modified file 'common/ctdb_util.c'
--- a/common/ctdb_util.c 2007-05-23 10:15:09 +0000
+++ b/common/ctdb_util.c 2007-05-24 04:52:10 +0000
@@ -194,3 +194,23 @@
return d;
}
+#if HAVE_SCHED_H
+#include <sched.h>
+#endif
+
+/*
+ if possible, make this task real time
+ */
+void ctdb_set_realtime(void)
+{
+#if HAVE_SCHED_SETSCHEDULER
+ struct sched_param p;
+ p.__sched_priority = 1;
+
+ if (sched_setscheduler(getpid(), SCHED_FIFO, &p) == -1) {
+ DEBUG(0,("Unable to set scheduler to SCHED_FIFO (%s)\n", strerror(errno)));
+ } else {
+ DEBUG(0,("Set scheduler to SCHED_FIFO\n"));
+ }
+#endif
+}
=== modified file 'configure.ac'
--- a/configure.ac 2007-05-14 23:42:52 +0000
+++ b/configure.ac 2007-05-24 04:52:10 +0000
@@ -30,6 +30,9 @@
m4_include(libevents.m4)
m4_include(ib/config.m4)
+AC_CHECK_HEADERS(sched.h)
+AC_CHECK_FUNCS(sched_setscheduler)
+
AC_CACHE_CHECK([for sin_len in sock],ctdb_cv_HAVE_SOCK_SIN_LEN,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>
=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h 2007-05-23 07:21:14 +0000
+++ b/include/ctdb_private.h 2007-05-24 04:52:10 +0000
@@ -864,5 +864,6 @@
uint32_t destnode, uint32_t db_id, uint64_t rsn);
int ctdb_ctrl_delete_low_rsn(struct ctdb_context *ctdb, struct timeval timeout,
uint32_t destnode, uint32_t db_id, uint64_t rsn);
+void ctdb_set_realtime(void);
#endif
More information about the samba-cvs
mailing list