Re: [PATCH v2 1/4] timekeeping: export do_adjtimex() to modules

From: Vitaly Kuznetsov
Date: Mon Jan 09 2017 - 08:05:43 EST


John Stultz <john.stultz@xxxxxxxxxx> writes:

> On Wed, Jan 4, 2017 at 9:24 AM, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote:
>> While do_adjtimex() is available to userspace via adjtimex syscall it is
>> not available to modules which may want to implement in-kernel 'NTP
>> clients'. Hyper-V hv_utils is going to be the first one.
>>
>> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
>> ---
>> kernel/time/timekeeping.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
>> index da233cd..ae4f24f 100644
>> --- a/kernel/time/timekeeping.c
>> +++ b/kernel/time/timekeeping.c
>> @@ -2312,6 +2312,7 @@ int do_adjtimex(struct timex *txc)
>>
>> return ret;
>> }
>> +EXPORT_SYMBOL_GPL(do_adjtimex);
>
> No real objections to this, although I do want to better understand
> the benefits (and drawbacks) of doing the adjtimex in the kernel
> driver rather then via userspace, to make sure the need is sane.
>

Thank you for your comments John,

An alternative approach would be to make this module export an interface
for userspace and implement a daemon which would do adjtimex
syscalls. In theory this could be a part of an NTP client though I don't
think that NTP clients will want to accept such 'alternative' way of
getting time.

--
Vitaly