From: Steffen Klassert <steffen.klassert@secunet.com>
To: Martin KaFai Lau <kafai@fb.com>
Cc: <netdev@vger.kernel.org>,
Hannes Frederic Sowa <hannes@stressinduktion.org>,
<kernel-team@fb.com>
Subject: Re: [RFC PATCH net-next 10/10] ipv6: Create percpu rt6_info
Date: Mon, 13 Apr 2015 12:59:44 +0200 [thread overview]
Message-ID: <20150413105944.GE8928@secunet.com> (raw)
In-Reply-To: <1428717576-1040383-11-git-send-email-kafai@fb.com>
On Fri, Apr 10, 2015 at 06:59:36PM -0700, Martin KaFai Lau wrote:
> diff --git a/include/uapi/linux/ipv6_route.h b/include/uapi/linux/ipv6_route.h
> index 2be7bd1..f6598d1 100644
> --- a/include/uapi/linux/ipv6_route.h
> +++ b/include/uapi/linux/ipv6_route.h
> @@ -34,6 +34,7 @@
> #define RTF_PREF(pref) ((pref) << 27)
> #define RTF_PREF_MASK 0x18000000
>
> +#define RTF_PCPU 0x40000000
This percpu flag is something internal, should IMO not be added
to the uapi.
> @@ -1978,8 +2100,13 @@ static void ip6_rt_copy_init(struct rt6_info *rt,
> static struct rt6_info *ip6_rt_cache_alloc(struct rt6_info *ort,
> const struct in6_addr *dest)
> {
> - struct rt6_info *rt = ip6_dst_alloc(dev_net(ort->dst.dev), ort->dst.dev,
> - 0, ort->rt6i_table);
> + struct rt6_info *rt;
> +
> + if (ort->rt6i_flags & RTF_PCPU)
> + ort = (struct rt6_info *)ort->dst.from;
> +
> + rt = __ip6_dst_alloc(dev_net(ort->dst.dev), ort->dst.dev,
> + 0, ort->rt6i_table);
Why don't you allocate the percpu resources for cached routes?
I think using ip6_dst_alloc() would be better here, cached routes
could benefit from this too. And in particular rt6_release() tries
to free the percpu resources unconditionally when the route is removed
from the fib tree. This crashes if the percpu resources are not allocated.
The rest of the patchset looks good.
Thanks!
next prev parent reply other threads:[~2015-04-13 10:59 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-11 1:59 [RFC PATCH net-next 00/10] ipv6: Only create RTF_CACHE route after encountering pmtu exception Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 01/10] ipv6: Remove external dependency on rt6i_dst and rt6i_src Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 02/10] ipv6: Remove external dependency on rt6i_gateway and RTF_ANYCAST Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 03/10] ipv6: Combine rt6_alloc_cow and rt6_alloc_clone Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 04/10] ipv6: Only create RTF_CACHE routes after encountering pmtu exception Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 05/10] ipv6: Allow pmtu update on /128 via gateway route Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 06/10] ipv6: Avoid deleting RTF_CACHE route from ip6_route_del() Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 07/10] ipv6: Extend the route lookups to low priority metrics Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 08/10] ipv6: Do not use inetpeer when creating RTF_CACHE route for /128 via gateway entry Martin KaFai Lau
2015-04-13 11:06 ` Steffen Klassert
2015-04-13 17:51 ` Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 09/10] ipv6: Break up ip6_rt_copy() Martin KaFai Lau
2015-04-11 1:59 ` [RFC PATCH net-next 10/10] ipv6: Create percpu rt6_info Martin KaFai Lau
2015-04-13 10:59 ` Steffen Klassert [this message]
2015-04-13 20:16 ` Martin KaFai Lau
2015-04-13 21:46 ` Hannes Frederic Sowa
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=20150413105944.GE8928@secunet.com \
--to=steffen.klassert@secunet.com \
--cc=hannes@stressinduktion.org \
--cc=kafai@fb.com \
--cc=kernel-team@fb.com \
--cc=netdev@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).