to schedule() or not to schedule() ?

Kevin Diggs kevdig at hypersurf.com
Mon Aug 4 04:33:15 EST 2008


Hi,


	I have the following near the top of my cpufreq driver target routine:

while(test_and_set_bit(cf750gxmCfgChangeBit,&cf750gxvStateBits)) {
         /*
          * Someone mucking with our cfg? (I hope it is ok to call
          * schedule() here! - truth is I have no idea what I am doing
          * ... my reasoning is I want to yeild the cpu so whoever is
          * mucking around can finish)
          */
         schedule();
}

This is to prevent bad things from happening if someone is trying to 
change a parameter for the driver via sysfs while the target routine is 
running. Fortunately, because I had a bug where this bit was not getting 
cleared on one of the paths through the target routine ... I now know it 
is not safe to call schedule (it got stuck in there - knocked out my adb 
keyboard! - (I think target is called from a timer that the governor 
sets up ... interrupt context?)).

	How does one very briefly yield the cpu in this context?

kevin



More information about the Linuxppc-dev mailing list