public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox