Thread (13 messages) 13 messages, 5 authors, 2011-08-09

Re: [PATCH] net: filter: Convert the BPF VM to threaded code

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help