1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 08:07:34 +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:
Andreas Kling 2021-12-28 19:12:22 +01:00
parent a1be135891
commit ac7ce12123
46 changed files with 5 additions and 82 deletions

View file

@ -21,7 +21,6 @@ struct BochsDisplayMMIORegisters;
class BochsGraphicsAdapter final : public GenericGraphicsAdapter
, public PCI::Device {
AK_MAKE_ETERNAL
friend class GraphicsManagement;
private:

View file

@ -17,7 +17,6 @@
namespace Kernel {
class FramebufferDevice final : public GenericFramebufferDevice {
AK_MAKE_ETERNAL
friend class DeviceManagement;
public:

View file

@ -16,7 +16,6 @@
namespace Kernel {
class GenericFramebufferDevice : public BlockDevice {
AK_MAKE_ETERNAL
friend class DeviceManagement;
public:

View file

@ -27,7 +27,6 @@ class GraphicsManagement {
friend class IntelNativeGraphicsAdapter;
friend class VGACompatibleAdapter;
friend class Graphics::VirtIOGPU::GraphicsAdapter;
AK_MAKE_ETERNAL
public:
static GraphicsManagement& the();

View file

@ -47,7 +47,6 @@ enum RegisterIndex {
class IntelNativeGraphicsAdapter final
: public VGACompatibleAdapter {
AK_MAKE_ETERNAL
public:
struct PLLSettings {
bool is_valid() const { return (n != 0 && m1 != 0 && m2 != 0 && p1 != 0 && p2 != 0); }

View file

@ -17,7 +17,6 @@ namespace Kernel {
class VGACompatibleAdapter : public GenericGraphicsAdapter
, public PCI::Device {
AK_MAKE_ETERNAL
public:
static NonnullRefPtr<VGACompatibleAdapter> initialize_with_preset_resolution(PCI::DeviceIdentifier const&, PhysicalAddress, size_t framebuffer_width, size_t framebuffer_height, size_t framebuffer_pitch);
static NonnullRefPtr<VGACompatibleAdapter> initialize(PCI::DeviceIdentifier const&);

View file

@ -35,7 +35,6 @@ class FramebufferDevice;
class GraphicsAdapter final
: public GenericGraphicsAdapter
, public VirtIO::Device {
AK_MAKE_ETERNAL
friend class FramebufferDevice;
public: