waitForProgsLoaded() - reduce log spaminess am: 2090e3449d am: b1b3cfda56
Original change: https://android-review.googlesource.com/c/platform/system/bpf/+/1336224
Change-Id: I88b5c5a62f4e5d146ca08e9878c18aca1e68a203
diff --git a/libbpf_android/Loader.cpp b/libbpf_android/Loader.cpp
index 5a65c1b..da6a109 100644
--- a/libbpf_android/Loader.cpp
+++ b/libbpf_android/Loader.cpp
@@ -665,12 +665,21 @@
return ret;
}
+static bool waitSecondsForProgsLoaded(int seconds) {
+ bool ok =
+ android::base::WaitForProperty("bpf.progs_loaded", "1", std::chrono::seconds(seconds));
+ if (!ok) ALOGW("Waited %ds for bpf.progs_loaded, still waiting...", seconds);
+ return ok;
+}
+
void waitForProgsLoaded() {
if (!android::bpf::isBpfSupported()) return;
- while (!android::base::WaitForProperty("bpf.progs_loaded", "1", std::chrono::seconds(5))) {
- ALOGW("Waited 5s for bpf.progs_loaded, still waiting...");
- }
+ if (waitSecondsForProgsLoaded(5)) return;
+ if (waitSecondsForProgsLoaded(10)) return;
+ if (waitSecondsForProgsLoaded(20)) return;
+ while (!waitSecondsForProgsLoaded(60))
+ ; // loop until success
}
} // namespace bpf