Re: [PATCH][IPv6] separation xfrm_lookup from ip6_dst_lookup
From: David S. Miller <hidden>
Date: 2004-08-09 23:35:20
On Tue, 03 Aug 2004 02:00:15 -0700 (PDT) YOSHIFUJI Hideaki / $B5HF#1QL@(B [off-list ref] wrote:
In article [ref] (at Sun, 1 Aug 2004 19:51:35 -0700), "David S. Miller" [off-list ref] says:quoted
On Fri, 30 Jul 2004 17:12:05 +0900 Kazunori Miyazawa [off-list ref] wrote:quoted
I consider copying flowi(fl_rt) uses too much stack at the moment. I'll re-send the fixed patch again.I agree, and let's defer this patch until we resolve that.Is the overhead for allocating memory okay? Or, do we allcoate some per-cpu memory while ipv6.o initalization phase? (check: lock? preemption?) Or, will we allocate fl (and fl_rt) per sock{} (ipv6_pinfo{})? (ditto.) We have similar stack usage in other codes, and I would fix them at the same time.
I think memory allocation will make it worse. Instead, I would try to arrange order of events such that single stack copy can be modified. Something like: fl.foo = a; fl.bar = b; x = flow_lookup(&fl); fl.foo = a_2; y = other_lookup(&fl); And I believe this is possible in most if not all of these cases.