All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add uio_sync_event interface to support mulit-instances case in UIO framework
@ 2013-08-14 12:30 Xiaolong Ye
  2013-08-14 12:30 ` [PATCH] uio: add uio_event_sync interface Xiaolong Ye
  2013-08-14 18:36 ` [PATCH] Add uio_sync_event interface to support mulit-instances case in UIO framework Greg KH
  0 siblings, 2 replies; 4+ messages in thread
From: Xiaolong Ye @ 2013-08-14 12:30 UTC (permalink / raw)
  To: hjk, greg, linux-kernel; +Cc: Xiaolong Ye

Hi, guys,

Recently, we have met fake interrupt issue when using UIO as our vpu driver in mulit-instances case,
the issue can be described as below:

In multi-instances case, we use vpu_lock(semaphore) to implement the mutually exclusive access to the
device, each instace open uio device once and will be associated with a fd and its own uio_listener,
we use poll to wait for the hardware interrupt. So let's assume that there are two instances, A and B,
their uio_listener->event_count and idev->event are all 0 at the beginning, then A get the vpu_lock and start
to work, it will block at poll()(because listener->event_count == idev->count) until H/W interrupt happens
(atomic_inc(&idev->event)), after it releases vpu_lock, B will get the lock and start to work, however,
its poll will return immediately because B's uio_listener->event_count is 0 while idev->event has been 1,
that's how the fake interrupt happens.

Our proposal:
Add new uio_sync_event(struct uio_listener *listener) function in uio,c, so that we can call it directly
when we want to sync the event count.


Xiaolong Ye (1):
  uio: add uio_event_sync interface

 drivers/uio/uio.c          |   12 ++++++++++++
 include/linux/uio_driver.h |    1 +
 2 files changed, 13 insertions(+)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-08-14 18:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-14 12:30 [PATCH] Add uio_sync_event interface to support mulit-instances case in UIO framework Xiaolong Ye
2013-08-14 12:30 ` [PATCH] uio: add uio_event_sync interface Xiaolong Ye
2013-08-14 18:34   ` Greg KH
2013-08-14 18:36 ` [PATCH] Add uio_sync_event interface to support mulit-instances case in UIO framework Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.