Hi,
[EMAIL PROTECTED] wrote:
> On Fri, 4 Jul 2008, Siegfried Schmidt wrote:
>
>   
>> Hi,
>>
>> I have written a driver for a special PCI Card on Solaris 10, Dual Core 2,4 
>> GHz.
>> The application uses the driver via ioctl to get one byte from the PCI Card.
>> I use ddi_getxx to read the registers of the PCI Card, locked with 
>> mutex_enter
>> and mutex_exit.
>> Between ioctl_entry and ioctl_return (within my ioctl-function) the
>> driver must run without interruptions (the PCI Card itself don't use
>> interrupts) by other threads, process, interrupts, timers or other
>> kernel code.
>> How can I do this? (runtime of the ioctl function is about 3-4 microseconds)
>>     
>
> The only way I see to achieve all of this is to:
>
>       - use a dedicated CPU
>       - use a dedicated handler thread
>
> Using a dedicated handler thread bound to a dedicated CPU means:
>       - that CPU will not participate in interrupt handling
>       - no other process/thread/timer will be scheduled
>
> But more practically, disable kernel preemption, kpreempt_disable(), and 
> temporarily disable interrupts, cli().
>   
ddi_enter_critical(9f)/ddi_exit_critical(9f) is the ddi way to do this.
max

> I don't understand why, if the only thing you need to do is a single 
> ddi_getXX call, you need to have the entire thing locked. Can you explain 
> ?
>
> FrankH.
>
>   
>> Any ideas are welcome...
>>
>> sigi
>>
>>
>> This message posted from opensolaris.org
>> _______________________________________________
>> opensolaris-discuss mailing list
>> [email protected]
>>
>>     
>
> ------------------------------------------------------------------------------
> No good can come from selling your freedom, not for all the gold in the world,
> for the value of this heavenly gift far exceeds that of any fortune on earth.
> ------------------------------------------------------------------------------
> _______________________________________________
> opensolaris-discuss mailing list
> [email protected]
>
>   

_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to