fixed-up suspension bug

git-svn-id: svn://opensvn.adaptivecomputing.com/maui/trunk@66 3f5042e3-fb1d-0410-be18-d6ca2573e517
This commit is contained in:
josh 2006-08-17 23:12:48 +00:00
parent d0affc45b8
commit 6ce33ce9fd
7 changed files with 18 additions and 7 deletions

View File

@ -274,6 +274,7 @@ typedef struct {
#define DEFAULT_MRESOURCELIMITVIOLATIONACTION mrlaRequeue
#define MDEF_SPVJOBISPREEMPTIBLE TRUE
#define MDEF_MINSUSPENDTIME 10
/* node access policy */

View File

@ -661,6 +661,7 @@ enum {
pRUProcWeight,
pRUJobWeight,
pUConsWeight,
pUExeTimeWeight,
pURemWeight,
pUPerCWeight,
pXFMinWCLimit,
@ -698,6 +699,7 @@ enum {
pRPECap,
pRWallTimeCap,
pUConsCap,
pUExeTimeCap,
pURemCap,
pUPerCCap,
pQOSName,

View File

@ -1271,11 +1271,12 @@ enum MPrioSubComponentEnum {
mpsRUProc,
mpsRUJob,
mpsUCons,
mpsUExeTime,
mpsURem,
mpsUPerC
mpsUPerC,
};
#define MAX_MPRIOSUBCOMPONENT 32
#define MAX_MPRIOSUBCOMPONENT 33
/* fairshare */

View File

@ -1752,6 +1752,7 @@ int MCfgSetVal(
case pUConsWeight:
case pURemWeight:
case pUPerCWeight:
case pUExeTimeWeight:
case pServCap:
case pTargCap:
case pCredCap:
@ -1785,6 +1786,7 @@ int MCfgSetVal(
case pUConsCap:
case pURemCap:
case pUPerCCap:
case pUExeTimeCap:
case pXFMinWCLimit:
case pFSPolicy:
case pFSInterval:

View File

@ -1614,6 +1614,8 @@ const mcfg_t MCfg[] = {
{ "UFSWEIGHT", pOLDUFSWeight, mdfInt, mxoPar, NULL },
{ "UJOBWEIGHT", pRUJobWeight, mdfInt, mxoPar, NULL },
{ "UPROCWEIGHT", pRUProcWeight, mdfInt, mxoPar, NULL },
{ "USAGEEXECUTIONTIMECAP", pUExeTimeCap, mdfInt, mxoPar, NULL },
{ "USAGEEXECUTIONTIMEWEIGHT", pUExeTimeWeight, mdfInt, mxoPar, NULL },
{ "USAGECAP", pUsageCap, mdfInt, mxoPar, NULL },
{ "USAGEWEIGHT", pUsageWeight, mdfString, mxoPar, NULL },
{ "USECPUTIME", pUseCPUTime, mdfString, mxoPar, NULL },

View File

@ -954,9 +954,10 @@ int MFSProcessOConfig(
case pUConsWeight:
case pURemWeight:
case pUPerCWeight:
case pUExeTimeWeight:
F->PSW[PIndex - pSQTWeight + 1] = (long)IVal;
break;
case pServCap:
@ -997,6 +998,7 @@ int MFSProcessOConfig(
case pUConsCap:
case pURemCap:
case pUPerCCap:
case pUExeTimeCap:
F->PSC[PIndex - pSQTCap + 1] = (long)IVal;

View File

@ -1030,7 +1030,8 @@ int MJobGetRunPriority(
*Priority = MPar[0].FSC.PCW[mpcUsage] * (
MPar[0].FSC.PSW[mpsUCons] * ResourcesConsumed +
MPar[0].FSC.PSW[mpsURem] * ResourcesRemaining +
MPar[0].FSC.PSW[mpsUPerC] * PercentResUsage);
MPar[0].FSC.PSW[mpsUPerC] * PercentResUsage,
MPar[0].FSC.PSW[mpsUExeTime] * (MSched.Time - J->StartTime));
*Priority += J->StartPriority;
@ -2039,12 +2040,12 @@ int MJobPreempt(
MJobSetState(J,mjsSuspended);
/* NOTE: to prevent thrashing, by default, suspended jobs should not *
* resume for 1 minute */
* resume for MDEF_MINSUSPENDTIME */
{
long tmpL;
tmpL = MSched.Time + 60;
tmpL = MSched.Time + MDEF_MINSUSPENDTIME;
MJobSetAttr(J,mjaSysSMinTime,(void **)&tmpL,mdfLong,mSet);
} /* END BLOCK */