Hi, On Thu, Apr 09, 2009 at 07:00:07AM -0500, btinsley wrote: > Sorry this got off a mailing list. Below is a proposed patch for handling an > issue where lrmd spawns all cluster resources with the realtime scheduler > class (SCHED_RR) set. I know on Linux that the default is SCHED_OTHER and > the code in the patch below is POSIX compliant, so hopefully it will not > cause issues for folks on other OSes.
Applied. Thanks. Dejan P.S. Forgot to set you as the author of the patch, sorry about that :( > > > ---------- Forwarded message ---------- > From: Andrew Beekhof <[email protected]> > Date: Thu, Apr 9, 2009 at 1:57 AM > Subject: Re: [Pacemaker] Resource Scheduler Parameters > To: btinsley <[email protected]> > > > dejan maintains the lrmd, you'd better send this to the heartbeat > mailing list (but it looks fine to me) > > On Thu, Apr 9, 2009 at 01:42, btinsley <[email protected]> wrote: > > Nevermind, I think I found it... in the heartbeat source. Forgot about > that, > > but grep-ing Pacemaker code for fork/exec/clone code freaked me out for a > > little while ;-) > > > > If you want it, this patch should do the trick. It's POSIX compliant, so > > hopefully it won't be troublesome on other OSes ;-) If I missed the mark > > completely here, the code can be placed wherever it's needed. > > > > > > --- lrmd.c.orig 2009-04-08 15:33:04.038843903 -0500 > > +++ lrmd.c 2009-04-08 15:45:11.976099804 -0500 > > @@ -34,6 +34,7 @@ > > #include <dirent.h> > > #include <pwd.h> > > #include <time.h> > > +#include <sched.h> > > > > #include <glib.h> > > #include <heartbeat.h> > > @@ -3087,6 +3088,15 @@ > > return HA_OK; > > > > case 0: /* Child */ > > + if (sched_getscheduler(0) != SCHED_OTHER) { > > + lrmd_debug2(LOG_DEBUG, > > + "perform_ra_op: resetting > scheduler > > class to SCHED_OTHER"); > > + struct sched_param sp; > > + sp.sched_priority = 0; > > + if (sched_setscheduler(0, SCHED_OTHER, > &sp) > > == -1) > > + cl_perror("%s::%d: > > sched_setscheduler", > > + __FUNCTION__, __LINE__); > > + } > > /* Man: The call setpgrp() is equivalent to > > setpgid(0,0) > > * _and_ compiles on BSD variants too > > * need to investigate if it works the same too. > > > > > > > > On Wed, Apr 8, 2009 at 1:28 PM, btinsley <[email protected]> wrote: > >> > >> Where in the code are resources spawned? Is it start_subsystem() or > >> elsewhere? I'll be glad to pitch in and offer a patch if you want. > >> > >> > >> > >> On Wed, Apr 8, 2009 at 1:18 PM, Andrew Beekhof <[email protected]> wrote: > >>> > >>> On Wed, Apr 8, 2009 at 18:40, btinsley <[email protected]> wrote: > >>> > AIS guys said to upgrade to the latest Whitetank :-) I did and the > >>> > behavior > >>> > is the same, but it's not necessarily incorrect. The aisexec process > >>> > sets > >>> > itself to the realtime scheduling class, which does the same for all > of > >>> > the > >>> > Pacemaker processes when they are spawned. This is probably how you > >>> > want the > >>> > cluster daemons to run. However, when lrmd spawns resource scripts > >>> > *everything* the script does also inherits the realtime scheduling > >>> > class. > >>> > I'm not sure this is how you want all your clustered applications > >>> > running > >>> > (or all the other stuff a resource script may do). Thoughts here? > >>> > >>> I'd tend to agree with you - the lrmd should probably do the > >>> equivalent of chrt for the child processes it uses to perform the > >>> resource actions > >>> > >>> > As a workaround, I added calls to the chrt program in each resource > >>> > script > >>> > to "downgrade" the scheduler to SCHED_OTHER and set the priority to > >>> > zero, > >>> > which is the system default. > >>> > >>> _______________________________________________ > >>> Pacemaker mailing list > >>> [email protected] > >>> http://oss.clusterlabs.org/mailman/listinfo/pacemaker > >> > > > > > _______________________________________________________ > Linux-HA-Dev: [email protected] > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev > Home Page: http://linux-ha.org/ _______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
