[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACAVd4gRoQih6f_K7kMzr=AwA_DvP0OksxBKj1bGPsP2F_9sFg@mail.gmail.com>
Date: Thu, 5 Sep 2019 14:18:17 +0530
From: Arul Jeniston <arul.jeniston@...il.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: viro@...iv.linux.org.uk, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org, arul_mc@...l.com
Subject: Re: [PATCH] FS: timerfd: Fix unexpected return value of timerfd_read function.
hi Tglx,
When we adjust the date setting using date command we observed
'timerfd_read()' on CLOCK_REALTIME (TFD_TIMER_ABSTIME flag is set)
returns 0.
we don't see any hardware influence here and we are able to recreate
it consistently. Is it expected? if yes, isn't it something to be
documented in timerfd read() man page?
Steps followed to make timerfd read to return 0.
1. run the following script in background to move the date front and back
root@...ic:~/test/exp2# cat ./clock_change_test.sh
while [ 1 ]
do
date --set="04 sep 2019 09:50:21" > /dev/null
date --set="04 sep 2019 09:58:21" > /dev/null
done
root@...ic:~/test/exp2# ./clock_change_test.sh
2. Execute the following program to do read on CLOCK_REALTIME timer.
root@...ic:~/test/exp2# cat timerfdtest.c
#include <errno.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/epoll.h>
#include <sys/timerfd.h>
int main()
{
int tfd;
struct itimerspec ts;
tfd = timerfd_create(CLOCK_REALTIME, 0);
ts.it_interval.tv_sec = 0;
ts.it_interval.tv_nsec = 10;
ts.it_value.tv_sec = 10;
ts.it_value.tv_nsec = 1000;
if (timerfd_settime(tfd, TFD_TIMER_ABSTIME, &ts, NULL) < 0) {
return EXIT_FAILURE;
}
while(1) {
uint64_t noftimeo;
if (read(tfd, &noftimeo, sizeof(noftimeo)) == 0) {
printf("read returned 0 nooftimeo:%d\n", noftimeo);
}
}
/* not reached */
return EXIT_SUCCESS;
}
3. Observed the following read failure logs within few minutes.
root@...ic:~/test/exp2# ./timerfdtest
read returned 0 nooftimeo:1392
Regards,
Arul
On Tue, Aug 20, 2019 at 3:12 PM Arul Jeniston <arul.jeniston@...il.com> wrote:
>
> Hi Tglx,
>
> > Can you please boot something more recent - at least 4.19 LTS - on that
> > machine and let it run for a couple of days to check whether there are 'TSC
> > ADJUST' related entries in dmesg?
>
> Sure. Would check and update.
>
> Regards,
> Arul
Powered by blists - more mailing lists