Hi All,

Will this work for multiple writers to solve:

* contention between ISR and write
* contention between 2 or more writers

In the write() method:
Grab spin_lock_irq
Copy from interrupt buffer to local buffer
spin_unlock_irq
copy_to_user from local buffer

If so, How? How is it different from irqsave call?

Regards,
Mukund Jampala


On 4/8/08, bhanu nani <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> This may be really silly questions which I tried my level best to
> analyse and find answers in grps.
>
> I understand the working of spinlock irqsave as follows, please
> correct me where ever required. When you hold a spinlock with
> spin_lock_irqsave(), it will first store the current interrupt status,
> disable all the interrupts on the CPU which it is running on then it
> tries to acquire the lock.
>
> When releasing, it will release the spinlock, restore the flags using
> stored 'flags' and then reenable the interrupts.
>
> Lets say, I am using spin_lock_irqsave() between ISR and a writer context.
>
> Suppose 2 writers are contending for spinlock. and if the code is as follows:
>
> write()  {
>           spin_lock_irqsave()             /*critical lock    */
>           x++;
>           spin_unlock_irqsave()         /*critical unlock */
> }
>
> If the second writen tries to acquire the lock, when the first writer
> is already holding it, how are flags managed. Will they not get
> overwitten by the second write. when happens when restoring?
>
> I am looking for clarification w.r.t contention between writers rather
> than with ISR.
> I know the 'flags' variable is the one thing that sets the difference
> between spin_lock_irqsave()  & spin_lock_irq().
>
> On an SMP, if the writer has disabled interrupts by acquiring
> respective spinlock and followed by it there occurs an ISR that is
> beng handled bo another CPU, then what? Are we not deadlocking?
>
> Regards,
> Bhanu J
>

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to