Re: [PATCH net-next-2.6] filter: optimize sk_run_filter

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Eric Dumazet
Date: Friday, November 19, 2010 - 9:55 am

Le vendredi 19 novembre 2010 à 08:21 -0800, David Miller a écrit :


Compiler is OK IMHO in this case. It does exactly what is required.

Compiler cannot load fentry->k before the switch() if some expression
dont use it, as it could trigger a fault.

After the "f_k = fentry->k;" commit, it was requested to do so.

Unfortunatly on x86_32 it also chose that f_k was more valuable in a cpu
register and accumulator A lost its register to get a stack slot
instead.

Not many BPF instructions use K, and if used, its used _once_ per BPF
instruction. There is no real gain to put it on a register, but code
size if (and only if) it is held in a cpu register, because each
assembler instruction using a register instead of stack is a bit
shorter.

In the end, I believe the "f_k = fentry->k;" was a good looking idea,
and good for some arches, but we forgot x86_32 (and probably some others)
have few available registers to play with.

Have a good week end !



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] net: reduce the lines of code, Changli Gao, (Thu Nov 18, 7:04 pm)
Re: [PATCH] net: reduce the lines of code, Hagen Paul Pfeifer, (Thu Nov 18, 11:35 pm)
Re: [PATCH] net: reduce the lines of code, Changli Gao, (Fri Nov 19, 12:17 am)
Re: [PATCH] net: reduce the lines of code, Eric Dumazet, (Fri Nov 19, 12:51 am)
[PATCH net-next-2.6] filter: cleanup codes[] init, Eric Dumazet, (Fri Nov 19, 12:56 am)
[PATCH net-next-2.6] filter: use reciprocal divide, Eric Dumazet, (Fri Nov 19, 1:04 am)
Re: [PATCH net-next-2.6] filter: use reciprocal divide, Changli Gao, (Fri Nov 19, 1:18 am)
Re: [PATCH net-next-2.6] filter: cleanup codes[] init, Changli Gao, (Fri Nov 19, 1:38 am)
Re: [PATCH net-next-2.6] filter: cleanup codes[] init, Eric Dumazet, (Fri Nov 19, 2:54 am)
[PATCH net-next-2.6] filter: optimize sk_run_filter, Eric Dumazet, (Fri Nov 19, 4:17 am)
Re: [PATCH net-next-2.6] filter: cleanup codes[] init, Changli Gao, (Fri Nov 19, 5:21 am)
[PATCH net-next-2.6 v2] filter: optimize sk_run_filter, Eric Dumazet, (Fri Nov 19, 6:16 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, David Miller, (Fri Nov 19, 9:21 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, Eric Dumazet, (Fri Nov 19, 9:55 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, David Miller, (Fri Nov 19, 10:05 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, Stephen Hemminger, (Fri Nov 19, 10:15 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, Eric Dumazet, (Fri Nov 19, 10:16 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, David Miller, (Fri Nov 19, 10:21 am)
Re: [PATCH net-next-2.6] filter: optimize sk_run_filter, David Miller, (Fri Nov 19, 10:25 am)
Re: [PATCH net-next-2.6] filter: cleanup codes[] init, David Miller, (Fri Nov 19, 11:07 am)
Re: [PATCH net-next-2.6] filter: use reciprocal divide, David Miller, (Fri Nov 19, 11:07 am)