[LTP] [PATCH] acct02: relax ac_btime checks
Petr Vorel
pvorel@suse.cz
Tue Nov 12 13:37:44 CET 2019
Hi Jan,
> ac_btime is calculated back from current time and isn't accurate.
> Problems include nanoseconds accumulation (lags behind gettimeofday),
> suspend/resume isn't taken into account and any adjtime() (like DST
> change) will cause ac_btime to jump as well.
> Relax the condition to ~2h around gettimeofday value at start of
> the test. That should be enough to cover usual DST time jumps.
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Tested-by: Petr Vorel <pvorel@suse.cz>
on both 390x and intel.
LGTM, although on in intel I got quite a lot of entries:
acct02.c:202: INFO: Number of accounting file entries tested: 159
> ---
> testcases/kernel/syscalls/acct/acct02.c | 17 ++++++++---------
> 1 file changed, 8 insertions(+), 9 deletions(-)
> diff --git a/testcases/kernel/syscalls/acct/acct02.c b/testcases/kernel/syscalls/acct/acct02.c
> index 890568b08774..2f1290fa287f 100644
> --- a/testcases/kernel/syscalls/acct/acct02.c
> +++ b/testcases/kernel/syscalls/acct/acct02.c
> @@ -74,7 +74,8 @@ static int verify_acct(void *acc, int elap_time)
> {
> int sys_time = UNPACK(ACCT_MEMBER(ac_stime));
> int user_time = UNPACK(ACCT_MEMBER(ac_stime));
> - int ret = 0, tmp;
> + unsigned int btime_diff;
> + int ret = 0;
> float tmp2;
We could rename tmp2 to tmp (but understand if you don't want to bother
with it).
> if (strcmp(ACCT_MEMBER(ac_comm), COMMAND)) {
> @@ -83,15 +84,13 @@ static int verify_acct(void *acc, int elap_time)
> ret = 1;
> }
> - if (ACCT_MEMBER(ac_btime) < start_time) {
> - tst_res(TINFO, "ac_btime < %d (%d)", start_time,
> - ACCT_MEMBER(ac_btime));
> - ret = 1;
> - }
> + if (start_time > ACCT_MEMBER(ac_btime))
> + btime_diff = start_time - ACCT_MEMBER(ac_btime);
> + else
> + btime_diff = ACCT_MEMBER(ac_btime) - start_time;
> - tmp = ACCT_MEMBER(ac_btime) - start_time;
> - if (tmp > 1) {
> - tst_res(TINFO, "ac_btime - %d > 1 (%d)", start_time, tmp);
> + if (btime_diff > 7200) {
IMHO It's probably obvious that it's time in seconds without digging in git, so
we don't have to bother with a constant definition.
> + tst_res(TINFO, "ac_btime_diff %u", btime_diff);
> ret = 1;
> }
Kind regards,
Petr
More information about the ltp
mailing list