mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 03:17:35 +00:00
Kernel: Remove the kmalloc_eternal heap :^)
This was a premature optimization from the early days of SerenityOS. The eternal heap was a simple bump pointer allocator over a static byte array. My original idea was to avoid heap fragmentation and improve data locality, but both ideas were rooted in cargo culting, not data. We would reserve 4 MiB at boot and only ended up using ~256 KiB, wasting the rest. This patch replaces all kmalloc_eternal() usage by regular kmalloc().
This commit is contained in:
parent
a1be135891
commit
ac7ce12123
46 changed files with 5 additions and 82 deletions
|
@ -13,7 +13,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class ConsoleDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class DeviceManagement {
|
||||
AK_MAKE_ETERNAL;
|
||||
|
||||
public:
|
||||
DeviceManagement();
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class FullDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -31,7 +31,6 @@ class KeyboardClient;
|
|||
class HIDManagement {
|
||||
friend class KeyboardDevice;
|
||||
friend class MouseDevice;
|
||||
AK_MAKE_ETERNAL;
|
||||
|
||||
public:
|
||||
HIDManagement();
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
namespace Kernel {
|
||||
class KCOVDevice final : public BlockDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class MemoryDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class NullDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -30,7 +30,7 @@ UNMAP_AFTER_INIT void PCISerialDevice::detect()
|
|||
// If this is the first port of the first pci serial device, store it as the debug PCI serial port (TODO: Make this configurable somehow?)
|
||||
if (!is_available())
|
||||
s_the = serial_device;
|
||||
// NOTE: We intentionally leak the reference to serial_device here, as it is eternal
|
||||
// NOTE: We intentionally leak the reference to serial_device here.
|
||||
}
|
||||
|
||||
dmesgln("PCISerialDevice: Found {} @ {}", board_definition.name, device_identifier.address());
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class PCISerialDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
public:
|
||||
static void detect();
|
||||
static SerialDevice& the();
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class RandomDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class SerialDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
|
@ -39,7 +39,6 @@ struct VMWareCommand {
|
|||
};
|
||||
|
||||
class VMWareBackdoor {
|
||||
AK_MAKE_ETERNAL;
|
||||
|
||||
public:
|
||||
VMWareBackdoor();
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
namespace Kernel {
|
||||
|
||||
class ZeroDevice final : public CharacterDevice {
|
||||
AK_MAKE_ETERNAL
|
||||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue