Re: [PATCH] aio: Fix locking in aio_poll()

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

 



On Tue, 2019-02-05 at 09:12 +-0100, Miklos Szeredi wrote:
+AD4 Not all variants of the waitqueue interface require irqs to be
+AD4 disabled, and fuse has nothing whatsoever to do with irqs, so there's
+AD4 no sane reason to disable them.
+AD4 
+AD4 Also, AFAICS, the fuse device does not support asynchronous IO.  I
+AD4 just don't get what this is about...

Hi Miklos,

Could this be what happens?

aio+AF8-poll() calls vfs+AF8-poll()
  vfs+AF8-poll() calls fuse+AF8-dev+AF8-poll()
    fuse+AF8-dev+AF8-poll() calls poll+AF8-wait(file, +ACY-fiq-+AD4-waitq, wait)
      poll+AF8-wait() calls aio+AF8-poll+AF8-queue+AF8-proc(file, +ACY-fiq-+AD4-waitq, wait)
        aio+AF8-poll+AF8-queue+AF8-proc() stores +ACY-fiq-+AD4-waitq in pt-+AD4-iocb-+AD4-poll.head
aio+AF8-poll() calls spin+AF8-lock+AF8-irq(+ACY-ctx-+AD4-ctx+AF8-lock)
aio+AF8-poll() calls spin+AF8-lock(+ACY-req-+AD4-head-+AD4-lock) (req +AD0APQ +ACY-pt-+AD4-iocb-+AD4-poll).

I think the lockdep complaint is about the FUSE fiq-+AD4-waitq lock not being
IRQ-safe and about aio+AF8-poll() creating a dependency between an IRQ-safe lock
(ctx-+AD4-ctx+AF8-lock) and a lock that is not IRQ-safe (fiq-+AD4-waitq).

Thanks,

Bart.



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux