On Thu, Oct 30, 2008 at 6:01 PM, Sumit Gupta <[EMAIL PROTECTED]> wrote: > Hi Cyril > > The LU entry points are called using kernel threads (called worker threads > inside the framework). The thread pool is dynamically grown from 4 to 256 (a > soft limit) by stmf based on the load. The task spread is round robin among > all the workers. Regarding sleeping, the framework is designed to allow for > both synchronous and asynchronous operations. You can choose a model which > is best for your application. As a guideline, if you have to sleep for > several milliseconds, you should not block the worker thread and use the > lu_poll entry point (by calling stmf_task_poll_lu()). But if your sleep is > just to implement synchronous operations and your backend is reasonably > fast, its ok to block the worker.
Sumit, thanks for explanation. As for the duration of the sleep - I was wondering about calling kmem_alloc() with KM_SLEEP vs KM_NOSLEEP inside LU entry point. I have no idea how long this will sleep. I also didn't quite grok your note on using lu_poll. Can you please give some example ? > > Sumit > > On Oct 29, 2008, at 3:21 PM, Cyril Plisko wrote: > >> Hello, >> >> I have another question on COMSTAR: >> >> where can I find the information about the context of the LU entry >> points ? I am trying to figure out when am I allowed to sleep... >> >> -- >> Regards, >> Cyril >> _______________________________________________ >> storage-discuss mailing list >> [email protected] >> http://mail.opensolaris.org/mailman/listinfo/storage-discuss > > -- Regards, Cyril _______________________________________________ storage-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/storage-discuss
