serenity/Userland
Tom 5f51d85184 Kernel: Improve time keeping and dramatically reduce interrupt load
This implements a number of changes related to time:
* If a HPET is present, it is now used only as a system timer, unless
  the Local APIC timer is used (in which case the HPET timer will not
  trigger any interrupts at all).
* If a HPET is present, the current time can now be as accurate as the
  chip can be, independently from the system timer. We now query the
  HPET main counter for the current time in CPU #0's system timer
  interrupt, and use that as a base line. If a high precision time is
  queried, that base line is used in combination with quering the HPET
  timer directly, which should give a much more accurate time stamp at
  the expense of more overhead. For faster time stamps, the more coarse
  value based on the last interrupt will be returned. This also means
  that any missed interrupts should not cause the time to drift.
* The default system interrupt rate is reduced to about 250 per second.
* Fix calculation of Thread CPU usage by using the amount of ticks they
  used rather than the number of times a context switch happened.
* Implement CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE and use it
  for most cases where precise timestamps are not needed.
2020-12-21 18:26:12 +01:00
..
DynamicLoader Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
Tests Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
adjtime.cpp Userland: Add an "adjtime" utility 2020-11-10 19:03:08 +01:00
allocate.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
aplay.cpp Applications+Userland: Switch to new Audio::Loader API 2020-12-02 16:31:30 +01:00
arp.cpp Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
avol.cpp Userland: Use Core::ArgsParser for 'avol' 2020-08-06 20:41:13 +02:00
base64.cpp base64: Fix not outputting all decoded data 2020-11-22 16:07:00 +01:00
basename.cpp Userland: Use Core::ArgsParser for 'basename' 2020-08-06 20:41:13 +02:00
beep.cpp Userland: Add beep utility 2020-12-16 17:29:28 +01:00
cal.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
cat.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
checksum.cpp LibCore: Rename File::ShouldCloseFile{Description => Descriptor} 2020-10-25 13:59:41 +01:00
chgrp.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
chmod.cpp Everywhere: Fix more typos 2020-10-03 12:36:49 +02:00
chown.cpp chown: Don't allow "invalid" uid/gid specs (#2596) 2020-06-21 09:54:07 +02:00
chroot.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
clear.cpp clear: Use pledge() 2020-02-18 11:35:47 +01:00
CMakeLists.txt Loader: Stabilize loader & Use shared libraries everywhere :^) 2020-12-14 23:05:53 +01:00
copy.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
cp.cpp Userland: Fix overly-eager loop detection in cp (#4368) 2020-12-09 20:56:50 +01:00
crash.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
cut.cpp cut: Accept input from stdin if no files are given 2020-07-03 19:30:13 +02:00
date.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
df.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
dirname.cpp AK: Eradicate the uses of out(). 2020-10-24 12:56:25 +02:00
disasm.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
disk_benchmark.cpp Userland: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
dmesg.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
du.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
echo.cpp Userland: Add support for the '-n' flag to 'echo' 2020-07-30 18:47:41 +02:00
env.cpp LibC: stdlib: Add clearenv() function 2020-12-17 19:39:56 +01:00
expr.cpp Userland: Add support for 'match' in 'expr' 2020-11-27 21:32:41 +01:00
false.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
fgrep.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
find.cpp Userland: Implement find -name clause 2020-11-28 14:28:58 +01:00
flock.cpp Everywhere: Replace some uses of fork/exec with posix_spawn 2020-06-29 12:04:27 +02:00
functrace.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
grep.cpp LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
gron.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
gunzip.cpp AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
head.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
hexdump.cpp Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
host.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
hostname.cpp Userland: Use Core::ArgsParser for 'hostname' 2020-08-06 20:41:13 +02:00
html.cpp LibCore: Rename File::ShouldCloseFile{Description => Descriptor} 2020-10-25 13:59:41 +01:00
id.cpp Userland: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
ifconfig.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
ini.cpp Userland: Add "ini" command to read and write .ini config files 2020-07-11 23:56:33 +02:00
jp.cpp jp: Remove trailing comma at end of object/array to make output valid JSON 2020-12-14 20:25:01 +01:00
js.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
keymap.cpp keymap: Add copyright header 2020-06-18 23:00:19 +02:00
kill.cpp AK: Rename new_out to out and new_warn to warn. 2020-11-09 16:21:29 +01:00
killall.cpp Userland: Make killall accept signal names as well 2020-10-29 11:49:47 +01:00
ln.cpp ln: Make the 'path' argument optional 2020-12-16 23:26:35 +01:00
ls.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
lsirq.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
lsof.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
lspci.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
man.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
md.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
misbehaving-application.cpp Userland: Provide a misbehaving application 2020-08-17 00:01:13 +02:00
mkdir.cpp AK: Rename FileSystemPath -> LexicalPath 2020-05-26 14:35:10 +02:00
mkfifo.cpp Userland: add mkfifo(1) 2020-07-19 11:46:37 +02:00
mknod.cpp Everywhere: Redundant inline specifier on constexpr functions (#3807) 2020-10-20 18:08:13 +02:00
modload.cpp Userland: Use Core::ArgsParser for 'modload' 2020-08-06 20:41:13 +02:00
modunload.cpp Userland: Use Core::ArgsParser for 'modunload' 2020-08-06 20:41:13 +02:00
more.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
mount.cpp LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
mv.cpp Userland: Make mv capable of moving multiple files 2020-11-29 10:14:43 +01:00
nc.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
nl.cpp LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
notify.cpp LibGUI: Make GUI::Application a Core::Object 2020-07-04 14:05:57 +02:00
ntpquery.cpp Lagom: Add ntpquery to lagom build 2020-11-12 21:21:33 +01:00
open.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
pape.cpp LibGUI: Make GUI::Application a Core::Object 2020-07-04 14:05:57 +02:00
passwd.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
paste.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
pidof.cpp Userland: Do not put a trailing space after the resulting pids in pidof 2020-10-29 22:27:24 +01:00
ping.cpp Userland: Basic statistics for ping 2020-11-10 12:06:04 +01:00
printf.cpp Userland: Add an implementation of printf 2020-09-11 21:41:23 +02:00
pro.cpp LibProtocol: Remove use of ByteBuffer::wrap() in protocol API 2020-12-19 13:09:02 +01:00
profile.cpp profile: Allow launching a command with profiling enabled 2020-02-22 11:01:37 +01:00
ps.cpp ps: Widen the username column slightly 2020-05-15 00:01:01 +02:00
purge.cpp Userland: Use Core::ArgsParser for 'purge' 2020-08-06 20:41:13 +02:00
readlink.cpp Userland: Add readlink(1) 2020-06-17 15:02:03 +02:00
realpath.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
reboot.cpp Meta+Userland: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
rm.cpp Userland: Add -v verbose flag to 'rm' 2020-11-17 09:40:03 +01:00
rmdir.cpp Userland: Use Core::ArgsParser for 'rmdir' 2020-08-06 20:41:13 +02:00
seq.cpp seq: Check start, step, end for NaN 2020-11-08 21:40:18 +01:00
shutdown.cpp LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
sleep.cpp Userland: Fix a signal race condition 2020-09-10 16:00:11 +02:00
sort.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
stat.cpp Kernel+LibC: Fix various build issues introduced by ssize_t 2020-05-23 15:27:33 +02:00
strace.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
su.cpp su: Refuse to run if stdin is not a TTY 2020-11-08 16:16:03 +01:00
sync.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
syscall.cpp Kernel: Tidy up the syscalls list by reorganizing the enumerator macro 2020-08-04 18:17:16 +02:00
sysctl.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
tail.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
tar.cpp AK: Eradicate calls to warn(). 2020-10-25 18:52:51 +01:00
tee.cpp AK: Make Vector use size_t for its size and capacity 2020-02-25 14:52:35 +01:00
test-bindtodevice.cpp Test: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
test-compress.cpp LibCompress: Add unit tests for CanonicalCode. 2020-09-11 16:07:45 +02:00
test-crypto.cpp LibTLS+LibCrypto: Remove all remaining uses of ByteBuffer::wrap() 2020-12-19 18:29:13 +01:00
test-gfx-font.cpp Userland: Tests: Use mkstemp temporary files in tests 2020-11-15 00:50:57 +01:00
test-js.cpp test-js: Use new format functions 2020-12-03 21:55:02 +01:00
test-pthread.cpp Userland: Add a test for pthread_once() 2020-11-24 21:36:28 +01:00
test-web.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
test.cpp Test: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
test_efault.cpp Meta+Userland: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
test_env.cpp LibC: Add tests for getenv, setenv, putenv 2020-08-01 16:46:04 +02:00
test_io.cpp AK: Eradicate calls to warn(). 2020-10-25 18:52:51 +01:00
top.cpp LibCore+top: Use pid_t for pgid/pgrp/sid numbers 2020-09-06 19:04:47 +02:00
touch.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
tr.cpp Meta+Userland: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
tree.cpp AK: Rename new_out to out and new_warn to warn. 2020-11-09 16:21:29 +01:00
true.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
truncate.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
tt.cpp LibPthread: Return errors as positive return values 2020-12-12 21:28:12 +01:00
tty.cpp Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
umount.cpp LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
uname.cpp Userland: Use Core::ArgsParser for 'uname' 2020-08-06 20:41:13 +02:00
uniq.cpp Userland/uniq: Add uniq utility 2020-10-25 14:37:39 +01:00
unzip.cpp Userland: Fix buffer overflow in unzip 2020-10-01 21:15:35 +02:00
uptime.cpp uptime: Use pledge() 2020-02-18 13:29:54 +01:00
useradd.cpp Userland: useradd: Add command line option to set user password 2020-12-21 09:57:26 +01:00
userdel.cpp Userland: userdel: Resolve home directory realpath before removal 2020-12-21 12:23:50 +01:00
utmpupdate.cpp Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
w.cpp Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
watch.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
wc.cpp Style: Remove uses of NULL, substituting nullptr 2020-10-13 13:52:52 +02:00
which.cpp Userland: Use find_executable_in_path in which. 2020-09-16 19:39:17 +02:00
whoami.cpp whoami: Use pledge() and unveil() 2020-02-18 11:35:47 +01:00
xargs.cpp Userland: Write some '--help' descriptions where appropriate 2020-12-06 00:06:53 +01:00
yes.cpp Userland: Use Core::ArgsParser for 'yes' 2020-08-06 20:41:13 +02:00