From: "David S. Miller" <davem@davemloft.net>
To: Patrick McHardy <kaber@trash.net>
Cc: netdev@oss.sgi.com, netfilter-devel@lists.netfilter.org,
bdschuym@pandora.be, bridge@osdl.org, snort2004@mail.ru,
rusty@rustcorp.com.au, dwmw2@infradead.org, ak@suse.de,
shemminger@osdl.org, gandalf@wlug.westbo.se
Subject: [Bridge] Re: [PATCH/RFC] Reduce call chain length in netfilter
Date: Thu, 27 Jan 2005 11:47:26 -0800 [thread overview]
Message-ID: <20050127114726.2205b4ed.davem@davemloft.net> (raw)
In-Reply-To: <41F929FA.3050800@trash.net>
On Thu, 27 Jan 2005 18:50:50 +0100
Patrick McHardy <kaber@trash.net> wrote:
> From what I can see it doesn't generate tail-calls currently:
Indeed... It even doesn't do this on Sparc64 either, even for
the okfn(skb) call which I was sure it would.
It won't tail-call for function pointers for some strance reason
as exhibited by this simple test:
struct sk_buff {
int foo;
};
int invoke(struct sk_buff *skb, int (*okfn)(struct sk_buff *))
{
return okfn(skb);
}
extern int test_func(struct sk_buff *);
int invoke2(struct sk_buff *skb)
{
return test_func(skb);
}
In the generated asm on sparc64, invoke2() gets a tail-call
whereas invoke() does not. Hmmm...
WARNING: multiple messages have this Message-ID (diff)
From: "David S. Miller" <davem@davemloft.net>
To: Patrick McHardy <kaber@trash.net>
Cc: bdschuym@pandora.be, netdev@oss.sgi.com,
netfilter-devel@lists.netfilter.org, snort2004@mail.ru,
rusty@rustcorp.com.au, ak@suse.de, bridge@osdl.org,
gandalf@wlug.westbo.se, dwmw2@infradead.org, shemminger@osdl.org
Subject: Re: [PATCH/RFC] Reduce call chain length in netfilter
Date: Thu, 27 Jan 2005 11:47:26 -0800 [thread overview]
Message-ID: <20050127114726.2205b4ed.davem@davemloft.net> (raw)
In-Reply-To: <41F929FA.3050800@trash.net>
On Thu, 27 Jan 2005 18:50:50 +0100
Patrick McHardy <kaber@trash.net> wrote:
> From what I can see it doesn't generate tail-calls currently:
Indeed... It even doesn't do this on Sparc64 either, even for
the okfn(skb) call which I was sure it would.
It won't tail-call for function pointers for some strance reason
as exhibited by this simple test:
struct sk_buff {
int foo;
};
int invoke(struct sk_buff *skb, int (*okfn)(struct sk_buff *))
{
return okfn(skb);
}
extern int test_func(struct sk_buff *);
int invoke2(struct sk_buff *skb)
{
return test_func(skb);
}
In the generated asm on sparc64, invoke2() gets a tail-call
whereas invoke() does not. Hmmm...
next prev parent reply other threads:[~2005-01-27 19:47 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1131604877.20041218092730@mail.ru.suse.lists.linux.kernel>
2004-12-18 7:50 ` do_IRQ: stack overflow: 872 Andi Kleen
2004-12-18 11:12 ` Bart De Schuymer
2004-12-18 11:14 ` Andi Kleen
2004-12-18 11:51 ` Bart De Schuymer
2004-12-18 13:53 ` Andi Kleen
2004-12-18 16:07 ` Re[2]: " Crazy AMD K7
2004-12-18 16:46 ` Bart De Schuymer
2005-01-07 17:05 ` David Woodhouse
2005-01-07 18:00 ` [Bridge] " Stephen Hemminger
2005-01-07 18:00 ` Stephen Hemminger
2005-01-07 18:06 ` [Bridge] " David Woodhouse
2005-01-07 18:06 ` David Woodhouse
2005-01-07 21:27 ` [Bridge] " Bart De Schuymer
2005-01-07 21:27 ` Bart De Schuymer
2005-01-18 21:57 ` [Bridge] " David S. Miller
2005-01-18 21:57 ` David S. Miller
2005-01-22 22:30 ` [Bridge] [PATCH/RFC] Reduce call chain length in netfilter (was: Re: do_IRQ: stack overflow: 872..) Bart De Schuymer
2005-01-22 22:30 ` Bart De Schuymer
2005-01-22 23:22 ` [Bridge] " Martin Josefsson
2005-01-22 23:22 ` Martin Josefsson
2005-01-23 12:40 ` [Bridge] " Bart De Schuymer
2005-01-23 12:40 ` Bart De Schuymer
2005-01-23 16:08 ` [Bridge] " Martin Josefsson
2005-01-23 16:08 ` Martin Josefsson
2005-01-26 6:05 ` [Bridge] " David S. Miller
2005-01-26 6:05 ` David S. Miller
2005-01-26 9:08 ` [Bridge] " Bart De Schuymer
2005-01-26 9:08 ` Bart De Schuymer
2005-01-26 23:49 ` [Bridge] Re: [PATCH/RFC] Reduce call chain length in netfilter Patrick McHardy
2005-01-26 23:49 ` Patrick McHardy
2005-01-27 7:18 ` [Bridge] " David S. Miller
2005-01-27 7:18 ` David S. Miller
2005-01-27 17:50 ` [Bridge] " Patrick McHardy
2005-01-27 17:50 ` Patrick McHardy
2005-01-27 19:47 ` David S. Miller [this message]
2005-01-27 19:47 ` David S. Miller
2005-01-27 21:16 ` [Bridge] " Bart De Schuymer
2005-01-27 21:16 ` Bart De Schuymer
2005-01-27 22:48 ` [Bridge] " Patrick McHardy
2005-01-27 22:48 ` Patrick McHardy
2005-01-27 23:24 ` [Bridge] " David S. Miller
2005-01-27 23:24 ` David S. Miller
2005-01-28 0:08 ` [Bridge] " Patrick McHardy
2005-01-28 0:08 ` Patrick McHardy
2005-01-28 0:29 ` [Bridge] " Rusty Russell
2005-01-28 0:29 ` Rusty Russell
2005-01-28 1:10 ` [Bridge] " David S. Miller
2005-01-28 1:10 ` David S. Miller
2005-01-28 1:32 ` [Bridge] " Rusty Russell
2005-01-28 1:32 ` Rusty Russell
2005-01-28 1:35 ` [Bridge] " Patrick McHardy
2005-01-28 1:35 ` Patrick McHardy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050127114726.2205b4ed.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=ak@suse.de \
--cc=bdschuym@pandora.be \
--cc=bridge@osdl.org \
--cc=dwmw2@infradead.org \
--cc=gandalf@wlug.westbo.se \
--cc=kaber@trash.net \
--cc=netdev@oss.sgi.com \
--cc=netfilter-devel@lists.netfilter.org \
--cc=rusty@rustcorp.com.au \
--cc=shemminger@osdl.org \
--cc=snort2004@mail.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.