Dipankar Sarma wrote: >In article <3BC3D9ED.6050901@wipro.com> BALBIR SINGH wrote: > >>What about cases like the pci device list or any other such list. Sometimes >>you do not care if somebody added something, while you were looking through >>the list as long as you do not get illegal addresses or data. >>Wouldn't this be very useful there? Most of these lists come up >>at system startup and change rearly, but we look through them often. >> > >How often does the linux kernel need to go through the PCI device >list ? Looking at only SCSI code, it seems that not very often. >If that is the case in general, optimizing it for lockless >lookup (assuming that you use RCU or something to support deletion), >is probably an overkill. > Almost all pci drivers use the pci_find_slot or some functionality that requires a scan of all the pci devices (to identify their device). I agree that it is not very often. > >One example of where it is useful is maintenance of route information >in either storage or network. Route information changes infrequently but >needs to be looked up for every I/O and being able to do lockless >lookup here is a good gain. > I have a question, can this kind of locking used in cases where an interrupt context may be involved. For example looking through the list of timers, we disable interrupts and grab a lock using spin_lock_irqsave(&timerlist_lock, flags) Should we just use __cli() with the RCU or something similar? or can RCU be used in such cases? Thanks, Balbir > > >Thanks >Dipankar >