Re: A spinlock_irqsave question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 29, 2013 at 2:42 PM, Mario Smarduch
<mario.smarduch@xxxxxxxxxx> wrote:
> On 4/29/2013 10:30 AM, Ryan wrote:
>
>>
>>
>>
>> spinlock_irqsave()  <== Disables the IRQ?
>>
>>                             <== No IRQs (that means no KB
>> interrupt,Interrupts from touch screen... etc..)
>>
>>
>>
>> spinlock_irqrestore()
> spin_lock_irqsave(lock,flags)/ affects the running
> CPU, it does not disable any device IRQ. Device
> interrupts may be taken by other CPUs. There is a whole
> other set of calls that deal with individual IRQs.

You mean to say that
      a) Device IRQ can be taken care of some other core of the Same CPU?
      b) If the CPU Load is Less. then only one core will be active.
In that case - The device irq will be blocked?


>
>>
>>
>> Is my understanding correct?
>> So the "time spend between spinlock_irqsave and spinlock_restore
>> should be very short?
>>
>> For example there should not be something like this? Am i correct?
>>
>>
>> spinlock_irqsave()
>>
>> mdelay(1000);
>>
>>
>> spinlock_irqrestore()
>
> Yes, but much shorter then mdelay(1000)
>>
>>
>>
>>
>> Also, what is meant by "spinlock_irqsave" disabled irq locally?
>
> spin_lock_irqsave()disables interrupts on the CPU it's issued.

This also include device irqs right? Apart from device irqs (touch
screen and so on).
what other irqs can be there. So what about mdelay(1000) in the above?
does that effect performance.

>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs




[Index of Archives]     [Audio]     [Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux