Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jul 2015 12:36:08 +0200
From:      Oliver Pinter <oliver.pinter@hardenedbsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        "O'Connor, Daniel" <darius@dons.net.au>, Garrett Wollman <wollman@hergotha.csail.mit.edu>,  freebsd-current@freebsd.org, shawn.webb@hardenedbsd.org
Subject:   Re: gettimeofday((void *)-1, NULL) implicates core dump on recent FreeBSD 11-CURRENT
Message-ID:  <CAPQ4ffsh_GMp1KXB7FM0xLyeRMQW2xSqHQLEg1z8L0k1p0bJ4Q@mail.gmail.com>
In-Reply-To: <20150708102137.GZ2080@kib.kiev.ua>
References:  <CAPQ4ffuTcN_ytcH7GPY0s6OqWK9qo6MGaVZhOB%2B0ojWfd=fNCg@mail.gmail.com> <201507072241.t67MfsX5085860@hergotha.csail.mit.edu> <94BCDA65-5B86-4329-A312-4CB16E847B69@dons.net.au> <CAPQ4ffuuaiWGUthEhux2VrK6ZyHDT=0xd9z8k8f11N=6shdUng@mail.gmail.com> <20150708102137.GZ2080@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7/8/15, Konstantin Belousov <kostikbel@gmail.com> wrote:
> On Wed, Jul 08, 2015 at 11:53:39AM +0200, Oliver Pinter wrote:
>> On 7/8/15, O'Connor, Daniel <darius@dons.net.au> wrote:
>> >
>> >> On 8 Jul 2015, at 08:11, Garrett Wollman
>> >> <wollman@hergotha.csail.mit.edu>
>> >> wrote:
>> >> Perhaps the test was (erroneously) written to assume that
>> >> gettimeofday() was a system call, and could therefore detect invalid
>> >> pointers and return [EFAULT].  This has not been the case for some
>> >> time.  (In HEAD, not since r237434, which is three years ago.)
>> >
>> > In defence of the test, the man page says it can return EFAULT.
>>
>> That's fine, but why changed the behaviour since 2015. May 27.? I have
>> an older FreeBSD/HardenedBSD install, where this test passing. See
>> some previous email in this thread.
> Current implemention detail is that gettimeofday(-1) causes SIGSEGV
> if kern.timecounter.hardware=TSC-low and kern.timecounter.fast_gettime=1.
> If you timecounter changed for whatever reason, the result of that
> call would fluctuate between EFAULT and signal.

Thanks Konstantin! Yes, the systems defaults to TSC-low.

root@nyi-01 ~# sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSC-low
root@nyi-01 ~# sysctl kern.timecounter.fast_gettime
kern.timecounter.fast_gettime: 1
root@nyi-01 ~# sysctl kern.timecounter.choice
kern.timecounter.choice: TSC-low(1000) ACPI-fast(900) HPET(950)
i8254(0) dummy(-1000000)

Changing to HPET solves the problem:

root@nyi-01 ~# sysctl kern.timecounter.hardware=HPET
kern.timecounter.hardware: TSC-low -> HPET
root@nyi-01 ~# cd /usr/tests/lib/libc/sys
root@nyi-01 sys# kyua test gettimeofday_test


gettimeofday_test:gettimeofday_err  ->  passed  [0.011s]
gettimeofday_test:gettimeofday_mono  ->  passed  [0.012s]

Results file id is usr_tests_lib_libc_sys.20150708-103338-126124
Results saved to
/root/.kyua/store/results.usr_tests_lib_libc_sys.20150708-103338-126124.db

2/2 passed (0 failed)


>
> This is not the only test in the test set which checks something that
> cannot be reasonably explained.
>
>>
>> >
>> > (IMO the man page and test should change..)
>> >
>> > --
>> > Daniel O'Connor
>> > "The nice thing about standards is that there
>> > are so many of them to choose from."
>> >  -- Andrew Tanenbaum
>> > GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
>> >
>> >
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to
>> "freebsd-current-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPQ4ffsh_GMp1KXB7FM0xLyeRMQW2xSqHQLEg1z8L0k1p0bJ4Q>