mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:17:46 +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
11
AK/kmalloc.h
11
AK/kmalloc.h
|
@ -38,17 +38,6 @@ inline size_t malloc_good_size(size_t size) { return size; }
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef KERNEL
|
||||
# define AK_MAKE_ETERNAL \
|
||||
public: \
|
||||
void* operator new(size_t size) { return kmalloc_eternal(size); } \
|
||||
void operator delete(void*, size_t) { VERIFY_NOT_REACHED(); } \
|
||||
\
|
||||
private:
|
||||
#else
|
||||
# define AK_MAKE_ETERNAL
|
||||
#endif
|
||||
|
||||
using std::nothrow;
|
||||
|
||||
inline void* kmalloc_array(Checked<size_t> a, Checked<size_t> b)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue