Increase expiration timeout for Perf bots

Bug: b/266386195
Change-Id: Ia9ba87680f81643e299a8cf242cbf3bf34359b10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291329
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39194}
diff --git a/infra/specs/client.webrtc.perf.json b/infra/specs/client.webrtc.perf.json
index 8044a91..680556a 100644
--- a/infra/specs/client.webrtc.perf.json
+++ b/infra/specs/client.webrtc.perf.json
@@ -34,6 +34,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -69,6 +70,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -112,6 +114,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -147,6 +150,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -190,6 +194,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -225,6 +230,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -268,6 +274,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -303,6 +310,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -346,6 +354,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800,
@@ -385,6 +394,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -420,6 +430,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -459,6 +470,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -495,6 +507,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -533,6 +546,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -571,6 +585,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
@@ -606,6 +621,7 @@
               "pool": "WebRTC-perf"
             }
           ],
+          "expiration": 10800,
           "hard_timeout": 10800,
           "idempotent": false,
           "io_timeout": 10800
diff --git a/infra/specs/mixins.pyl b/infra/specs/mixins.pyl
index 81582da..d803419 100644
--- a/infra/specs/mixins.pyl
+++ b/infra/specs/mixins.pyl
@@ -117,6 +117,11 @@
   'isolate_profile_data': {
     'isolate_profile_data': True
   },
+  'limited-capacity': {
+    'swarming': {
+      'expiration': 10800
+    }
+  },
   'linux-bionic': {
     'swarming': {
       'dimensions': {
diff --git a/infra/specs/mixins_webrtc.pyl b/infra/specs/mixins_webrtc.pyl
index 4af7b55..47004f2 100644
--- a/infra/specs/mixins_webrtc.pyl
+++ b/infra/specs/mixins_webrtc.pyl
@@ -64,6 +64,14 @@
       },
     },
   },
+  'limited-capacity': {
+    # Sometimes there are multiple tests that can be run only on one machine.
+    # We need to increase timeouts so the tests dont expire before the machine is freed.
+    # Using 3h expiration timeout to align with `timeout-3h` mixin used for per tests.
+    'swarming': {
+      'expiration': 10800,
+    },
+  },
   'mac-m1-cpu': {
     'swarming': {
       'dimensions': {
diff --git a/infra/specs/waterfalls.pyl b/infra/specs/waterfalls.pyl
index ad2265d..aac6d08 100644
--- a/infra/specs/waterfalls.pyl
+++ b/infra/specs/waterfalls.pyl
@@ -239,7 +239,7 @@
   },
   {
     'name': 'client.webrtc.perf',
-    'mixins': [],
+    'mixins': ['limited-capacity'],
     'machines': {
       'Perf Android32 (O Pixel2)': {
         'mixins': [