Re: Spinlocks & schedule_timeout

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

 



I can understand that you are doing this only for test and study purpose, rather than use this in real scenario.

It is safe to sleep after you get a spinlock, although it is not reasonable to use spinlock if you need to sleep.
Let's say you have two threads:a and b. a is running on CPU 0 and b is running on CPU 1, and both of them are requiring spinlock x, suppose thread a gets x first, and it sleeps for 5 seconds, then the thread b which is running on CPU 1 have to wait for at least 5 seconds for the spinlock x, which is meaningless waiting. The task schedule on both CPU 0 and 1 are normal, CPU 0 can schedule because thread a falls to sleep although it has spinlock; CPU 1 can schedule on my ARM platform also because thread b will enable schedule on CPU 1 before polling spinlock.


在 2013年12月25日,18:15,"SaNtosh kuLkarni" <santosh.yesoptus@xxxxxxxxx> 写道:

Hi,

I wanted to verify/clarify if using schedule_timeout after acquiring a spinlock is safe?. So basically you have a situation where you are working on a critical code and you acquire a spin lock and you end up using a schedule_timeout after say setting the current task to Interruptible state 'cause you are waiting for some user space code to fill in some buffer from which you want to read.
So my doubt is simple, is it safe to acquire a spinlock and use schedule_timeout.
I assume the task is put in the run queue and will "ALWAYS" be scheduled back after the specified delay in schedule_timeout.

--
Regards,
Santosh

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux