From: Veaceslav Falico <vfalico@redhat.com>
To: Nikolay Aleksandrov <nikolay@redhat.com>
Cc: netdev@vger.kernel.org, fubar@us.ibm.com, andy@greyhouse.net,
davem@davemloft.net, linux@8192.net, nicolas.2p.debian@free.fr,
rick.jones2@hp.com
Subject: Re: [PATCH net-next 4/6] bonding: don't validate arp if we don't have to
Date: Thu, 20 Jun 2013 10:43:22 +0200 [thread overview]
Message-ID: <20130620084322.GJ26116@redhat.com> (raw)
In-Reply-To: <51C22E58.5080209@redhat.com>
On Thu, Jun 20, 2013 at 12:19:04AM +0200, Nikolay Aleksandrov wrote:
>On 19/06/13 19:34, Veaceslav Falico wrote:
>> Currently, we validate all the incoming arps if arp_validate not 0.
>> However, we don't have to validate backup slaves if arp_validate == active
>> and vice versa, so return early in bond_arp_rcv() in these cases.
>>
>> It works correctly now because we verify arp_validate in slave_last_rx(),
>> however we're just doing useless work in bond_arp_rcv().
>>
>> Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
>> ---
>> drivers/net/bonding/bond_main.c | 4 ++++
>> 1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>> index b69c7f0..2cfbb2e 100644
>> --- a/drivers/net/bonding/bond_main.c
>> +++ b/drivers/net/bonding/bond_main.c
>> @@ -2624,6 +2624,10 @@ static int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond,
>> return RX_HANDLER_ANOTHER;
>>
>> read_lock(&bond->lock);
>> +
>> + if (!slave_do_arp_validate(bond, slave))
>> + goto out_unlock;
>> +
>> alen = arp_hdr_len(bond->dev);
>>
>> pr_debug("bond_arp_rcv: bond %s skb->dev %s\n",
>Hm, I think this issue runs deeper because recv_probe can be wrong and
>also if arp_validate is enabled while the bond is running then
>recv_probe is not set (or unset for that matter if disabled). I have a
>patch which needs little more work for some time now in my queue that
>fixes this, but if you'd like to fix it I'd suggest addressing that
>issue (recv_probe), because then you can just drop these checks and
>improve performance when disabled (after it's been enabled).
Yup, recv_probe value is really poorly synced with the arp_validate, I'll
try to take a look at it when I have time and in case you won't fix it by
that time :).
However, I don't think we should drop this check even in this case. This
check just verifies if we should validate this exact slave - being it
active or backup, and considering the value of arp_validate (which can be
active/backup/both).
Maybe I've understood you wrong, though :).
>This got a bit confusing when I read it :-)
>
>Cheers,
> Nik
next prev parent reply other threads:[~2013-06-20 8:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-19 17:34 [PATCH net-next 4/6] bonding: don't validate arp if we don't have to Veaceslav Falico
2013-06-19 22:19 ` Nikolay Aleksandrov
2013-06-20 8:43 ` Veaceslav Falico [this message]
2013-06-20 13:43 ` Nikolay Aleksandrov
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=20130620084322.GJ26116@redhat.com \
--to=vfalico@redhat.com \
--cc=andy@greyhouse.net \
--cc=davem@davemloft.net \
--cc=fubar@us.ibm.com \
--cc=linux@8192.net \
--cc=netdev@vger.kernel.org \
--cc=nicolas.2p.debian@free.fr \
--cc=nikolay@redhat.com \
--cc=rick.jones2@hp.com \
/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.