1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-23 18:52:34 +00:00
serenity/Libraries/LibCore
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
..
Account.cpp LibCore: Use new format functions in some places. 2020-10-17 23:20:31 +02:00
Account.h LibCore: Add Core::Account for login management. 2020-09-21 20:18:05 +02:00
ArgsParser.cpp LibCore: Offer to display a general description 2020-12-06 00:06:53 +01:00
ArgsParser.h LibCore: Offer to display a general description 2020-12-06 00:06:53 +01:00
CMakeLists.txt LibCore: Add DirectoryWatcher 2020-12-14 23:05:53 +01:00
Command.cpp Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
Command.h LibCore: Add command() utility functions 2020-09-15 21:43:29 +02:00
ConfigFile.cpp LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
ConfigFile.h LibCore: Add ConfigFile::get_for_lib() 2020-08-18 12:07:32 +02:00
DateTime.cpp LibCore: Use new format functions in some places. 2020-10-17 23:20:31 +02:00
DateTime.h LibCore: Comment that DateTime is in local time. 2020-08-20 20:53:43 +02:00
DirectoryWatcher.cpp LibCore: Add DirectoryWatcher 2020-12-14 23:05:53 +01:00
DirectoryWatcher.h LibCore: Add DirectoryWatcher 2020-12-14 23:05:53 +01:00
DirIterator.cpp LibCore: Use new format functions in some places. 2020-10-17 23:20:31 +02:00
DirIterator.h LibCore: Add find_executable_in_path. 2020-09-16 19:39:17 +02:00
ElapsedTimer.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
ElapsedTimer.h Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
Event.cpp AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
Event.h AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
EventLoop.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
EventLoop.h LibCore: Add 'notify_forked()' to tear down the eventloop in forked child 2020-09-09 20:35:21 +02:00
File.cpp LibCore: Rename File::ShouldCloseFile{Description => Descriptor} 2020-10-25 13:59:41 +01:00
File.h LibCore: Rename File::ShouldCloseFile{Description => Descriptor} 2020-10-25 13:59:41 +01:00
FileStream.h Everywhere: Add missing <AK/ByteBuffer.h> includes 2020-11-15 13:11:21 +01:00
Forward.h LibCore: Fix typo in Forward.h 2020-06-11 22:44:54 +02:00
GetPassword.cpp LibCore: add get_password(). 2020-07-28 17:07:22 +02:00
GetPassword.h LibCore: add get_password(). 2020-07-28 17:07:22 +02:00
Gzip.cpp LibCore: Reduce debug spam from successful gzip decoding 2020-11-29 22:20:27 +01:00
Gzip.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
IODevice.cpp LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
IODevice.h LibCore: Make IODevice::read_line() return a String 2020-12-13 11:54:11 +01:00
IODeviceStreamReader.h LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
LocalServer.cpp LibCore: Prefer strlcpy over strncpy, fix overflow 2020-08-24 00:45:03 +02:00
LocalServer.h LibCore: Remove a bunch of unnecessary forward declarations 2020-02-15 00:32:33 +01:00
LocalSocket.cpp LibCore: Remove some debug spam in Local{Server,Socket} 2020-06-22 21:21:38 +02:00
LocalSocket.h LibCore: Add API for taking over an accepted socket from SystemServer 2020-06-21 21:54:30 +02:00
MimeData.cpp LibCore: Make `guess_mime_type_based_on_filename()' recognise CSV files 2020-11-24 21:38:13 +01:00
MimeData.h LibGUI+WindowServer: Make DragOperation hold a MimeData instance 2020-11-08 21:46:13 +01:00
NetworkJob.cpp ProtocolServer: Implement and handle download progress 2020-05-03 12:59:26 +02:00
NetworkJob.h ProtocolServer: Implement and handle download progress 2020-05-03 12:59:26 +02:00
NetworkResponse.cpp LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
NetworkResponse.h LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
Notifier.cpp LibCore: Add Notifier::close 2020-09-16 17:50:43 +02:00
Notifier.h LibCore: Add Notifier::close 2020-09-16 17:50:43 +02:00
Object.cpp LibCore: Add formatter for Object. 2020-10-17 23:20:31 +02:00
Object.h LibCore: Add formatter for Object. 2020-10-17 23:20:31 +02:00
ProcessStatisticsReader.cpp Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
ProcessStatisticsReader.h Kernel: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
Property.cpp LibCore: Make Core::Object properties more dynamic 2020-09-15 21:46:26 +02:00
Property.h LibCore: Make Core::Object properties more dynamic 2020-09-15 21:46:26 +02:00
puff.cpp LibCore: Rename puff.c => puff.cpp 2020-07-29 14:41:57 +02:00
puff.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
Socket.cpp LibCore: Expose some Socket properties to make then inspectable 2020-12-16 17:12:13 +01:00
Socket.h LibCore: Change the signature of Socket::send() to use Span. 2020-07-27 19:58:09 +02:00
SocketAddress.cpp LibCore: Move LogStream::operator<< overloads into cpp files 2020-02-15 00:58:52 +01:00
SocketAddress.h Everywhere: Port to String::copy_characters_to_buffer() 2020-08-30 17:35:27 +02:00
StandardPaths.cpp LibCore+Base: Move user-specific config files to $HOME/.config 2020-08-05 17:40:47 +02:00
StandardPaths.h LibCore+Base: Move user-specific config files to $HOME/.config 2020-08-05 17:40:47 +02:00
SyscallUtils.h LibCore: Put safe_syscall() debug spam behind #ifdef 2020-06-22 21:19:10 +02:00
TCPServer.cpp LibCore: Make TCPServer::listen() report failure instead of asserting 2020-09-28 22:14:23 +02:00
TCPServer.h LibCore: Remove a bunch of unnecessary forward declarations 2020-02-15 00:32:33 +01:00
TCPSocket.cpp Build: Make Lagom build under macOS (#2341) 2020-05-23 15:31:30 +02:00
TCPSocket.h LibCore: Remove a bunch of unnecessary forward declarations 2020-02-15 00:32:33 +01:00
Timer.cpp LibCore: Add Timer::restart() convenience API 2020-06-11 22:35:37 +02:00
Timer.h LibCore: Add Timer::restart() convenience API 2020-06-11 22:35:37 +02:00
UDPServer.cpp LibCore: UDPServer::bind: Replace bind failure assert() with perror() 2020-12-18 19:20:30 +01:00
UDPServer.h LibCore: Fix UDPServer up to properly receive data 2020-04-04 12:25:33 +02:00
UDPSocket.cpp LibCore: remove redundant UDPSocket constructor 2020-08-10 20:03:18 +02:00
UDPSocket.h LibCore: remove redundant UDPSocket constructor 2020-08-10 20:03:18 +02:00