#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
af9ce4e9 |
|
07-Jun-2023 |
Dmitriy Alexandrov <d06alexandrov@users.noreply.github.com> |
kern_ntptime: Fix undefined behavior of the shift operator L_LINT macro is used with negative numbers [i.e. L_LINT(time_freq, -MAXFREQ)], it could cause undefined behavior. It should be similar to the L_RSHIFT(v, n) macro. MFC after: 2 weeks Reviewed by: cy Pull Request: https://github.com/freebsd/freebsd-src/pull/769 Signed-off-by: Dmitriy Alexandrov <d06alexandrov@gmail.com>
|
#
1e48d9d3 |
|
27-Feb-2023 |
Sebastian Huber <sebastian.huber@embedded-brains.de> |
pps: Simplify the nsec calculation in pps_event() Let A be the current calculation of the frequency accumulator (pps_fcount) update in pps_event() scale = (uint64_t)1 << 63; scale /= captc->tc_frequency; scale *= 2; bt.sec = 0; bt.frac = 0; bintime_addx(&bt, scale * tcount); bintime2timespec(&bt, &ts); hardpps(tsp, ts.tv_nsec + 1000000000 * ts.tv_sec); and hardpps(..., delta_nsec): u_nsec = delta_nsec; if (u_nsec > (NANOSECOND >> 1)) u_nsec -= NANOSECOND; else if (u_nsec < -(NANOSECOND >> 1)) u_nsec += NANOSECOND; pps_fcount += u_nsec; This change introduces a new calculation which is slightly simpler and more straight forward. Name it B. Consider the following sample values with a tcount of 2000000100 and a tc_frequency of 2000000000 (2GHz). For A, the scale is 9223372036. Then scale * tcount is 18446744994337203600 which is larger than UINT64_MAX (= 18446744073709551615). The result is 920627651984 == 18446744994337203600 % UINT64_MAX. Since all operands are unsigned the result is well defined through modulo arithmetic. The result of bintime2timespec(&bt, &ts) is 49. This is equal to the correct result 1000000049 % NANOSECOND. In hardpps(), both conditional statements are not executed and pps_fcount is incremented by 49. For the new calculation B, we have 1000000000 * tcount is 2000000100000000000 which is less than UINT64_MAX. This yields after the division with tc_frequency the correct result of 1000000050 for delta_nsec. In hardpps(), the first conditional statement is executed and pps_fcount is incremented by 50. This shows that both methods yield roughly the same results. However, method B is easier to understand and requires fewer conditional statements. Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/604
|
#
a066bba2 |
|
13-Feb-2023 |
Mateusz Guzik <mjg@FreeBSD.org> |
ntptime: ansify Sponsored by: Rubicon Communications, LLC ("Netgate")
|
#
c7c53e3c |
|
25-Jan-2023 |
Sebastian Huber <sebastian.huber@embedded-brains.de> |
Clarify hardpps() parameter name and comment Since 32c203577a5e by phk in 1999 (Make even more of the PPSAPI implementations generic), the "nsec" parameter of hardpps() is a time difference and no longer a time point. Change the name to "delta_nsec" and adjust the comment. Remove comment about a clock tick adjustment which is no longer in the code. Pull Request: https://github.com/freebsd/freebsd-src/pull/640 Reviewed by: imp
|
#
3ec0dc36 |
|
07-Feb-2022 |
Sebastian Huber <sebastian.huber@embedded-brains.de> |
kern_ntptime.c: Remove ntp_init() The ntp_init() function did set a couple of global objects to zero. These objects are in the .bss section and already initialized to zero during kernel or module loading.
|
#
be2535b0 |
|
04-Dec-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Add kern_ntp_adjtime(9). Reviewed by: brooks, cy Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D27471
|
#
e5a307c6 |
|
23-Nov-2020 |
Cy Schubert <cy@FreeBSD.org> |
Fix a typo in a comment. MFC after: 3 days
|
#
6fed89b1 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
kern: clean up empty lines in .c and .h files
|
#
7029da5c |
|
26-Feb-2020 |
Pawel Biernacki <kaktus@FreeBSD.org> |
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718
|
#
c7dc361d |
|
20-Nov-2018 |
Mark Johnston <markj@FreeBSD.org> |
Clear pad bytes in the struct exported by kern.ntp_pll.gettime. Reported by: Thomas Barabosch, Fraunhofer FKIE MFC after: 3 days Sponsored by: The FreeBSD Foundation
|
#
fb441a88 |
|
27-Mar-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix several leaks of kernel stack data through paddings. It is random collection of fixes for issues not yet corrected, reported at https://tsyrklevi.ch/clang_analyzer/freebsd_013017/. Many issues from that list were already corrected. Most of them are for compat32, old compat32 or affect both primary host ABI and compat32. The freebsd32_kldstat(), for instance, was already fixed by using malloc(M_ZERO). Patch includes correction to report the supplied version back, which is just pedantic. Reviewed by: brooks, emaste (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D14868
|
#
f27ac8e2 |
|
25-Jan-2017 |
Ed Maste <emaste@FreeBSD.org> |
ANSIfy kern_ntptime.c
|
#
4493f659 |
|
27-Jul-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix a bug in r302252. Change ntpadj_lock to spinlock always, and rename stuff removing ADJ/adj from the names. ntp_update_second() requires ntp_lock and is called from the tc_windup(), so ntp_lock must be a spinlock. Add missed lock to ntp_update_second(). Tested by: pho (as part of the whole patch) Reviewed by: jhb (same) Noted by: bde Sponsored by: The FreeBSD Foundation MFC after: 1 month X-Differential revision: https://reviews.freebsd.org/D7302
|
#
364c516c |
|
28-Jun-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Currently the ntptime code and resettodr() are Giant-locked. In particular, the Giant is supposed to protect against parallel ntp_adjtime(2) invocations. But, for instance, sys_ntp_adjtime() does copyout(9) under Giant and then examines time_status to return syscall result. Since copyout(9) could sleep, the syscall result might be inconsistent. Another and more important issue is that if PPS is configured, hardpps(9) is executed without any protection against the parallel top-level code invocation. Potentially, this may result in the inconsistent state of the ntptime state variables, but I cannot say how serious such distortion is. The non-functional splclock() call in sys_ntp_adjtime() protected against clock interrupts calling hardpps() in the pre-SMP era. Modernize the locking. A mutex protects ntptime data. Due to the hardpps() KPI legitimately serving from the interrupt filters (and e.g. uart(4) does call it from filter), the lock cannot be sleepable mutex if PPS_SYNC is defined. Otherwise, use normal sleepable mutex to reduce interrupt latency. Reviewed by: imp, jhb Sponsored by: The FreeBSD Foundation Approved by: re (gjb) Differential revision: https://reviews.freebsd.org/D6825
|
#
969fc29e |
|
12-Jul-2015 |
Ian Lepore <ian@FreeBSD.org> |
Use the monotonic (uptime) counter rather than time-of-day to measure elapsed time between ntp_adjtime() clock offset adjustments. This eliminates spurious frequency steering after a large clock step (such as a 1970->2015 step on a system with no battery-backed clock hardware). This problem was discovered after the import of ntpd 4.2.8, which does things in a slightly different (but still correct) order than the 4.2.4 we had previously. In particular, 4.2.4 would step the clock then immediately after use ntp_adjtime() to set the frequency and offset to zero, which captured the post-step time-of-day as a side effect. In 4.2.8, ntpd sets frequency and offset to zero before any initial clock step, capturing the time as 1970-ish, then when it next calls ntp_adjtime() it's with a non-zero offset measurement. This non-zero value gets multiplied by the apparent 45-year interval, which blows up into a completely bogus frequency steer. That gets clamped to 500ppm, but that's still enough to make the clock drift so fast that ntpd has to keep stepping it every few minutes to compensate.
|
#
af3b2549 |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
37a107a4 |
|
27-Jun-2014 |
Glen Barber <gjb@FreeBSD.org> |
Revert r267961, r267973: These changes prevent sysctl(8) from returning proper output, such as: 1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
3da1cf1e |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel. Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change. MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
#
785797c3 |
|
24-Jul-2013 |
Andriy Gapon <avg@FreeBSD.org> |
rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST Also directly call swapper() at the end of mi_startup instead of relying on swapper being the last thing in sysinits order. Rationale: - "RUN_SCHEDULER" was misleading, scheduling already takes place at that stage - "scheduler" was misleading, the function swaps in the swapped out processes - another SYSINIT(SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY) could never be invoked depending on its relative order with scheduler; this was not obvious and the bug actually used to exist Reviewed by: kib (ealier version) MFC after: 14 days
|
#
79f1fdb8 |
|
15-Aug-2012 |
Warner Losh <imp@FreeBSD.org> |
Limit popcorn limit to something sane (either 2ns or 2 ticks if that's longer). PR: 156481 Submitted by: Ian Lepore
|
#
6cedd609 |
|
23-Dec-2011 |
Lawrence Stewart <lstewart@FreeBSD.org> |
Introduce the sysclock_getsnapshot() and sysclock_snap2bintime() KPIs. The sysclock_getsnapshot() function allows the caller to obtain a snapshot of all the system clock and timecounter state required to create time stamps at a later point. The sysclock_snap2bintime() function converts a previously obtained snapshot into a bintime time stamp according to the specified flags e.g. which system clock, uptime vs absolute time, etc. These KPIs enable useful functionality, including direct comparison of the feedback and feed-forward system clocks and generation of multiple time stamps with different formats from a single timecounter read. Committed on behalf of Julien Ridoux and Darryl Veitch from the University of Melbourne, Australia, as part of the FreeBSD Foundation funded "Feed-Forward Clock Synchronization Algorithms" project. For more information, see http://www.synclab.org/radclock/ In collaboration with: Julien Ridoux (jridoux at unimelb edu au)
|
#
3eb9ab52 |
|
12-Dec-2011 |
Eitan Adler <eadler@FreeBSD.org> |
Document a large number of currently undocumented sysctls. While here fix some style(9) issues and reduce redundancy. PR: kern/155491 PR: kern/155490 PR: kern/155489 Submitted by: Galimov Albert <wtfcrap@mail.ru> Approved by: bde Reviewed by: jhb MFC after: 1 week
|
#
8451d0dd |
|
16-Sep-2011 |
Kip Macy <kmacy@FreeBSD.org> |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls. Reviewed by: rwatson Approved by: re (bz)
|
#
de5b1952 |
|
25-Feb-2011 |
Alexander Leidinger <netchild@FreeBSD.org> |
Add some FEATURE macros for various features (AUDIT/CAM/IPC/KTR/MAC/NFS/NTP/ PMC/SYSV/...). No FreeBSD version bump, the userland application to query the features will be committed last and can serve as an indication of the availablility if needed. Sponsored by: Google Summer of Code 2010 Submitted by: kibab Reviewed by: arch@ (parts by rwatson, trasz, jhb) X-MFC after: to be determined in last commit with code from this project
|
#
240577c2 |
|
13-Jan-2011 |
Matthew D Fleming <mdf@FreeBSD.org> |
Fix up a few more sysctl(9) mis-typing found in various LINT builds.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
7b9df13b |
|
30-Sep-2010 |
Andriy Gapon <avg@FreeBSD.org> |
there must be only one SYSINIT with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY order SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY should only be used to call scheduler() function which turns the initial thread into swapper proper and thus there is no further SYSINIT processing. Other SYSINITs with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY may get ordered after scheduler() and thus never executed. That particular relative order is semi-arbitrary. Thus, change such places to use SI_ORDER_MIDDLE. Also, use SI_ORDER_MIDDLE instead of correct, but less appealing, SI_ORDER_ANY - 1. MFC after: 1 week
|
#
86ffeaa1 |
|
19-May-2010 |
Andriy Gapon <avg@FreeBSD.org> |
MFC r207360: periodically save system time to hardware time-of-day clock
|
#
e5f5b372 |
|
19-May-2010 |
Andriy Gapon <avg@FreeBSD.org> |
MFC r207359,207362: kern_ntptime: abstract time error check into a function
|
#
4f27c5ed |
|
29-Apr-2010 |
Andriy Gapon <avg@FreeBSD.org> |
kern_ntptime: drop a comment that became stale after r207359 MFC after: 1 week X-MFC after: r207359
|
#
5c7e270f |
|
29-Apr-2010 |
Andriy Gapon <avg@FreeBSD.org> |
periodically save system time to hardware time-of-day clock This is done in kern_ntptime, perhaps not the best place. This is done using resettodr(). Some features: - make save period configurable via tunable and sysctl - period of zero disables saving, setting a non-zero period re-enables it or reschedules it - do saving only if system clock is ntp-synchronized - save on shutdown Discussed with: des, Peter Jeremy <peterjeremy@acm.org> X-Maybe: save time near seconds boundary for better precision MFC after: 2 weeks
|
#
9a9ae42a |
|
29-Apr-2010 |
Andriy Gapon <avg@FreeBSD.org> |
kern_ntptime: abstract time error check into a function ... to avoid code duplication MFC after: 1 week
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
237fdd78 |
|
16-Mar-2008 |
Robert Watson <rwatson@FreeBSD.org> |
In keeping with style(9)'s recommendations on macros, use a ';' after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr. MFC after: 1 month Discussed with: imp, rink
|
#
b4be6ef2 |
|
14-Jun-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Only require privilege to set the current time adjustment, not in order to query it.
|
#
873fbcd7 |
|
05-Mar-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Further system call comment cleanup: - Remove also "MP SAFE" after prior "MPSAFE" pass. (suggested by bde) - Remove extra blank lines in some cases. - Add extra blank lines in some cases. - Remove no-op comments consisting solely of the function name, the word "syscall", or the system call name. - Add punctuation. - Re-wrap some comments.
|
#
0c14ff0e |
|
04-Mar-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Remove 'MPSAFE' annotations from the comments above most system calls: all system calls now enter without Giant held, and then in some cases, acquire Giant explicitly. Remove a number of other MPSAFE annotations in the credential code and tweak one or two other adjacent comments.
|
#
fe18f385 |
|
12-Jan-2007 |
Warner Losh <imp@FreeBSD.org> |
When ntp_gettime() was converted from a sysctl + wrapper to a system call, its semantics were unintentionally changed. It went from returning the time state to returning 0 or -1. Since 0 means time normal, and non-zero effectively only shows up around leap seconds, this went unnoticed until now. At least unnoticed until someone was trying to run a binary they didn't have source for and it was misbehaving... Submitted by: Judah Levine MFC After: 2 weeks
|
#
acd3428b |
|
06-Nov-2006 |
Robert Watson <rwatson@FreeBSD.org> |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking. Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
#
75b82238 |
|
28-May-2005 |
Robert Watson <rwatson@FreeBSD.org> |
Explicitly acquire Giant around the ntp_gettime() and assert it in the sysctl path. While this code is close to MPSAFE, it may require some additional locking. Mark ntp_gettime1() as GIANT_REQUIRED for now. Suggested by: phk
|
#
b88ec951 |
|
31-Mar-2005 |
John Baldwin <jhb@FreeBSD.org> |
Implement kern_adjtime(), kern_readv(), kern_sched_rr_get_interval(), kern_settimeofday(), and kern_writev() to allow for further stackgap reduction in the compat ABIs.
|
#
9454b2d8 |
|
06-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
#
9b7fe7e4 |
|
18-Nov-2004 |
Mark Santcroos <marks@FreeBSD.org> |
Place function comment above the right function.
|
#
932cfd41 |
|
18-Nov-2004 |
Mark Santcroos <marks@FreeBSD.org> |
Add system call implementation of ntp_gettime(2). Moved most of the work to ntp_gettime1(), which is now called by ntp_gettime() and ntp_sysctl(). Reviewed by: imp, phk, njl, peter Approved by: njl
|
#
bcfe6d8b |
|
14-Mar-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Annual NTP kernel code spring-cleaning: Use int64_t rather than long long for the fixpoint type. Don't discard fractional nanosecond frequency correction.
|
#
551260fc |
|
24-Jan-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Deal with MOD_FREQUENCY before MOD_OFFSET because the latter is the one which runs the actual update. This fixes a bug where there were a delay in applying the frequency adjustment. In extreme cases this could result in marginal stability of the kernel-pll.
|
#
eac3c62b |
|
25-Jun-2003 |
Warner Losh <imp@FreeBSD.org> |
During a positive leap second, the tai_time offset should be incremented at the start of the leap second, not after the leap second has been inserted. This is because at the start of the leap second, we set the time back one second. This setting back one second is the moment that the offset changes. The old code set it back after the leap second, but that's one second too late. The negative leap second case is handled correctly. Reviewed by: phk
|
#
677b542e |
|
10-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
#
ff292556 |
|
05-Jan-2003 |
Peter Wemm <peter@FreeBSD.org> |
Explicitly have the timecounter init happen after the cpu_initclocks is called. Otherwise (depending on a non-deterministic sort), the timecounter code can be initialized before the clock rate has been set (on ia64) and it assumes hz = 100, rather than the real value of 1024. I'm not sure how much gets upset by this. Glanced at by: phk
|
#
2e07db0b |
|
11-Oct-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove an unused variable.
|
#
b4a1d0de |
|
26-Apr-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Hide the private parts of timecounter from a couple of places that don't really need to know the gory details.
|
#
3bdd2d06 |
|
19-Apr-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
suser is Giant safe, so optimize a pointless case.
|
#
fe4dc7a6 |
|
15-Apr-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove two debug printfs which should never have been committed.
|
#
38e08233 |
|
15-Apr-2002 |
John Baldwin <jhb@FreeBSD.org> |
You have to cast int64_t's to long long if you printf them with %lld. This now compiles on alpha without a warning. Pointy-hat to: phk
|
#
e1d970f1 |
|
14-Apr-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Improve the implementation of adjtime(2). Apply the change as a continuous slew rather than as a series of discrete steps and make it possible to adjust arbitraryly huge amounts of time in either direction. In practice this is done by hooking into the same once-per-second loop as the NTP PLL and setting a suitable frequency offset deducting the amount slewed from the remainder. If the remaining delta is larger than 1 second we slew at 5000PPM (5msec/sec), for a delta less than a second we slew at 500PPM (500usec/sec) and for the last one second period we will slew at whatever rate (less than 500PPM) it takes to eliminate the delta entirely. The old implementation stepped the clock a number of microseconds every HZ to acheive the same effect, using the same rates of change. Eliminate the global variables tickadj, tickdelta and timedelta and their various use and initializations. This removes the most significant obstacle to running timecounter and NTP housekeeping from a timeout rather than hardclock.
|
#
b9c6e8bd |
|
15-Apr-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
In the ntp_adjtime(2) syscall, return our actual estimate of unapplied offset correction instead of the most recent offset applied.
|
#
44731cab |
|
01-Apr-2002 |
John Baldwin <jhb@FreeBSD.org> |
Change the suser() API to take advantage of td_ucred as well as do a general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag. Discussed on: smp@
|
#
2028c0cd |
|
07-Feb-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Revise timercounters to use binary fixed point format internally. The binary format "bintime" is a 32.64 format, it will go to 64.64 when time_t does. The bintime format is available to consumers of time in the kernel, and is preferable where timeintervals needs to be accumulated. This change simplifies much of the magic math inside the timecounters and improves the frequency and time precision by a couple of bits. I have not been able to measure a performance difference which was not a tiny fraction of the standard deviation on the measurements.
|
#
b40ce416 |
|
12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
|
#
6f1e8c18 |
|
31-Aug-2001 |
Matthew Dillon <dillon@FreeBSD.org> |
Pushdown Giant for: profil(), ntp_adjtime(), ogethostname(), osethostname(), ogethostid(), osethostid()
|
#
24dbea46 |
|
16-Apr-2001 |
John Hay <jhay@FreeBSD.org> |
Update to the 2001-04-02 version of the nanokernel code from Dave Mills.
|
#
8925e63c |
|
10-Sep-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Updates to the ntp pll from John Hay. Submitted by: jhay
|
#
97804a5c |
|
04-Sep-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Update the NTP kernel PLL code to the 2000-08-29 version of Dave Mills nanokernel. The FreeBSD private mode hardpps Type 2 PLL has been removed.
|
#
77978ab8 |
|
04-Jul-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. Pointed out by: bde
|
#
82d9ae4e |
|
03-Jul-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Style police catches up with rev 1.26 of src/sys/sys/sysctl.h: Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources: -sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
|
#
91266b96 |
|
20-Mar-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Isolate the Timecounter internals in their own two files. Make the public interface more systematically named. Remove the alternate method, it doesn't do any good, only ruins performance. Add counters to profile the usage of the 8 access functions. Apply the beer-ware to my code. The weird +/- counts are caused by two repocopies behind the scenes: kern/kern_clock.c -> kern/kern_tc.c sys/time.h -> sys/timetc.h (thanks peter!)
|
#
7fd299cb |
|
23-Jan-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add a couple of strategic sysctls for monitoring. In the rather obscure case of hardpps(), use a type-II PLL if the external signal is phase locked, but a FLL if it isn't.
|
#
6a77f60d |
|
03-Jan-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Create a separate pps_offset variable to use for applying the hardpps() produced offset component. This is tested and behaved stable with frequency offsets from -338.05 to +499.91 PPM. Interestingly the machine I tested this on would fail if the clock were slower than 14.3132 MHz whereas it was perfectly happy to run at 16.384 MHz, in other words [-340PPM ... +14.4%] Make pps_shift tweakable with sysctl.
|
#
19c52219 |
|
29-Dec-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't use time_offset as a leaky bucket variable in hardpps(), this resulted in vastly optimistic offset values reported to userland (typically a factor 40+ too small). Apart from that, the code had two sign-bugs. Apply the hardpps() phase with the right sign with a simply scaling by integration interval. (This may be too stiff at long integration intervals, see below). Allow pps_shiftmax to be reduced again. Before this, the phase lock in hardpps() were broken, but due to two bugs mostly cancelling out, it would end up basically working with a large stochastic component. Now it behaves as one would expect: smooth and quiet. It seems that pps_shiftmax above 7..9 somewhere makes the phaselock too weak to hold onto random walk phase errors from a HP-105 OCXO, which basically means that it is too weak for real-life use with such integration times. This is yet to be resolved. Submitted to: Prof. Dave "NTP" Mills. Tested by: Terje Mathisen <Terje.Mathisen@hda.hydro.com>
|
#
5968e18b |
|
30-Aug-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
pps_shiftmax only exists #ifdef PPS_SYNC Found by: Roger Hardiman <roger@cs.strath.ac.uk>
|
#
82e84c5b |
|
29-Aug-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Update to the latest nanokernel from Dave Mills.
|
#
f711d546 |
|
27-Apr-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Suser() simplification: 1: s/suser/suser_xxx/ 2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>. 3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/ The remaining suser_xxx() calls will be scrutinized and dealt with later. There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce. More changes to the suser() API will come along with the "jail" code.
|
#
a5088017 |
|
04-Apr-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Fix a division which I had made a multiplication. Fix return value from ntp_adjtime(). Submitted by: jhay
|
#
34cffbe3 |
|
04-Apr-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Dang, lost some LL's there.
|
#
f425c1f6 |
|
04-Apr-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Update to latest version from Dave Mills. Mostly textual.
|
#
3a25914c |
|
22-Mar-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make the same size rounding error both ways.
|
#
884ab557 |
|
16-Mar-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't run FLL fodder through the median-filter. Reduce max integration time to 128sec and use 50% exponential decay rather than 256sec/25%.
|
#
fafbe352 |
|
15-Mar-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Allow !suser() R/O access to ntp_adjtime() Noticed by: Reg Clemens <reg@dwf.com>
|
#
32c20357 |
|
11-Mar-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make even more of the PPSAPI implementations generic. FLL support in hardpps() Various magic shuffles and improved comments Style fixes from Bruce.
|
#
c68996e2 |
|
07-Mar-1999 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Integrate the new "nanokernel" PLL from Dave Mills. This code is backwards compatible with the older "microkernel" PLL, but allows ntpd v4 to use nanosecond resolution. Many other improvements. PPS_SYNC and hardpps() are NOT supported yet.
|
#
938ee3ce |
|
13-Jun-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Introduce std_pps_ioctl() to automagically DTRT. Add scaling capability to timex.offset, ntpd-4.0.73 will support this.
|
#
a58f0f8e |
|
09-Jun-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add a tc_ prefix to struct timecounter members. Urged by: bde
|
#
227ee8a1 |
|
30-Mar-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Eradicate the variable "time" from the kernel, using various measures. "time" wasn't a atomic variable, so splfoo() protection were needed around any access to it, unless you just wanted the seconds part. Most uses of time.tv_sec now uses the new variable time_second instead. gettime() changed to getmicrotime(0. Remove a couple of unneeded splfoo() protections, the new getmicrotime() is atomic, (until Bruce sets a breakpoint in it). A couple of places needed random data, so use read_random() instead of mucking about with time which isn't random. Add a new nfs_curusec() function. Mark a couple of bogosities involving the now disappeard time variable. Update ffs_update() to avoid the weird "== &time" checks, by fixing the one remaining call that passwd &time as args. Change profiling in ncr.c to use ticks instead of time. Resolution is the same. Add new function "tvtohz()" to avoid the bogus "splfoo(), add time, call hzto() which subtracts time" sequences. Reviewed by: bde
|
#
7ec73f64 |
|
20-Feb-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Replace TOD clock code with more systematic approach. Highlights: * Simple model for underlying hardware. * Hardware basis for timekeeping can be changed on the fly. * Only one hardware clock responsible for TOD keeping. * Provides a real nanotime() function. * Time granularity: .232E-18 seconds. * Frequency granularity: .238E-12 s/s * Frequency adjustment is continuous in time. * Less overhead for frequency adjustment. * Improves xntpd performance. Reviewed by: bde, bde, bde
|
#
9ada5a50 |
|
15-Feb-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
unifdef -UEXT_CLOCK fdef -UEXT_CLOCK, it is irrelevant. Fix a couple of nits from bde while here anyway.
|
#
e0d781f3 |
|
30-Jan-1998 |
Eivind Eklund <eivind@FreeBSD.org> |
Make POWERFAIL_NMI, PPS_SYNC and NATM new style options. This also fixes a couple of defunct options; submitted by bde.
|
#
6f70df15 |
|
14-Jan-1998 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move almost all the ntp related stuff from kern_clock.c to kern_ntptime.c. The only bit left over is that which is executed in all calls to hardclock(). Various cleanups and staticizing along the road.
|
#
cb226aaa |
|
06-Nov-1997 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move the "retval" (3rd) parameter from all syscall functions and put it in struct proc instead. This fixes a boatload of compiler warning, and removes a lot of cruft from the sources. I have not removed the /*ARGSUSED*/, they will require some looking at. libkvm, ps and other userland struct proc frobbing programs will need recompiled.
|
#
885bd8e4 |
|
30-Dec-1996 |
John Hay <jhay@FreeBSD.org> |
Update our kernel ntp code to the latest from David Mills. The main change is the addition of the FLL code, which is used by the latest versions of xntpd. The kernel PPS code is also updated, although I can't test that yet.
|
#
2baeef32 |
|
06-Dec-1995 |
Bruce Evans <bde@FreeBSD.org> |
Removed unnecessary #includes of vm stuff. Most of them were once prerequisites for <sys/sysctl.h>. subr_prof.c: Also replaced #include of <sys/user.h> by #include of <sys/resourcevar.h>.
|
#
946bb7a2 |
|
04-Dec-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
A major sweep over the sysctl stuff. Move a lot of variables home to their own code (In good time before xmas :-) Introduce the string descrition of format. Add a couple more functions to poke into these marvels, while I try to decide what the correct interface should look like. Next is adding vars on the fly, and sysctl looking at them too. Removed a tine bit of defunct and #ifdefed notused code in swapgeneric.
|
#
a52752a4 |
|
14-Nov-1995 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move KERN_NTP to a more suitable file.
|
#
d2d3e875 |
|
11-Nov-1995 |
Bruce Evans <bde@FreeBSD.org> |
Included <sys/sysproto.h> to get central declarations for syscall args structs and prototypes for syscalls. Ifdefed duplicated decentralized declarations of args structs. It's convenient to have this visible but they are hard to maintain. Some are already different from the central declarations. 4.4lite2 puts them in comments in the function headers but I wanted to avoid the large changes for that.
|
#
9b2e5354 |
|
30-May-1995 |
Rodney W. Grimes <rgrimes@FreeBSD.org> |
Remove trailing whitespace.
|
#
1e35c6c7 |
|
19-Sep-1994 |
Andrey A. Chernov <ache@FreeBSD.org> |
Add vm/vm.h for complete sysctl type. Remove wrong time declaration, already have correct in kernel.h (kern_ntptime not compiled without this changes)
|
#
834d25cd |
|
19-Sep-1994 |
Doug Rabson <dfr@FreeBSD.org> |
Reversed last revision which was a mistake.
|
#
27a0bc89 |
|
19-Sep-1994 |
Doug Rabson <dfr@FreeBSD.org> |
Added msdosfs. Obtained from: NetBSD
|
#
3f31c649 |
|
18-Sep-1994 |
Garrett Wollman <wollman@FreeBSD.org> |
Redo Kernel NTP PLL support, kernel side. This code is mostly taken from the 1.1 port (which was in turn taken from Dave Mills's kern.tar.Z example). A few significant differences: 1) ntp_gettime() is now a MIB variable rather than a system call. A few fiddles are done in libc to make it behave the same. 2) mono_time does not participate in the PLL adjustments. 3) A new interface has been defined (in <machine/clock.h>) for doing possibly machine-dependent things around the time of the clock update. This is used in Pentium kernels to disable interrupts, set `time', and reset the CPU cycle counter as quickly as possible to avoid jitter in microtime(). Measurements show an apparent resolution of a bit more than 8.14usec, which is reasonable given system-call overhead.
|