Re: [PATCH] pps: add epoll support

From: Rodolfo Giometti
Date: Wed Feb 26 2025 - 02:40:10 EST


On 25/02/25 17:34, Denis OSTERLAND-HEIM wrote:
Hi,

-----Original Message-----
From: Rodolfo Giometti <giometti@xxxxxxxxxxxx>
Sent: Tuesday, February 25, 2025 3:24 PM
To: Denis OSTERLAND-HEIM <denis.osterland@xxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH] pps: add epoll support
[snip]

If I start multiple user space programs data races are visible.

```
# for i in 0 1 2 3 4 5 6; do PpsPollTest /dev/pps1 > log$i & done
# sleep 6
# tail log*
==> log0 <==
timeout
assert: 196
time: 1520599554.276752928
assert: 197
time: 1520599555.300692704

This is the same behavior we have when working with a serial port: if more than
one process gets access to it, data is stolen.
Okay, then lets choose your suggestion.


>From my point of view it would be great to fix this bug without such an limitation.

I disagree, it is not a limitation! It is like a normal char device work.

What we have to test now is if your initial goal has been addressed! That is, in
an application that has more to do than just dealing with one PPS device, we can
use poll()/select() in order to avoid using threads.
I will do the final test.

Try poll() by using a process workin on multiple pps sources.

I expect that it works with your patch.

:)

Shall I prepare the patch?

Yes.

Shall I add you as Co-author?

Yes. Add my name in the Signed-off-by: line and, please, send to me a preview.

Or do you want to send your patch with me in reported-by and tested-by?

Fixes: eae9d2ba0cfc ("LinuxPPS: core support")?

OK.

CC stable?

Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

And explain the goal of the patch within the description.

Thanks a lot!

Ciao,

Rodolfo

--
GNU/Linux Solutions e-mail: giometti@xxxxxxxxxxxx
Linux Device Driver giometti@xxxxxxxx
Embedded Systems phone: +39 349 2432127
UNIX programming