yield() in kernel CAN'T yield control for MOD_LOAD thread

yangshazhou at hotmail.com yangshazhou at hotmail.com
Wed Aug 25 00:09:23 PDT 2004


Hi all,
    This problem delay me for quite a long time.
    I've built two klds, I'd like to see the result one's running to the
other's. In one kld's MOD_LOAD subroutine, I make a long 'for' loop, in
which it DELAY(1000) and then call yield(curthread,NULL). When the module
was loaded by kldload, the system failed to response until the loop quit.
The loop seems like that:
 for(i=0;i<8000;i++){
    ......
  DELAY(1000);
  yield(curthread,NULL);
 }

    My system is 5.2.1-release. Thanks.


More information about the freebsd-hackers mailing list