mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 01:47: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
|
@ -23,7 +23,7 @@ class AHCIController final : public ATAController
|
|||
, public PCI::Device {
|
||||
friend class AHCIPortHandler;
|
||||
friend class AHCIPort;
|
||||
AK_MAKE_ETERNAL
|
||||
|
||||
public:
|
||||
UNMAP_AFTER_INIT static NonnullRefPtr<AHCIController> initialize(PCI::DeviceIdentifier const& pci_device_identifier);
|
||||
virtual ~AHCIController() override;
|
||||
|
|
|
@ -37,7 +37,7 @@ class IDEController;
|
|||
class IDEChannel : public RefCounted<IDEChannel>
|
||||
, public IRQHandler {
|
||||
friend class IDEController;
|
||||
AK_MAKE_ETERNAL
|
||||
|
||||
public:
|
||||
enum class ChannelType : u8 {
|
||||
Primary,
|
||||
|
|
|
@ -19,7 +19,6 @@ class AsyncBlockDeviceRequest;
|
|||
|
||||
class IDEController final : public ATAController
|
||||
, public PCI::Device {
|
||||
AK_MAKE_ETERNAL
|
||||
public:
|
||||
static NonnullRefPtr<IDEController> initialize(PCI::DeviceIdentifier const&, bool force_pio);
|
||||
virtual ~IDEController() override;
|
||||
|
|
|
@ -18,7 +18,6 @@ namespace Kernel {
|
|||
class AsyncBlockDeviceRequest;
|
||||
|
||||
class RamdiskController final : public StorageController {
|
||||
AK_MAKE_ETERNAL
|
||||
public:
|
||||
public:
|
||||
static NonnullRefPtr<RamdiskController> initialize();
|
||||
|
|
|
@ -16,7 +16,7 @@ class RamdiskController;
|
|||
class RamdiskDevice final : public StorageDevice {
|
||||
friend class RamdiskController;
|
||||
friend class DeviceManagement;
|
||||
AK_MAKE_ETERNAL
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<RamdiskDevice> create(const RamdiskController&, NonnullOwnPtr<Memory::Region>&& region, int major, int minor);
|
||||
virtual ~RamdiskDevice() override;
|
||||
|
|
|
@ -22,7 +22,6 @@ namespace Kernel {
|
|||
class AsyncBlockDeviceRequest;
|
||||
class StorageDevice;
|
||||
class StorageController : public RefCounted<StorageController> {
|
||||
AK_MAKE_ETERNAL
|
||||
|
||||
public:
|
||||
virtual ~StorageController() = default;
|
||||
|
|
|
@ -19,7 +19,6 @@ namespace Kernel {
|
|||
|
||||
class PartitionTable;
|
||||
class StorageManagement {
|
||||
AK_MAKE_ETERNAL;
|
||||
|
||||
public:
|
||||
StorageManagement();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue