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

Reply via email to