Re: is synchronize_net in inet_register_protosw necessary?

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

 



On Thu, Jun 16, 2005 at 10:15:02AM -0700, Paul E. McKenney wrote:
> On Tue, Jun 14, 2005 at 11:18:08PM +0900, junjie cai wrote:
> > hi all.
> > i am a newbie to linux kernel.
> > in a arm926 board i found that it took about 30ms to finish
> > the (net/ipv4/af_inet.c:898) inet_register_protosw
> > because of the synchronize_net call during profiling.
> > synchronize_net finally calls synchronize_rcu, so i think
> > this is to make the change visiable after a list_add_rcu.
> > but according to the Document/listRCU.txt it seems that
> > a list insertation does not necessarily do call_rcu etc.
> > may i have any mistakes, please kindly tell me.
> 
> From a strict RCU viewpoint, you are quite correct.  But sometimes
> the overall locking protocol (which almost always includes other things
> besides just RCU) places additional constraints on the code.  My guess is
> that the networking folks needed to ensure that the new protocol is seen
> by all packets that are received after inet_register_protosw() returns.
> 
> But I need to defer to networking guys on this one.

Hello, Junjie,

Ran into one of the networking guys off-list.  Apparently, the
synchronize_net() is there out of paranoia.  It might be necessary,
but he could not think of a reason for its being there.  If you want
to shave 30ms off of your boot time by removing it, here is his
suggested test procedure:

o	Write a small dummy protocol as a module.

o	On an SMP machine, have one process repeated modprobe/rmmod
	while another process repeatedly does socket() calls for
	the dummy protocol.

							Thanx, Paul
-
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