User Space GPIO Interrupt programming - GSoC-2018

Ian Lepore ian at freebsd.org
Fri Nov 27 17:17:00 UTC 2020


On Fri, 2020-11-27 at 14:28 +0300, Vladimir Goncharov wrote:
> Here it is.
> There is struct gpioc_event with pin number and bintime which is send
> to userspace.
> 
> Also I'm thinking about to implementation notofication without extra
> reading from socket via struct kevent's extra fields (fflags/ext[4]),
> looks like it is possible.
> 

Please don't top-post on freebsd mailing lists.

I think we need a way for the app to choose whether it wants simple
reporting of pin number (like the original code) perhaps along with a
count, versus requesting detailed per-event data.  I'm going to propose
something more detailed about this as soon as I get my thoughts all
organized.  I also want to get the original code and the locking fixes
I've done to it into a phab review for people to start looking at
before starting to do new major changes to it.

Allocating memory in the interrupt handler isn't a good idea, it will
just increase latency on processing other pin interrupts and lead to
inaccurate timestamps.  IMO, it would be better to allocate a fixed
array of events; when the app requests detailed event reporting it can
request the number of stored events it wants handled and we could
allocate all at once based on that.

-- Ian



More information about the freebsd-arm mailing list