From: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> Date: Tue, 20 Feb 2024 22:03:39 +0100 > The BPF_TEST_RUN code in XDP live frame mode creates a new page pool > each time it is called and uses that to allocate the frames used for the > XDP run. This works well if the syscall is used with a high repetitions > number, as it allows for efficient page recycling. However, if used with > a small number of repetitions, the overhead of creating and tearing down > the page pool is significant, and can even lead to system stalls if the > syscall is called in a tight loop. > > Now that we have a persistent system page pool instance, it becomes > pretty straight forward to change the test_run code to use it. The only > wrinkle is that we can no longer rely on a custom page init callback > from page_pool itself; instead, we change the test_run code to write a > random cookie value to the beginning of the page as an indicator that > the page has been initialised and can be re-used without copying the > initial data again. > > The cookie is a random 128-bit value, which means the probability that > we will get accidental collisions (which would lead to recycling the > wrong page values and reading garbage) is on the order of 2^-128. This > is in the "won't happen before the heat death of the universe" range, so > this marking is safe for the intended usage. > > Reviewed-by: Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> > Tested-by: Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> > Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> Hey, What's the status of this series, now that the window is open? Thanks, Olek