* [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
@ 2015-03-21 5:39 Mahesh Bandewar
2015-03-21 22:17 ` David Miller
0 siblings, 1 reply; 7+ messages in thread
From: Mahesh Bandewar @ 2015-03-21 5:39 UTC (permalink / raw)
To: Jay Vosburgh, Andy Gospodarek, Veaceslav Falico,
Nikolay Aleksandrov, David Miller
Cc: Mahesh Bandewar, Maciej Zenczykowski, netdev, Eric Dumazet
This patch series tries to address the issue discovered in various work-
queues and the way these handlers deal with the RTNL. Especially for
notification handling. If RTNL can not be acquired, these handlers ignore
sending notifications and just re-arm the timer. This could be very
problematic if the re-arm timer has larger value (e.g. in minutes).
Mahesh Bandewar (4):
bonding: Handle notifications during work-queue processing gracefully
bonding: Do not ignore notifications for miimon-work-queue
bonding: Do not ignore notifications for AD-work-queue
bonding: Do not ignore notifications for ARP-work-queue
drivers/net/bonding/bond_3ad.c | 21 +++++++++++---
drivers/net/bonding/bond_main.c | 64 ++++++++++++++++++++++++-----------------
include/net/bonding.h | 19 ++++++++++++
3 files changed, 74 insertions(+), 30 deletions(-)
--
2.2.0.rc0.207.ga3a616c
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
2015-03-21 5:39 [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications Mahesh Bandewar
@ 2015-03-21 22:17 ` David Miller
2015-03-22 2:04 ` Mahesh Bandewar
[not found] ` <CAF2d9jhMz4Y1ye_ofkgvXyxUJEpNnLrFjMJhHQXKbf6MSS-OVg@mail.gmail.com>
0 siblings, 2 replies; 7+ messages in thread
From: David Miller @ 2015-03-21 22:17 UTC (permalink / raw)
To: maheshb; +Cc: j.vosburgh, andy, vfalico, nikolay, maze, netdev, edumazet
From: Mahesh Bandewar <maheshb@google.com>
Date: Fri, 20 Mar 2015 22:39:15 -0700
> This patch series tries to address the issue discovered in various work-
> queues and the way these handlers deal with the RTNL. Especially for
> notification handling. If RTNL can not be acquired, these handlers ignore
> sending notifications and just re-arm the timer. This could be very
> problematic if the re-arm timer has larger value (e.g. in minutes).
I already made it very clear how I want this kind of problem solved.
Make the person holding the RTNL semaphore do the notification work
for you.
All of this deferral stuff is error prone and sloppy.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
2015-03-21 22:17 ` David Miller
@ 2015-03-22 2:04 ` Mahesh Bandewar
[not found] ` <CAF2d9jhMz4Y1ye_ofkgvXyxUJEpNnLrFjMJhHQXKbf6MSS-OVg@mail.gmail.com>
1 sibling, 0 replies; 7+ messages in thread
From: Mahesh Bandewar @ 2015-03-22 2:04 UTC (permalink / raw)
To: David Miller
Cc: j.vosburgh, andy, vfalico, nikolay, Maciej Żenczykowski,
linux-netdev, Eric Dumazet
On Sat, Mar 21, 2015 at 3:17 PM, David Miller <davem@davemloft.net> wrote:
>
> From: Mahesh Bandewar <maheshb@google.com>
> Date: Fri, 20 Mar 2015 22:39:15 -0700
>
> > This patch series tries to address the issue discovered in various work-
> > queues and the way these handlers deal with the RTNL. Especially for
> > notification handling. If RTNL can not be acquired, these handlers ignore
> > sending notifications and just re-arm the timer. This could be very
> > problematic if the re-arm timer has larger value (e.g. in minutes).
>
> I already made it very clear how I want this kind of problem solved.
>
> Make the person holding the RTNL semaphore do the notification work
> for you.
>
> All of this deferral stuff is error prone and sloppy.
I think you missed my earlier reply to your message. In summary, the
notification deferral is 1ms which should not cause any trashing; more
over with that suggested approach the rtnl-owner will have to do your
job and will be subjected to the latencies which may be undesirable.
OTOH this patch series is not adding any new deferral work, but just
making it bug-free.
Thanks,
--mahesh..
^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CAF2d9jhMz4Y1ye_ofkgvXyxUJEpNnLrFjMJhHQXKbf6MSS-OVg@mail.gmail.com>]
* Re: [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
[not found] ` <CAF2d9jhMz4Y1ye_ofkgvXyxUJEpNnLrFjMJhHQXKbf6MSS-OVg@mail.gmail.com>
@ 2015-03-22 2:16 ` David Miller
2015-03-22 2:23 ` Maciej Żenczykowski
0 siblings, 1 reply; 7+ messages in thread
From: David Miller @ 2015-03-22 2:16 UTC (permalink / raw)
To: maheshb; +Cc: j.vosburgh, andy, vfalico, nikolay, maze, netdev, edumazet
From: Mahesh Bandewar <maheshb@google.com>
Date: Sat, 21 Mar 2015 19:01:29 -0700
> I think you missed my earlier reply to your message. In summary, the
> notification deferral is 1ms which should not cause any trashing;
> more over with that suggested approach the rtnl-owner will have to
> do your job and will be subjected to the latencies which may be
> undesirable.
Someone has to do the work, and if the rtnl-owner does it we do not
incur all of the overhead the resubmission entails.
> OTOH this patch series is not adding any new deferral work, but just
> making it bug-free.
It's continuing a bad approach to the problem.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
2015-03-22 2:16 ` David Miller
@ 2015-03-22 2:23 ` Maciej Żenczykowski
2015-03-22 2:36 ` David Miller
0 siblings, 1 reply; 7+ messages in thread
From: Maciej Żenczykowski @ 2015-03-22 2:23 UTC (permalink / raw)
To: David Miller
Cc: Mahesh Bandewar, Jay Vosburgh, Andy Gospodarek, Veaceslav Falico,
Nikolay Aleksandrov, Linux NetDev, Eric Dumazet
> Someone has to do the work, and if the rtnl-owner does it we do not
> incur all of the overhead the resubmission entails.
Are you suggesting:
- adding a global queue of (function pointer, long arg)
- changing rtnl_unlock to iterate through the queue calling
function(arg) before it actually releases the rtnl lock
?
(life might be easier if you can actually pass 2 args, but that's a
minor detail)
I guess at that point you could even have a generic method
void asynch_call_under_rtnl(function, arg) {
rtnl_callback_add_to_queue(function,arg)
if (rtnl_try_lock())
rtnl_unlock();
}
- Maciej
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications
2015-03-22 2:23 ` Maciej Żenczykowski
@ 2015-03-22 2:36 ` David Miller
[not found] ` <CAF2d9jjgfPSoBHhvD20K+5i-3ty70+kpNPK8gqe-9HKVkrrVwQ@mail.gmail.com>
0 siblings, 1 reply; 7+ messages in thread
From: David Miller @ 2015-03-22 2:36 UTC (permalink / raw)
To: maze; +Cc: maheshb, j.vosburgh, andy, vfalico, nikolay, netdev, edumazet
From: Maciej Żenczykowski <maze@google.com>
Date: Sat, 21 Mar 2015 19:23:51 -0700
>> Someone has to do the work, and if the rtnl-owner does it we do not
>> incur all of the overhead the resubmission entails.
>
> Are you suggesting:
> - adding a global queue of (function pointer, long arg)
> - changing rtnl_unlock to iterate through the queue calling
> function(arg) before it actually releases the rtnl lock
> ?
Something like that.
> I guess at that point you could even have a generic method
>
> void asynch_call_under_rtnl(function, arg) {
> rtnl_callback_add_to_queue(function,arg)
> if (rtnl_try_lock())
> rtnl_unlock();
> }
Right.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-03-22 8:20 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-21 5:39 [PATCH net-next v2 0/4] bonding work-queues, try_rtnl() & notifications Mahesh Bandewar
2015-03-21 22:17 ` David Miller
2015-03-22 2:04 ` Mahesh Bandewar
[not found] ` <CAF2d9jhMz4Y1ye_ofkgvXyxUJEpNnLrFjMJhHQXKbf6MSS-OVg@mail.gmail.com>
2015-03-22 2:16 ` David Miller
2015-03-22 2:23 ` Maciej Żenczykowski
2015-03-22 2:36 ` David Miller
[not found] ` <CAF2d9jjgfPSoBHhvD20K+5i-3ty70+kpNPK8gqe-9HKVkrrVwQ@mail.gmail.com>
2015-03-22 8:20 ` Maciej Żenczykowski
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).