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>