Re: [PATCH] net: filter: Convert the BPF VM to threaded code
From: Hagen Paul Pfeifer <hidden>
Date: 2011-08-01 18:16:56
From: Hagen Paul Pfeifer <hidden>
Date: 2011-08-01 18:16:56
* Rui Ueyama | 2011-07-29 01:10:26 [-0700]:
Convert the BPF VM to threaded code to improve performance. The BPF VM is basically a big for loop containing a switch statement. That is slow because for each instruction it checks the for loop condition and does the conditional branch of the switch statement. This patch eliminates the conditional branch, by replacing it with jump table using GCC's labels-as-values feature. The for loop condition check can also be removed, because the filter code always end with a RET instruction.
With commit 01f2f3f6ef4d076c I reworked the BPF code so that gcc is in the ability to generate a jump table, I double checked this. Not sure what happened in the meantime. Hagen