Decrease number of pointer derefs in nf_conntrack_core.c
Subsystems (2)
PATCH 1/1 Decrease number of pointer derefs in nf_conntrack_core.c
Hi,
Here's a small patch to decrease the number of pointer derefs in net/netfilter/nf_conntrack_core.c
Benefits of the patch:
- Fewer pointer dereferences should make the code slightly faster.
- Size of generated code is smaller
- improved readability
Please consider applying.
---
net/netfilter/nf_conntrack_core.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
orig:
text data bss dec hex filename
12636 49 760 13445 3485 net/netfilter/nf_conntrack_core.o
patched:
text data bss dec hex filename
11825 183 632 12640 3160 net/netfilter/nf_conntrack_core.o
net/netfilter/nf_conntrack_core.c +4 -3
@@ -1129,6 +1129,7 @@ static inline int refresh_timer(struct nint nf_conntrack_expect_related (struct nf_conntrack_expect *expect) {struct nf_conntrack_expect *i; +struct nf_conn *master = expect->master;int ret;DEBUGP ("nf_conntrack_expect_related %p\n" , related_to);
@@ -1149,9 +1150,9 @@ int nf_conntrack_expect_related(struct n } }/* Will be over limit? */ -if (expect->master->helper->max_expected && - expect->master->expecting >= expect->master->helper->max_expected) -evict_oldest_expect (expect->master); +if (master->helper->max_expected && + master->expecting >= master->helper->max_expected) +evict_oldest_expect (master);nf_conntrack_expect_insert (expect);nf_conntrack_expect_event (IPEXP_NEW , expect);
Quoted 2 lines · Jesper Juhl
Here's a small patch to decrease the number of pointer derefs in
net/netfilter/nf_conntrack_core.c
thanks, looks fine.
Patrick: please merge into your queue, too.
Signature · 5 lines
- Harald Welte <[email protected]> http://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
Quoted 7 lines · Jesper Juhl
orig:
text data bss dec hex filename
12636 49 760 13445 3485net/netfilter/nf_conntrack_core.opatched:
text data bss dec hex filename
11825 183 632 12640 3160net/netfilter/nf_conntrack_core.o
just a question - are you sure the measurements are accurate in this case? The patch looks too small to shave more than 800 bytes off .text! If it's real then something really wrong is going on in gcc-land ...
Ingo
Quoted 7 lines · Ingo Molnar
Quoted 4 lines · Jesper Juhl
orig:
text data bss dec hex filename
12636 49 760 13445 3485net/netfilter/nf_conntrack_core.o
Quoted 8 lines
Quoted 3 lines
patched:
text data bss dec hex filename
11825 183 632 12640 3160net/netfilter/nf_conntrack_core.ojust a question - are you sure the measurements are accurate in this case? The patch looks too small to shave more than 800 bytes off .text! If it's real then something really wrong is going on in gcc-land ...
I did all this with an allyesconfig kernel source and then did :
make net/netfilter/nf_conntrack_core.o
size net/netfilter/nf_conntrack_core.o
rm net/netfilter/nf_conntrack_core.o
then applied the patch and redid
make net/netfilter/nf_conntrack_core.o
size net/netfilter/nf_conntrack_core.o
So I believe the numbers should be correct, but I'm not at home atm, so I can't verify right now. I won't have a chance to look at it until tomorrow, but then I'll double-check.
--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
Quoted 24 lines · Jesper Juhl
Quoted 7 lines · Ingo Molnar
Quoted 4 lines · Jesper Juhl
orig:
text data bss dec hex filename
12636 49 760 13445 3485net/netfilter/nf_conntrack_core.oQuoted 8 lines
Quoted 3 lines
patched:
text data bss dec hex filename
11825 183 632 12640 3160net/netfilter/nf_conntrack_core.ojust a question - are you sure the measurements are accurate in this case? The patch looks too small to shave more than 800 bytes off .text! If it's real then something really wrong is going on in gcc-land ...
I did all this with an allyesconfig kernel source and then did :
makenet/netfilter/nf_conntrack_core.o
sizenet/netfilter/nf_conntrack_core.o
rmnet/netfilter/nf_conntrack_core.o
then applied the patch and redid
makenet/netfilter/nf_conntrack_core.o
sizenet/netfilter/nf_conntrack_core.o
Quoted 3 lines
So I believe the numbers should be correct, but I'm not at home atm, so I can't verify right now. I won't have a chance to look at it until tomorrow, but then I'll double-check.
I get
orig:
text data bss dec hex filename
11745 67 728 12540 30fc net/netfilter/nf_conntrack_core.o
patched:
text data bss dec hex filename
11681 67 728 12476 30bc net/netfilter/nf_conntrack_core.o
Quoted 1 line
gcc --version
gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)
Tim
Quoted 8 lines · Tim Schmielau
I get
orig:
text data bss dec hex filename
11745 67 728 12540 30fcnet/netfilter/nf_conntrack_core.opatched:
text data bss dec hex filename
11681 67 728 12476 30bcnet/netfilter/nf_conntrack_core.o
yeah, that's OK and in the expected range.
Ingo
Quoted 8 lines · Ingo Molnar
Quoted 5 lines · Tim Schmielau
I get
orig:
text data bss dec hex filename
11745 67 728 12540 30fcnet/netfilter/nf_conntrack_core.o
Quoted 6 lines
Quoted 3 lines
patched:
text data bss dec hex filename
11681 67 728 12476 30bcnet/netfilter/nf_conntrack_core.oyeah, that's OK and in the expected range.
Ingo, Tim, you are correct. I did screw up the size measurements for that one patch. Sorry about that.
--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
Quoted 9 lines · Jesper Juhl
Here's a small patch to decrease the number of pointer derefs in
net/netfilter/nf_conntrack_core.cBenefits of the patch:
- Fewer pointer dereferences should make the code slightly faster.
- Size of generated code is smaller
- improved readabilityPlease consider applying.
I've added both patches to my 2.6.16 queue, thanks Jesper.