BPF programs have gained significantly in capabilities over the last few
years and can now perform many useful operations. That said, BPF
developers have had to work around an annoying limitation until
recently: they could not use loops. This restriction was recently lifted
by a patch
set from Alexei Starovoitov that was merged for Linux 5.3. In addition to
adding support for loops, it also greatly decreases the load time of
most BPF programs.
Source: LWN.net – [$] Bounded loops in BPF for the 5.3 kernel