Messages in this thread |  | | | Date | Fri, 17 Jun 2005 10:37:37 +0900 | | From | junjie cai <> | | Subject | Re: is synchronize_net in inet_register_protosw necessary? |
| |
Hello,Paul,
Thank you very much for your reply. So may I think that it would be ok to remove the synchronize_net from inet_register_protosw on a UP platform? I am doing embeded development so I don't have SMP to do the test. I think it is ok for me to do just local modify to fit our needs. Thanks again. junjie
On 6/17/05, Paul E. McKenney <paulmck@us.ibm.com> wrote: > 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |