* [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
@ 2015-07-17 20:00 Sowmini Varadhan
2015-07-17 23:07 ` Joe Perches
0 siblings, 1 reply; 9+ messages in thread
From: Sowmini Varadhan @ 2015-07-17 20:00 UTC (permalink / raw)
To: netdev; +Cc: sowmini.varadhan, alexander.duyck, davem
__vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
which triggers unaligned access messages, so rearrange vxlan_fdb
to avoid this in the most non-intrusive way.
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
---
v2: Alexander Duyck comments: make eth_addr[] 64b aligned.
drivers/net/vxlan.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 34c519e..ec86a11 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -106,9 +106,9 @@ struct vxlan_fdb {
unsigned long updated; /* jiffies */
unsigned long used;
struct list_head remotes;
+ u8 eth_addr[ETH_ALEN];
u16 state; /* see ndm_state */
u8 flags; /* see ndm_flags */
- u8 eth_addr[ETH_ALEN];
};
/* Pseudo network device */
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-17 20:00 [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac Sowmini Varadhan
@ 2015-07-17 23:07 ` Joe Perches
2015-07-18 1:18 ` David Miller
2015-07-18 4:46 ` Sowmini Varadhan
0 siblings, 2 replies; 9+ messages in thread
From: Joe Perches @ 2015-07-17 23:07 UTC (permalink / raw)
To: Sowmini Varadhan; +Cc: netdev, alexander.duyck, davem
On Fri, 2015-07-17 at 22:00 +0200, Sowmini Varadhan wrote:
> __vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
> which triggers unaligned access messages, so rearrange vxlan_fdb
> to avoid this in the most non-intrusive way.
What arch does this?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-17 23:07 ` Joe Perches
@ 2015-07-18 1:18 ` David Miller
2015-07-18 18:06 ` Joe Perches
2015-07-18 4:46 ` Sowmini Varadhan
1 sibling, 1 reply; 9+ messages in thread
From: David Miller @ 2015-07-18 1:18 UTC (permalink / raw)
To: joe; +Cc: sowmini.varadhan, netdev, alexander.duyck
From: Joe Perches <joe@perches.com>
Date: Fri, 17 Jul 2015 16:07:02 -0700
> On Fri, 2015-07-17 at 22:00 +0200, Sowmini Varadhan wrote:
>> __vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
>> which triggers unaligned access messages, so rearrange vxlan_fdb
>> to avoid this in the most non-intrusive way.
>
> What arch does this?
Sparc, MIPS, etc.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-17 23:07 ` Joe Perches
2015-07-18 1:18 ` David Miller
@ 2015-07-18 4:46 ` Sowmini Varadhan
1 sibling, 0 replies; 9+ messages in thread
From: Sowmini Varadhan @ 2015-07-18 4:46 UTC (permalink / raw)
To: Joe Perches; +Cc: netdev, alexander.duyck, davem
On (07/17/15 16:07), Joe Perches wrote:
> On Fri, 2015-07-17 at 22:00 +0200, Sowmini Varadhan wrote:
> > __vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
> > which triggers unaligned access messages, so rearrange vxlan_fdb
> > to avoid this in the most non-intrusive way.
>
> What arch does this?
sparc.
BTW, I was also getting a lot of alignment errors from
vxlan_xmit_skb (vxh comes out unaligned) for the IPv6 path.
I did not have time to investigate/fix this correctly- not sure
if this is specific to v6.
--Sowmini
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-18 1:18 ` David Miller
@ 2015-07-18 18:06 ` Joe Perches
2015-07-19 5:23 ` David Miller
2015-07-19 12:01 ` Sowmini Varadhan
0 siblings, 2 replies; 9+ messages in thread
From: Joe Perches @ 2015-07-18 18:06 UTC (permalink / raw)
To: David Miller; +Cc: sowmini.varadhan, netdev, alexander.duyck
On Fri, 2015-07-17 at 18:18 -0700, David Miller wrote:
> From: Joe Perches <joe@perches.com> Date: Fri, 17 Jul 2015 16:07:02 -0700
> > On Fri, 2015-07-17 at 22:00 +0200, Sowmini Varadhan wrote:
> >> __vxlan_find_mac invokes ether_addr_equal on the eth_addr field,
> >> which triggers unaligned access messages, so rearrange vxlan_fdb
> >> to avoid this in the most non-intrusive way.
> > What arch does this?
> Sparc, MIPS, etc.
It seems that this code has had unaligned accesses
on this field even before compare_ether_addr was
converted to ether_addr_equal.
Is sparc64 the only one that emits / ratelimits that
unaligned access message? I looked a little, but I
didn't find a fixup message when MIPS does unaligned
accesses. Are all the other arches silent when
fixing up unaligned accesses? Maye adding a generic
debug only ratelimited message might help remove
more of these. As it's not fatal, naybe the sparc64
message should be KERN_DEBUG/pr_debug.
---
arch/sparc/kernel/unaligned_64.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
index 62098a8..6b7aeb7 100644
--- a/arch/sparc/kernel/unaligned_64.c
+++ b/arch/sparc/kernel/unaligned_64.c
@@ -294,13 +294,9 @@ static void kernel_mna_trap_fault(int fixup_tstate_asi)
static void log_unaligned(struct pt_regs *regs)
{
- static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
+ pr_debug_ratelimited("Kernel unaligned access at TPC[%lx] %pS\n",
+ regs->tpc, (void *)regs->tpc);
- if (__ratelimit(&ratelimit)) {
- printk("Kernel unaligned access at TPC[%lx] %pS\n",
- regs->tpc, (void *) regs->tpc);
- }
-}
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
{
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-18 18:06 ` Joe Perches
@ 2015-07-19 5:23 ` David Miller
2015-07-19 12:01 ` Sowmini Varadhan
1 sibling, 0 replies; 9+ messages in thread
From: David Miller @ 2015-07-19 5:23 UTC (permalink / raw)
To: joe; +Cc: sowmini.varadhan, netdev, alexander.duyck
From: Joe Perches <joe@perches.com>
Date: Sat, 18 Jul 2015 11:06:26 -0700
> As it's not fatal, naybe the sparc64 message should be
> KERN_DEBUG/pr_debug.
It's not fatal insofar as it doesn't crash the system.
But performance wise is _IS_ fatal, and I want the kernel to bark
at the user so that they report the issue or fix it sooner rather
than later.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-18 18:06 ` Joe Perches
2015-07-19 5:23 ` David Miller
@ 2015-07-19 12:01 ` Sowmini Varadhan
2015-07-19 18:38 ` David Miller
1 sibling, 1 reply; 9+ messages in thread
From: Sowmini Varadhan @ 2015-07-19 12:01 UTC (permalink / raw)
To: Joe Perches, David Miller; +Cc: netdev, alexander.duyck
On 07/18/2015 08:06 PM, Joe Perches wrote:
> It seems that this code has had unaligned accesses
> on this field even before compare_ether_addr was
> converted to ether_addr_equal.
>
> Is sparc64 the only one that emits / ratelimits that
> unaligned access message? I looked a little, but I
> didn't find a fixup message when MIPS does unaligned
> accesses. Are all the other arches silent when
> fixing up unaligned accesses? Maye adding a generic
> debug only ratelimited message might help remove
> more of these. As it's not fatal, naybe the sparc64
> message should be KERN_DEBUG/pr_debug.
I'm confused, are we suggesting that we "fix" the unaligned
access by snuffing out the message that complains loudly and correctly
about it?
See also: large block comment above __pksb_trim
about correctly using skb_reserve(). Evidently not being
correctly done for the IPv6-vxlan code path (and possibly
for other encaps too?)
--Sowmini
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-19 12:01 ` Sowmini Varadhan
@ 2015-07-19 18:38 ` David Miller
2015-07-19 19:07 ` Joe Perches
0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2015-07-19 18:38 UTC (permalink / raw)
To: sowmini.varadhan; +Cc: joe, netdev, alexander.duyck
From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date: Sun, 19 Jul 2015 14:01:34 +0200
> On 07/18/2015 08:06 PM, Joe Perches wrote:
>
>> It seems that this code has had unaligned accesses
>> on this field even before compare_ether_addr was
>> converted to ether_addr_equal.
>>
>> Is sparc64 the only one that emits / ratelimits that
>> unaligned access message? I looked a little, but I
>> didn't find a fixup message when MIPS does unaligned
>> accesses. Are all the other arches silent when
>> fixing up unaligned accesses? Maye adding a generic
>> debug only ratelimited message might help remove
>> more of these. As it's not fatal, naybe the sparc64
>> message should be KERN_DEBUG/pr_debug.
>
> I'm confused, are we suggesting that we "fix" the unaligned
> access by snuffing out the message that complains loudly and correctly
> about it?
>
> See also: large block comment above __pksb_trim
> about correctly using skb_reserve(). Evidently not being
> correctly done for the IPv6-vxlan code path (and possibly
> for other encaps too?)
We should fix the unaligned accesses, rather than quiet the
warning.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac
2015-07-19 18:38 ` David Miller
@ 2015-07-19 19:07 ` Joe Perches
0 siblings, 0 replies; 9+ messages in thread
From: Joe Perches @ 2015-07-19 19:07 UTC (permalink / raw)
To: David Miller; +Cc: sowmini.varadhan, netdev, alexander.duyck
On Sun, 2015-07-19 at 11:38 -0700, David Miller wrote:
> From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
> Date: Sun, 19 Jul 2015 14:01:34 +0200
>
> > On 07/18/2015 08:06 PM, Joe Perches wrote:
> >
> >> It seems that this code has had unaligned accesses
> >> on this field even before compare_ether_addr was
> >> converted to ether_addr_equal.
> >>
> >> Is sparc64 the only one that emits / ratelimits that
> >> unaligned access message? I looked a little, but I
> >> didn't find a fixup message when MIPS does unaligned
> >> accesses. Are all the other arches silent when
> >> fixing up unaligned accesses? Maye adding a generic
> >> debug only ratelimited message might help remove
> >> more of these. As it's not fatal, naybe the sparc64
> >> message should be KERN_DEBUG/pr_debug.
> >
> > I'm confused, are we suggesting that we "fix" the unaligned
> > access by snuffing out the message that complains loudly and correctly
> > about it?
> >
> > See also: large block comment above __pksb_trim
> > about correctly using skb_reserve(). Evidently not being
> > correctly done for the IPv6-vxlan code path (and possibly
> > for other encaps too?)
>
> We should fix the unaligned accesses, rather than quiet the
> warning.
Definitely so, the question I have is whether or not the the
message should be able to be silenced, not just ratelimited.
I think there are likely to be occasions when, given arbitrary
protocol stacking, unaligned accesses are unavoidable.
Perhaps batman might have this as an actual issue.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-07-19 19:07 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-17 20:00 [PATCHv2 RFC net-next] net/vxlan: Fix kernel unaligned access in __vxlan_find_mac Sowmini Varadhan
2015-07-17 23:07 ` Joe Perches
2015-07-18 1:18 ` David Miller
2015-07-18 18:06 ` Joe Perches
2015-07-19 5:23 ` David Miller
2015-07-19 12:01 ` Sowmini Varadhan
2015-07-19 18:38 ` David Miller
2015-07-19 19:07 ` Joe Perches
2015-07-18 4:46 ` Sowmini Varadhan
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).