lkml.org 
[lkml]   [2004]   [Jan]   [11]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 11 Jan 2004 11:01:37 +0100
FromHarald Welte <>
SubjectRe: [PATCH] Unaligend accesses nulldevname
On Thu, Jan 08, 2004 at 12:00:11AM +0100, Kurt Garloff wrote:
> Hi,
> 
> I found an excessive amount of unaligned accesses on my AXP workstation
> and tracked it down to ip_packet_match() in the ip_tables module.
> indev and outdev are not properly aligned if set to nulldevname in
> ipt_do_table().
> This destroys the benefits of comparing names in units of (long) and
> on architectures with expensive unaligned accesses (such as ia64 or
> alpha), it even hurts a lot.

Thanks for submitting your patch, this is the same bug report as
https://bugzilla.netfilter.org/cgi-bin/bugzilla/show_bug.cgi?id=84

> Find attached a patch against 2.6.0. A similar patch is needed for 2.4,
> also attached.

the fix is already in our patch-o-matic CVS tree, and I'm going to
submit this to davem together with some other fixes I have pending.

> Looking at ip_packet_match(), I have two more thoughts:
> * It should not be inlined. It's too large to benefit from inlining,
>   IMHO. (OTOH, it's only called from one place, so it does not
>   really matter.)

That is the idea.  It's just split in two functions to make it more
readable.  It's never intended to be called from somewhere else.

> * There's a comment about the compiler being able to unroll the 2/4
>   (64/32bit) iter loop which is not completely appropriate: We don't
>   pass -funroll-loops, so gcc does not do it :-(
>   It would be beneficial though.

I'm not a compiler geek.  Thanks for pointing this out, I will do some
testing and look at the compiler output to see what is happening.

> Regards,
> -- 
> Kurt Garloff  <garloff@suse.de>                            Cologne, DE 
-- 
- Harald Welte <laforge@netfilter.org>             http://www.netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 13:00    [W:0.501 / U:0.190 seconds]
©2003-2008 Jasper Spaans