Rev 427: disable realtime scheduler in event scripts in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Fri Jun 1 22:46:50 GMT 2007


------------------------------------------------------------
revno: 427
revision-id: tridge at samba.org-20070601224649-wvwheltox404k3pe
parent: tridge at samba.org-20070601224119-obiwab2ev9lnfwn3
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge
timestamp: Sat 2007-06-02 08:46:49 +1000
message:
  disable realtime scheduler in event scripts
modified:
  common/ctdb_daemon.c           ctdb_daemon.c-20070409200331-3el1kqgdb9m4ib0g-1
  common/ctdb_util.c             ctdb_util.c-20061128065342-to93h6eejj5kon81-3
  include/ctdb_private.h         ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
  takeover/system.c              system.c-20070525071636-a5n1ihghjtppy08r-3
=== modified file 'common/ctdb_daemon.c'
--- a/common/ctdb_daemon.c	2007-06-01 09:05:41 +0000
+++ b/common/ctdb_daemon.c	2007-06-01 22:46:49 +0000
@@ -766,7 +766,7 @@
 	block_signal(SIGPIPE);
 
 	/* try to set us up as realtime */
-	ctdb_set_realtime();
+	ctdb_set_realtime(true);
 
 	/* ensure the socket is deleted on exit of the daemon */
 	domain_socket_name = talloc_strdup(talloc_autofree_context(), ctdb->daemon.name);

=== modified file 'common/ctdb_util.c'
--- a/common/ctdb_util.c	2007-05-31 03:50:53 +0000
+++ b/common/ctdb_util.c	2007-06-01 22:46:49 +0000
@@ -204,16 +204,20 @@
 /*
   if possible, make this task real time
  */
-void ctdb_set_realtime(void)
+void ctdb_set_realtime(bool enable)
 {
 #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)));
+	if (enable) {
+		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"));
+		}
 	} else {
-		DEBUG(0,("Set scheduler to SCHED_FIFO\n"));
+		sched_setscheduler(getpid(), SCHED_OTHER, &p);
 	}
 #endif
 }

=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h	2007-06-01 22:41:19 +0000
+++ b/include/ctdb_private.h	2007-06-01 22:46:49 +0000
@@ -928,7 +928,7 @@
 			       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);
+void ctdb_set_realtime(bool enable);
 int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb, 
 				 struct ctdb_req_control *c,
 				 TDB_DATA indata, 

=== modified file 'takeover/system.c'
--- a/takeover/system.c	2007-06-01 13:25:33 +0000
+++ b/takeover/system.c	2007-06-01 22:46:49 +0000
@@ -385,6 +385,7 @@
 
 	if (state->child == 0) {
 		close(state->fd[0]);
+		ctdb_set_realtime(false);
 		va_start(ap, fmt);
 		ret = ctdb_event_script_v(ctdb, fmt, ap);
 		va_end(ap);



More information about the samba-cvs mailing list