public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Chavent <Paul.Chavent@onera.fr>
To: Andrew Morton <akpm@linux-foundation.org>,
	Rodolfo Giometti <giometti@enneenne.com>
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@redhat.com>
Subject: Re: [PATCH] pps : add non blocking option to PPS_FETCH ioctl.
Date: Wed, 16 Oct 2013 08:52:47 +0200	[thread overview]
Message-ID: <525E37BF.4040303@onera.fr> (raw)
In-Reply-To: <20131015125545.1920ab5453136f3de5f2aa66@linux-foundation.org>



On 10/15/2013 09:55 PM, Andrew Morton wrote:
> On Tue, 15 Oct 2013 12:43:50 +0200 Rodolfo Giometti <giometti@enneenne.com> wrote:
>
>> On Fri, Oct 11, 2013 at 12:47:20PM -0700, Andrew Morton wrote:
>>> On Fri, 11 Oct 2013 14:40:32 +0200 Paul Chavent <Paul.Chavent@onera.fr> wrote:
>>>
>>>> The PPS_FETCH ioctl is blocking still the reception of a PPS
>>>> event. But, in some case, one may immediately need the last event
>>>> date. This patch allow to get the result of PPS_FETCH if the device
>>>> has the O_NONBLOCK flag set.
>>>
>>> Are the PPS ioctls actually documented anywhere?
>>> Documentation/pps/pps.txt is silent.
>>>
>>> That's a shame, because it would be nice to have a formal description
>>> of the the PPS_FETCH semantics which leads to an understanding of why
>>> things are the way they are, how PPS_FETCH is supposed to be used, etc.
>>>
>>> Also, the presence of such documentation would permit me to bug you for
>>> not having updated it!  We need *some* channel for telling people about
>>> the driver, and updates to it.  Maybe linuxpps.org has it somewhere,
>>> but I couldn't immediately find it.
>>
>> Hi Andrew! Actually RFC 2783 doesn't use ioctls to get access to PPS
>> data but it defines some functions. LinuxPPS, that is the Linux PPS
>> implementation, uses ioctls to implement these functions.
>>
>> If you like having an idea about how these functions are implemented
>> into LinuxPPS, you can see here:
>>
>>     http://www.linuxpps.org/gitweb/?p=pps-tools;a=blob;f=timepps.h;h=d2628d2d061ea2a3623e57990d9ada62623773cf;hb=5980a044bcdb4c1d1a8b1ecff986fa63719519b3
>>
>>> Your implementation requires that the file be opened non-blocking.  But
>>> I'd have thought that adding a new and separate ioctl mode would be a
>>> cleaner and more flexible implementation - that way an app which wants
>>> both blocking and non-blocking behaviour doesn't need to open the file
>>> twice.
>>>
>>> Also, this is actually a non-backward-compatible change for any
>>> application which happened to be opening the file with O_NONBLOCK!
>>> Hopefully there aren't any such applications...
>>
>> The major application that I know using these layer is NTPD... however
>> all RFC compliant applications should not use ioctls to get access the
>> PPS data and this patch should be a "special" case.
>>
>
> Thanks, but this doesn't really address my concerns.
>
> - Where, if anywhere, is the Linux PPS API documented and how do we
>    communicate changes such as this one to kernel users?
>
> - Why require open(O_NONBLOCK) for this instead of adding a separate
>    ioctl?
>

I would also prefer the separate ioctl. As you said it, it's a bit 
annoying to switch from blocking mode to non blocking mode if we need 
both mode. But i was not sure about the preferences of the maintainer : 
(i) change the api, or (ii) change the behavior with a widely supported 
interface (O_NONBLOCK).

I'm certainly not the best person to make the final decision, but i 
would like to help you if you need me (write doc, or change this patch).

Cheers.

Paul.

  reply	other threads:[~2013-10-16  6:59 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-11 12:40 [PATCH] pps : add non blocking option to PPS_FETCH ioctl Paul Chavent
2013-10-11 19:47 ` Andrew Morton
2013-10-15 10:43   ` Rodolfo Giometti
2013-10-15 19:55     ` Andrew Morton
2013-10-16  6:52       ` Paul Chavent [this message]
2013-10-16  7:29         ` Rodolfo Giometti
2013-10-16  7:42           ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2013-09-04  8:20 Paul Chavent
2013-09-06  6:55 ` Rodolfo Giometti
2013-10-11  8:42   ` Paul Chavent
2013-10-11  8:56     ` Rodolfo Giometti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=525E37BF.4040303@onera.fr \
    --to=paul.chavent@onera.fr \
    --cc=agordeev@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=giometti@enneenne.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox