@@ -1747,7 +1747,7 @@ func makeNonExclusiveTest(bucket int, tests []*register.Test, flight platform.Fl
17471747 return nonExclusiveWrapper
17481748}
17491749
1750- func reserveMemoryCountForTest (t * register.Test , needed int , logger func ( format string , args ... interface {}) ) bool {
1750+ func reserveMemoryCountForTest (t * register.Test , needed int , warnOnWait bool ) bool {
17511751 reservedMemoryCountMutex .Lock ()
17521752 defer reservedMemoryCountMutex .Unlock ()
17531753 avail , err := system .GetCurrentMemAvailableMiB ()
@@ -1762,10 +1762,14 @@ func reserveMemoryCountForTest(t *register.Test, needed int, logger func(format
17621762 reservedMemoryCountMiB += needed
17631763 reserved := reservedMemoryCountMiB
17641764 t .ReservedMemoryCountMiB = needed
1765- logger ("Reserved %d MiB for %s (available: %d MiB, reserved total: %d MiB)" ,
1765+ plog . Debugf ("Reserved %d MiB for %s (available: %d MiB, reserved total: %d MiB)" ,
17661766 needed , t .Name , avail , reserved )
17671767 return true
17681768 }
1769+ logger := plog .Debugf
1770+ if warnOnWait {
1771+ logger = plog .Warningf
1772+ }
17691773 logger ("Waiting on memory to run %s: need %d MiB, effective available %d MiB (system: %d MiB, reserved: %d MiB)" ,
17701774 t .Name , needed , effective , avail , reservedMemoryCountMiB )
17711775 return false
@@ -1785,15 +1789,15 @@ func waitForMemory(h *harness.H, flight platform.Flight, t *register.Test) {
17851789 if flight .Platform () == "qemu" {
17861790 needed := getNeededMemoryMiB (t )
17871791 start := time .Now ()
1788- logger := plog . Debugf
1789- for ! reserveMemoryCountForTest (t , needed , logger ) {
1790- // After a period of time switch the logger so we get some
1792+ warnOnWait := true // warn on first wait
1793+ for ! reserveMemoryCountForTest (t , needed , warnOnWait ) {
1794+ // After a period of time switch to log a warning so we get some
17911795 // info even if debug isn't turned on.
17921796 if time .Since (start ) > 5 * time .Minute {
1793- logger = plog . Warningf
1797+ warnOnWait = true
17941798 start = time .Now () // reset counter
17951799 } else {
1796- logger = plog . Debugf
1800+ warnOnWait = false
17971801 }
17981802 // sleep between 0 and 20 seconds and try again
17991803 time .Sleep (time .Duration (rand .Intn (20 )) * time .Second )
0 commit comments