1 write to _schedulingData
Microsoft.Build (1)
BackEnd\Components\Scheduler\Scheduler.cs (1)
585
_schedulingData
= new SchedulingData();
119 references to _schedulingData
Microsoft.Build (119)
BackEnd\Components\Scheduler\Scheduler.cs (119)
299
return
_schedulingData
.GetRequestsAssignedToConfigurationCount(configurationId) > 0;
322
if (!
_schedulingData
.IsNodeWorking(nodeId))
327
SchedulableRequest request =
_schedulingData
.GetExecutingRequestByNode(nodeId);
336
_schedulingData
.EventTime = DateTime.UtcNow;
345
parentRequest =
_schedulingData
.GetYieldingRequest(blocker.BlockedRequestId);
349
parentRequest =
_schedulingData
.GetExecutingRequest(blocker.BlockedRequestId);
409
_schedulingData
.EventTime = DateTime.UtcNow;
425
SchedulableRequest request =
_schedulingData
.GetExecutingRequest(result.GlobalRequestId);
466
_schedulingData
.UnscheduledRequests,
_schedulingData
.UnscheduledRequestsCount, out int numRead);
532
_schedulingData
.EventTime = DateTime.UtcNow;
566
_schedulingData
.EventTime = DateTime.UtcNow;
571
foreach (SchedulableRequest request in
_schedulingData
.GetScheduledRequestsByNode(nodeId))
606
foreach (SchedulableRequest request in
_schedulingData
.GetRequestsByHierarchy(null))
633
_schedulingData
.GrantCoresToRequest(requestId, grantedCores);
657
_schedulingData
.RemoveCoresFromRequest(requestId, coresToRelease);
726
if (
_schedulingData
.UnscheduledRequestsCount == 0 &&
727
_schedulingData
.ReadyRequestsCount == 0 &&
728
_schedulingData
.BlockedRequestsCount == 0)
730
if (
_schedulingData
.ExecutingRequestsCount == 0 &&
_schedulingData
.YieldingRequestsCount == 0)
750
if (!
_schedulingData
.IsNodeWorking(availableNodeId))
759
if (idleNodes.Count > 0 &&
_schedulingData
.UnscheduledRequestsCount > 0)
768
if (
_schedulingData
.UnscheduledRequestsCount > 0 || responses.Count == 0)
770
createNodePending = CreateNewNodeIfPossible(responses,
_schedulingData
.UnscheduledRequests);
776
if (
_schedulingData
.ExecutingRequestsCount > 0 ||
_schedulingData
.YieldingRequestsCount > 0)
780
else if (
_schedulingData
.UnscheduledRequestsCount == 0 &&
781
_schedulingData
.ReadyRequestsCount == 0 &&
782
_schedulingData
.BlockedRequestsCount == 0)
787
else if (
_schedulingData
.BlockedRequestsCount != 0)
798
foreach (SchedulableRequest request in
_schedulingData
.BlockedRequests)
803
ErrorUtilities.ThrowInternalError("Somehow no requests are currently executing, and at least one of the {0} requests blocked by in-progress requests is servicable by a currently existing node, but no circular dependency was detected ...",
_schedulingData
.BlockedRequestsCount);
810
ErrorUtilities.ThrowInternalError("None of the {0} blocked requests can be serviced by currently existing nodes, but we aren't requesting a new one.",
_schedulingData
.BlockedRequestsCount);
813
else if (
_schedulingData
.ReadyRequestsCount != 0)
816
ErrorUtilities.ThrowInternalError("Somehow we have {0} requests which are ready to go but we didn't tell the nodes to continue.",
_schedulingData
.ReadyRequestsCount);
818
else if (
_schedulingData
.UnscheduledRequestsCount != 0 && !createNodePending)
821
ErrorUtilities.ThrowInternalError("Somehow we have {0} unassigned build requests but {1} of our nodes are free and we aren't requesting a new one...",
_schedulingData
.UnscheduledRequestsCount, idleNodes.Count);
829
TraceScheduler("Requests scheduled: {0} Unassigned Requests: {1} Blocked Requests: {2} Unblockable Requests: {3} Free Nodes: {4}/{5} Responses: {6}", nodesFreeToDoWorkPriorToScheduling - idleNodes.Count,
_schedulingData
.UnscheduledRequestsCount,
_schedulingData
.BlockedRequestsCount,
_schedulingData
.ReadyRequestsCount, idleNodes.Count, _availableNodes.Count, responses.Count);
895
_schedulingPlan = new SchedulingPlan(_configCache,
_schedulingData
);
896
ReadSchedulingPlan(
_schedulingData
.GetRequestsByHierarchy(null).First().BuildRequest.SubmissionId);
987
foreach (SchedulableRequest request in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1040
SchedulableRequest[] unscheduledRequests = _requestBufferPool.Rent(
_schedulingData
.UnscheduledRequestsCount);
1043
SchedulingData.UnscheduledRequestsWhichCanBeScheduledEnumerator unscheduledRequestsRead =
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled.GetEnumerator();
1044
while (numRead <
_schedulingData
.UnscheduledRequestsCount && unscheduledRequestsRead.MoveNext())
1079
IEnumerable<int> nodesByConfigurationCountAscending = _availableNodes.Keys.OrderBy(x =>
_schedulingData
.GetConfigurationsCountByNode(x, excludeTraversals: true, _configCache));
1091
TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}",
_schedulingData
.ExecutingRequestsCount,
_schedulingData
.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount);
1095
foreach (SchedulableRequest request in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1117
while (idleNodes.Count > 0 &&
_schedulingData
.UnscheduledRequestsCount > 0)
1123
foreach (SchedulableRequest unscheduledRequest in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1125
int requiredNodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(unscheduledRequest.BuildRequest.ConfigurationId);
1159
while (idleNodes.Count > 0 &&
_schedulingData
.UnscheduledRequestsCount > 0)
1165
foreach (SchedulableRequest unscheduledRequest in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1167
int requiredNodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(unscheduledRequest.BuildRequest.ConfigurationId);
1207
foreach (SchedulableRequest currentSchedulableRequest in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1210
int requiredNodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(currentRequest.ConfigurationId);
1282
foreach (SchedulableRequest unscheduledRequest in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1311
TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}",
_schedulingData
.ExecutingRequestsCount,
_schedulingData
.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount);
1315
foreach (SchedulableRequest unscheduledRequest in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1352
configurationCountsByNode[availableNodeId] =
_schedulingData
.GetConfigurationsCountByNode(availableNodeId, true /* excludeTraversals */, _configCache);
1375
TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}",
_schedulingData
.ExecutingRequestsCount,
_schedulingData
.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount);
1379
foreach (SchedulableRequest request in
_schedulingData
.UnscheduledRequestsWhichCanBeScheduled)
1383
int requiredNodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(request.BuildRequest.ConfigurationId);
1438
if (request.IsProxyBuildRequest() && nodeId != InProcNodeId &&
_schedulingData
.CanScheduleRequestToNode(request, InProcNodeId))
1461
int implicitlyGrantedCores = Math.Max(1, (
_schedulingData
.ExecutingRequestsCount * _nodeCoreAllocationWeight) / 100);
1464
int explicitlyGrantedCores =
_schedulingData
.ExplicitlyGrantedCores;
1481
if (
_schedulingData
.ExecutingRequestsCount >= _componentHost.BuildParameters.MaxNodeCount)
1495
return
_schedulingData
.ExecutingRequestsCount +
1496
_schedulingData
.YieldingRequestsCount +
1497
_schedulingData
.ExplicitlyGrantedCores >= limit;
1505
if (
_schedulingData
.CanScheduleRequestToNode(request, nodeId))
1544
int assignedNodeForConfiguration =
_schedulingData
.GetAssignedNodeForRequestConfiguration(request.BuildRequest.ConfigurationId);
1688
SchedulableRequest blockingRequest =
_schedulingData
.GetScheduledRequest(blocker.BlockingRequestId);
1788
int assignedNodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(request.ConfigurationId);
1794
if (
_schedulingData
.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) == 0)
1797
_schedulingData
.UnassignNodeForRequestConfiguration(request.ConfigurationId);
1806
else if (
_schedulingData
.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) > 0)
1809
foreach (SchedulableRequest existingRequest in
_schedulingData
.GetRequestsAssignedToConfiguration(request.ConfigurationId))
1870
SchedulableRequest blockingRequest =
_schedulingData
.CreateRequest(requestToAdd, parentRequest);
1885
foreach (SchedulableRequest request in
_schedulingData
.GetReadyRequestsByNode(nodeId))
1934
if (!
_schedulingData
.IsNodeWorking(response.NodeId))
1981
TraceScheduler("System load limit reached, cannot resume any more work. Executing: {0} Yielding: {1} Max Count: {2}",
_schedulingData
.ExecutingRequestsCount,
_schedulingData
.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount);
1986
if (
_schedulingData
.IsNodeWorking(nodeId))
1998
_schedulingData
.UnscheduledRequests,
_schedulingData
.UnscheduledRequestsCount, out int numRead);
2038
string parentProjectFullPath = GetParentConfigurationId(request, _configCache,
_schedulingData
).ProjectFullPath;
2057
BuildRequestConfiguration parentConfig = GetParentConfigurationId(request, _configCache,
_schedulingData
);
2201
int nodeId =
_schedulingData
.GetAssignedNodeForRequestConfiguration(request.ConfigurationId);
2252
if (
_schedulingData
.CanScheduleConfigurationToNode(request.ConfigurationId, InProcNodeId) && request.IsProxyBuildRequest())
2325
||
_schedulingData
.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) == 0)
2334
foreach (SchedulableRequest existingRequest in
_schedulingData
.GetRequestsAssignedToConfiguration(request.ConfigurationId))
2439
foreach (SchedulingData.SchedulingEvent buildEvent in
_schedulingData
.BuildEvents)
2644
List<SchedulableRequest> childRequests = new List<SchedulableRequest>(
_schedulingData
.GetRequestsByHierarchy(request));
2680
file.Write("{0}({1})-{2}: ", Thread.CurrentThread.Name, Environment.CurrentManagedThreadId,
_schedulingData
.EventTime.Ticks);
2698
if (
_schedulingData
!= null)
2722
file.WriteLine("Scheduler state at timestamp {0}:",
_schedulingData
.EventTime.Ticks);
2730
_schedulingData
.IsNodeWorking(nodeId)
2734
_schedulingData
.GetExecutingRequestByNode(nodeId)
2737
_schedulingData
.GetScheduledRequestsCountByNode(nodeId),
2738
_schedulingData
.GetConfigurationsCountByNode(nodeId, false, null));
2740
List<SchedulableRequest> scheduledRequestsByNode = new List<SchedulableRequest>(
_schedulingData
.GetScheduledRequestsByNode(nodeId));
2749
if (!
_schedulingData
.IsNodeWorking(nodeId))
2799
if (
_schedulingData
.UnscheduledRequestsCount == 0)
2807
foreach (SchedulableRequest request in
_schedulingData
.UnscheduledRequests)
2830
if (
_schedulingData
!= null)
2839
List<int> configurations = new List<int>(
_schedulingData
.Configurations);
2844
file.WriteLine("Config {0} Node {1} TV: {2} File {3}", config,
_schedulingData
.GetAssignedNodeForRequestConfiguration(config), _configCache[config].ToolsVersion, _configCache[config].ProjectFullPath);
2870
if (
_schedulingData
!= null)
2895
foreach (SchedulableRequest child in
_schedulingData
.GetRequestsByHierarchy(root))
2937
_schedulingData
.GetAssignedNodeForRequestConfiguration(buildRequest.ConfigurationId),
2938
_schedulingData
.IsRequestScheduled(request)
2952
SchedulingPlan plan = new SchedulingPlan(_configCache,
_schedulingData
);
2961
_schedulingPlan = new SchedulingPlan(_configCache,
_schedulingData
);