fixed-up suspension bug
git-svn-id: svn://opensvn.adaptivecomputing.com/maui/trunk@66 3f5042e3-fb1d-0410-be18-d6ca2573e517
This commit is contained in:
parent
d0affc45b8
commit
6ce33ce9fd
@ -274,6 +274,7 @@ typedef struct {
|
||||
#define DEFAULT_MRESOURCELIMITVIOLATIONACTION mrlaRequeue
|
||||
|
||||
#define MDEF_SPVJOBISPREEMPTIBLE TRUE
|
||||
#define MDEF_MINSUSPENDTIME 10
|
||||
|
||||
/* node access policy */
|
||||
|
||||
|
@ -661,6 +661,7 @@ enum {
|
||||
pRUProcWeight,
|
||||
pRUJobWeight,
|
||||
pUConsWeight,
|
||||
pUExeTimeWeight,
|
||||
pURemWeight,
|
||||
pUPerCWeight,
|
||||
pXFMinWCLimit,
|
||||
@ -698,6 +699,7 @@ enum {
|
||||
pRPECap,
|
||||
pRWallTimeCap,
|
||||
pUConsCap,
|
||||
pUExeTimeCap,
|
||||
pURemCap,
|
||||
pUPerCCap,
|
||||
pQOSName,
|
||||
|
@ -1271,11 +1271,12 @@ enum MPrioSubComponentEnum {
|
||||
mpsRUProc,
|
||||
mpsRUJob,
|
||||
mpsUCons,
|
||||
mpsUExeTime,
|
||||
mpsURem,
|
||||
mpsUPerC
|
||||
mpsUPerC,
|
||||
};
|
||||
|
||||
#define MAX_MPRIOSUBCOMPONENT 32
|
||||
#define MAX_MPRIOSUBCOMPONENT 33
|
||||
|
||||
/* fairshare */
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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 },
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user