<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>I can understand that you are doing this only for test and study purpose, rather than use this in real scenario.</div><div><br></div><div>It is safe to sleep after you get a spinlock, although it is not reasonable to use spinlock if you need to sleep.</div><div>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.</div><div><br></div><div><br>在 2013年12月25日,18:15,"SaNtosh kuLkarni" &lt;<a href="mailto:santosh.yesoptus@gmail.com">santosh.yesoptus@gmail.com</a>&gt; 写道:<br><br></div><div><div dir="ltr">Hi,<div><br></div><div>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&nbsp;schedule_timeout&nbsp;after say setting the current task to&nbsp;Interruptible state&nbsp;'cause you are waiting for some user space code to fill in some buffer from which you want to read.</div>
<div>So my doubt is simple, is it safe to acquire a spinlock and use schedule_timeout.</div><div>I assume the task is put in the run queue and will "ALWAYS" be&nbsp;scheduled&nbsp;back after the specified delay in schedule_timeout.<br clear="all">
<div><br></div>-- <br><b style="color:rgb(102,102,204)">Regards,<br>Santosh</b><br>
</div></div>
</div><div><span>_______________________________________________</span><br><span>Kernelnewbies mailing list</span><br><span><a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a></span><br><span><a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a></span><br></div></body></html>