1 write to _schedulingData
Microsoft.Build (1)
BackEnd\Components\Scheduler\Scheduler.cs (1)
584_schedulingData = new SchedulingData();
119 references to _schedulingData
Microsoft.Build (119)
BackEnd\Components\Scheduler\Scheduler.cs (119)
298return _schedulingData.GetRequestsAssignedToConfigurationCount(configurationId) > 0; 321if (!_schedulingData.IsNodeWorking(nodeId)) 326SchedulableRequest request = _schedulingData.GetExecutingRequestByNode(nodeId); 335_schedulingData.EventTime = DateTime.UtcNow; 344parentRequest = _schedulingData.GetYieldingRequest(blocker.BlockedRequestId); 348parentRequest = _schedulingData.GetExecutingRequest(blocker.BlockedRequestId); 408_schedulingData.EventTime = DateTime.UtcNow; 424SchedulableRequest request = _schedulingData.GetExecutingRequest(result.GlobalRequestId); 465_schedulingData.UnscheduledRequests, _schedulingData.UnscheduledRequestsCount, out int numRead); 531_schedulingData.EventTime = DateTime.UtcNow; 565_schedulingData.EventTime = DateTime.UtcNow; 570foreach (SchedulableRequest request in _schedulingData.GetScheduledRequestsByNode(nodeId)) 605foreach (SchedulableRequest request in _schedulingData.GetRequestsByHierarchy(null)) 632_schedulingData.GrantCoresToRequest(requestId, grantedCores); 656_schedulingData.RemoveCoresFromRequest(requestId, coresToRelease); 725if (_schedulingData.UnscheduledRequestsCount == 0 && 726_schedulingData.ReadyRequestsCount == 0 && 727_schedulingData.BlockedRequestsCount == 0) 729if (_schedulingData.ExecutingRequestsCount == 0 && _schedulingData.YieldingRequestsCount == 0) 749if (!_schedulingData.IsNodeWorking(availableNodeId)) 758if (idleNodes.Count > 0 && _schedulingData.UnscheduledRequestsCount > 0) 767if (_schedulingData.UnscheduledRequestsCount > 0 || responses.Count == 0) 769createNodePending = CreateNewNodeIfPossible(responses, _schedulingData.UnscheduledRequests); 775if (_schedulingData.ExecutingRequestsCount > 0 || _schedulingData.YieldingRequestsCount > 0) 779else if (_schedulingData.UnscheduledRequestsCount == 0 && 780_schedulingData.ReadyRequestsCount == 0 && 781_schedulingData.BlockedRequestsCount == 0) 786else if (_schedulingData.BlockedRequestsCount != 0) 797foreach (SchedulableRequest request in _schedulingData.BlockedRequests) 802ErrorUtilities.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); 809ErrorUtilities.ThrowInternalError("None of the {0} blocked requests can be serviced by currently existing nodes, but we aren't requesting a new one.", _schedulingData.BlockedRequestsCount); 812else if (_schedulingData.ReadyRequestsCount != 0) 815ErrorUtilities.ThrowInternalError("Somehow we have {0} requests which are ready to go but we didn't tell the nodes to continue.", _schedulingData.ReadyRequestsCount); 817else if (_schedulingData.UnscheduledRequestsCount != 0 && !createNodePending) 820ErrorUtilities.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); 828TraceScheduler("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); 894_schedulingPlan = new SchedulingPlan(_configCache, _schedulingData); 895ReadSchedulingPlan(_schedulingData.GetRequestsByHierarchy(null).First().BuildRequest.SubmissionId); 986foreach (SchedulableRequest request in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1039SchedulableRequest[] unscheduledRequests = _requestBufferPool.Rent(_schedulingData.UnscheduledRequestsCount); 1042SchedulingData.UnscheduledRequestsWhichCanBeScheduledEnumerator unscheduledRequestsRead = _schedulingData.UnscheduledRequestsWhichCanBeScheduled.GetEnumerator(); 1043while (numRead < _schedulingData.UnscheduledRequestsCount && unscheduledRequestsRead.MoveNext()) 1078IEnumerable<int> nodesByConfigurationCountAscending = _availableNodes.Keys.OrderBy(x => _schedulingData.GetConfigurationsCountByNode(x, excludeTraversals: true, _configCache)); 1090TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}", _schedulingData.ExecutingRequestsCount, _schedulingData.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount); 1094foreach (SchedulableRequest request in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1116while (idleNodes.Count > 0 && _schedulingData.UnscheduledRequestsCount > 0) 1122foreach (SchedulableRequest unscheduledRequest in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1124int requiredNodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(unscheduledRequest.BuildRequest.ConfigurationId); 1158while (idleNodes.Count > 0 && _schedulingData.UnscheduledRequestsCount > 0) 1164foreach (SchedulableRequest unscheduledRequest in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1166int requiredNodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(unscheduledRequest.BuildRequest.ConfigurationId); 1206foreach (SchedulableRequest currentSchedulableRequest in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1209int requiredNodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(currentRequest.ConfigurationId); 1281foreach (SchedulableRequest unscheduledRequest in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1310TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}", _schedulingData.ExecutingRequestsCount, _schedulingData.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount); 1314foreach (SchedulableRequest unscheduledRequest in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1351configurationCountsByNode[availableNodeId] = _schedulingData.GetConfigurationsCountByNode(availableNodeId, true /* excludeTraversals */, _configCache); 1374TraceScheduler("System load limit reached, cannot schedule new work. Executing: {0} Yielding: {1} Max Count: {2}", _schedulingData.ExecutingRequestsCount, _schedulingData.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount); 1378foreach (SchedulableRequest request in _schedulingData.UnscheduledRequestsWhichCanBeScheduled) 1382int requiredNodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(request.BuildRequest.ConfigurationId); 1437if (request.IsProxyBuildRequest() && nodeId != InProcNodeId && _schedulingData.CanScheduleRequestToNode(request, InProcNodeId)) 1460int implicitlyGrantedCores = Math.Max(1, (_schedulingData.ExecutingRequestsCount * _nodeCoreAllocationWeight) / 100); 1463int explicitlyGrantedCores = _schedulingData.ExplicitlyGrantedCores; 1480if (_schedulingData.ExecutingRequestsCount >= _componentHost.BuildParameters.MaxNodeCount) 1494return _schedulingData.ExecutingRequestsCount + 1495_schedulingData.YieldingRequestsCount + 1496_schedulingData.ExplicitlyGrantedCores >= limit; 1504if (_schedulingData.CanScheduleRequestToNode(request, nodeId)) 1543int assignedNodeForConfiguration = _schedulingData.GetAssignedNodeForRequestConfiguration(request.BuildRequest.ConfigurationId); 1687SchedulableRequest blockingRequest = _schedulingData.GetScheduledRequest(blocker.BlockingRequestId); 1787int assignedNodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(request.ConfigurationId); 1793if (_schedulingData.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) == 0) 1796_schedulingData.UnassignNodeForRequestConfiguration(request.ConfigurationId); 1805else if (_schedulingData.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) > 0) 1808foreach (SchedulableRequest existingRequest in _schedulingData.GetRequestsAssignedToConfiguration(request.ConfigurationId)) 1869SchedulableRequest blockingRequest = _schedulingData.CreateRequest(requestToAdd, parentRequest); 1884foreach (SchedulableRequest request in _schedulingData.GetReadyRequestsByNode(nodeId)) 1933if (!_schedulingData.IsNodeWorking(response.NodeId)) 1980TraceScheduler("System load limit reached, cannot resume any more work. Executing: {0} Yielding: {1} Max Count: {2}", _schedulingData.ExecutingRequestsCount, _schedulingData.YieldingRequestsCount, _componentHost.BuildParameters.MaxNodeCount); 1985if (_schedulingData.IsNodeWorking(nodeId)) 1997_schedulingData.UnscheduledRequests, _schedulingData.UnscheduledRequestsCount, out int numRead); 2037string parentProjectFullPath = GetParentConfigurationId(request, _configCache, _schedulingData).ProjectFullPath; 2056BuildRequestConfiguration parentConfig = GetParentConfigurationId(request, _configCache, _schedulingData); 2200int nodeId = _schedulingData.GetAssignedNodeForRequestConfiguration(request.ConfigurationId); 2251if (_schedulingData.CanScheduleConfigurationToNode(request.ConfigurationId, InProcNodeId) && request.IsProxyBuildRequest()) 2324|| _schedulingData.GetRequestsAssignedToConfigurationCount(request.ConfigurationId) == 0) 2333foreach (SchedulableRequest existingRequest in _schedulingData.GetRequestsAssignedToConfiguration(request.ConfigurationId)) 2438foreach (SchedulingData.SchedulingEvent buildEvent in _schedulingData.BuildEvents) 2643List<SchedulableRequest> childRequests = new List<SchedulableRequest>(_schedulingData.GetRequestsByHierarchy(request)); 2679file.Write("{0}({1})-{2}: ", Thread.CurrentThread.Name, Environment.CurrentManagedThreadId, _schedulingData.EventTime.Ticks); 2697if (_schedulingData != null) 2721file.WriteLine("Scheduler state at timestamp {0}:", _schedulingData.EventTime.Ticks); 2729_schedulingData.IsNodeWorking(nodeId) 2733_schedulingData.GetExecutingRequestByNode(nodeId) 2736_schedulingData.GetScheduledRequestsCountByNode(nodeId), 2737_schedulingData.GetConfigurationsCountByNode(nodeId, false, null)); 2739List<SchedulableRequest> scheduledRequestsByNode = new List<SchedulableRequest>(_schedulingData.GetScheduledRequestsByNode(nodeId)); 2748if (!_schedulingData.IsNodeWorking(nodeId)) 2798if (_schedulingData.UnscheduledRequestsCount == 0) 2806foreach (SchedulableRequest request in _schedulingData.UnscheduledRequests) 2829if (_schedulingData != null) 2838List<int> configurations = new List<int>(_schedulingData.Configurations); 2843file.WriteLine("Config {0} Node {1} TV: {2} File {3}", config, _schedulingData.GetAssignedNodeForRequestConfiguration(config), _configCache[config].ToolsVersion, _configCache[config].ProjectFullPath); 2869if (_schedulingData != null) 2894foreach (SchedulableRequest child in _schedulingData.GetRequestsByHierarchy(root)) 2936_schedulingData.GetAssignedNodeForRequestConfiguration(buildRequest.ConfigurationId), 2937_schedulingData.IsRequestScheduled(request) 2951SchedulingPlan plan = new SchedulingPlan(_configCache, _schedulingData); 2960_schedulingPlan = new SchedulingPlan(_configCache, _schedulingData);