@@ -1377,6 +1377,7 @@ void DataProcessingDevice::Run()
13771377 std::atomic<size_t > numberOfUnscheduledSinceLastScheduled = 0 ;
13781378 std::atomic<size_t > numberOfUnscheduled = 0 ;
13791379 std::atomic<size_t > numberOfScheduled = 0 ;
1380+ std::atomic<size_t > nextWarnAt = 1 ;
13801381 };
13811382 static SchedulingStats schedulingStats;
13821383 O2_SIGNPOST_ID_GENERATE (sid, scheduling);
@@ -1387,6 +1388,7 @@ void DataProcessingDevice::Run()
13871388 schedulingStats.lastScheduled = uv_now (state.loop );
13881389 schedulingStats.numberOfScheduled ++;
13891390 schedulingStats.numberOfUnscheduledSinceLastScheduled = 0 ;
1391+ schedulingStats.nextWarnAt = 1 ;
13901392 O2_SIGNPOST_EVENT_EMIT (scheduling, sid, " Run" , " Enough resources to schedule computation on stream %d" , streamRef.index );
13911393 if (dplEnableMultithreding) [[unlikely]] {
13921394 stream.task = &handle;
@@ -1396,12 +1398,12 @@ void DataProcessingDevice::Run()
13961398 run_completion (&handle, 0 );
13971399 }
13981400 } else {
1399- if (schedulingStats.numberOfUnscheduledSinceLastScheduled > 100 ||
1400- (uv_now (state.loop ) - schedulingStats.lastScheduled ) > 30000 ) {
1401+ if (schedulingStats.numberOfUnscheduledSinceLastScheduled >= schedulingStats.nextWarnAt ) {
14011402 O2_SIGNPOST_EVENT_EMIT_WARN (scheduling, sid, " Run" ,
14021403 " Not enough resources to schedule computation. %zu skipped so far. Last scheduled at %zu. Data is not lost and it will be scheduled again." ,
14031404 schedulingStats.numberOfUnscheduledSinceLastScheduled .load (),
14041405 schedulingStats.lastScheduled .load ());
1406+ schedulingStats.nextWarnAt = schedulingStats.nextWarnAt * 2 ;
14051407 } else {
14061408 O2_SIGNPOST_EVENT_EMIT (scheduling, sid, " Run" ,
14071409 " Not enough resources to schedule computation. %zu skipped so far. Last scheduled at %zu. Data is not lost and it will be scheduled again." ,
0 commit comments