Re: Q: locking mechanisms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thomas Gleixner <[email protected]> writes:

> Does Documentation/listRCU.txt answer your questions ?

It doesn't answer my question.  I have code that receives network
packets by registering with dev_add_pack().  Each packet received is
then delivered to a list of receivers, where this list can contain quite
a lot of items:

	receive_function(struct sk_buff *skb, struct net_device *dev,
			struct packet_type *pt, struct net_device *orig_dev)
	{
		...
		rcu_read_lock();
                head = find_list(dev);
		hlist_for_each_entry_rcu(p, n, head, list) {
			deliver_packet_to_receiver(skb, p);
		}
		rcu_read_unlock();
	}

The deliver_packet_to_receiver() function finally ends up in a call to
sock_queue_rcv_skb().

My questions was, wether I should worry to "hold" the rcu_read_lock for
the time of the list traversal since the list can be quite long and
preemption is disabled between rcu_read_lock() and rcu_read_unlock().


urs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux