Jeff Garzik wrote:
> Is this theory, or it has been actually measured?
>
> In x86-based CPUs at least (the largest tg3 platform), branch
> prediction
> often prefers
>
> if (...)
> direct_func_1()
> else
> direct_func_2()
>
> to
>
> tp->func()
>
> For hot paths, branch prediction will almost always predict
> the correct
> path, without any need for deferenced, indirect jumps.
>
> The latter example may look more clean, but the former is probably
> faster in Real Life(tm).
>
Not measured. But with so many different workaround methods
(TG3_FLAG_MBOX_WRITE_REORDER, TG3_FLAG_TXD_MBOX_HWBUG,
TG3_FLG2_ICH_WORKAROUND, TG3_FLAG_5701_REG_WRITE_BUG, etc), it's
more like:
if (...)
direct_func_1()
else if (...)
direct_func_2()
else if (...)
direct_func_3()
else
direct_func_4()
At some point I suspect the indirect function pointer method will
become better.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html