[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <464D6F85.9090202@hartkopp.net>
Date: Fri, 18 May 2007 11:19:01 +0200
From: Oliver Hartkopp <socketcan@...tkopp.net>
To: paulmck@...ux.vnet.ibm.com, Urs Thuermann <urs@...ogud.escape.de>
CC: netdev@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Oliver Hartkopp <oliver.hartkopp@...kswagen.de>,
Urs Thuermann <urs.thuermann@...kswagen.de>
Subject: Re: [patch 2/7] CAN: Add PF_CAN core module
Hi Urs, Hello Paul,
i assume Paul refers to the can_rx_delete_all() function that adds each
receive list entry for rcu removal using the can_rx_delete RCU callback,
right?
So the idea would be to create a second RCU callback - e.g.
can_rx_delete_list() - that removes the complete list inside the RCU
callback?!?
The list removal would therefore be processed inside this new
can_rx_delete_list() in RCU context and not inside can_rx_delete_all().
@Paul: Was this your intention?
Best regards,
Oliver
Paul E. McKenney wrote:
> On Wed, May 16, 2007 at 04:51:02PM +0200, Urs Thuermann wrote:
>
>> This patch adds the CAN core functionality but no protocols or drivers.
>> No protocol implementations are included here. They come as separate
>> patches. Protocol numbers are already in include/linux/can.h.
>>
>
> Interesting! One question called out below -- why do call_rcu() on each
> piece of the struct dev_rcv_lists, instead of doing call_rcu() on the
> whole thing and having the RCU callback free up the pieces? Given that
> all the pieces are call_rcu()ed separately, there had better not be
> persistent pointers to the pieces, right?
>
> Doing it in one chunk would make the code a bit simpler and also reduce
> the RCU overhead a bit.
>
> Or am I missing something subtle here?
>
> Thanx, Paul
>
>
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists