This is possible in VirtualBox:
Trace:
�[34;1m[init_stage2(1:1)]�[0m: ASSERTION FAILED: m_used != m_pages
�[34;1m[init_stage2(1:1)]�[0m: ../Kernel/VM/PhysicalRegion.cpp:71 in AK::NonnullRefPtrVector<Kernel::PhysicalPage> Kernel::PhysicalRegion::take_contiguous_free_pages(size_t, bool, size_t)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc01237db (next: 0xc11248a0)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc04b7fdf (next: 0xc1124920)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc04a9046 (next: 0xc11249c0)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc0497e68 (next: 0xc1124a20)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc049854b (next: 0xc1124a50)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc04a303a (next: 0xc1124ac0)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc05ac845 (next: 0xc1124b40)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc05af295 (next: 0xc1124ca0)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc02c4b16 (next: 0xc1124d10)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc033173d (next: 0xc1124d60)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc03302f5 (next: 0xc1124de0)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc0330357 (next: 0xc1124e00)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc05abdb8 (next: 0xc1124e50)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc04eb4ed (next: 0xc1124f20)
�[34;1m[#0 init_stage2(1:1)]�[0m: 0xc01225d3 (next: 0x00000000)
Doing this on QEMU gives a different assertion failure:
[init_stage2(1:1)]: ASSERTION FAILED: range.has_value()
[init_stage2(1:1)]: ../Kernel/VM/PhysicalRegion.cpp:89 in unsigned int Kernel::PhysicalRegion::find_contiguous_free_pages(size_t, size_t)
#0 0xc012b8e6 in halt_this () at ../Kernel/Arch/i386/CPU.cpp:846
#1 Kernel::Processor::halt () at ../Kernel/Arch/i386/CPU.cpp:2092
#2 0xc01237e0 in __assertion_failed () at ../Kernel/Arch/i386/CPU.cpp:2329
#3 0xc04b6c61 in Kernel::PhysicalRegion::find_contiguous_free_pages () at ../Kernel/VM/PhysicalRegion.cpp:86
#4 0xc04b80fa in Kernel::PhysicalRegion::take_contiguous_free_pages () at ../Kernel/VM/PhysicalRegion.cpp:76
#5 0xc04a9046 in Kernel::MemoryManager::allocate_contiguous_supervisor_physical_pages () at ../Kernel/VM/MemoryManager.cpp:706
#6 0xc0497e68 in Kernel::ContiguousVMObject::ContiguousVMObject () at ../Kernel/VM/ContiguousVMObject.cpp:41
#7 0xc049854b in Kernel::ContiguousVMObject::create_with_size () at ../Kernel/VM/ContiguousVMObject.cpp:35
#8 0xc04a303a in Kernel::MemoryManager::allocate_contiguous_kernel_region () at ../Kernel/VM/MemoryManager.cpp:499
#9 0xc05ac845 in Kernel::E1000NetworkAdapter::initialize_rx_descriptors () at ../Kernel/Net/E1000NetworkAdapter.cpp:325
#10 0xc05af295 in Kernel::E1000NetworkAdapter::E1000NetworkAdapter () at ../Kernel/Net/E1000NetworkAdapter.cpp:228
#11 0xc02c4b16 in operator() () at ../Kernel/Net/E1000NetworkAdapter.cpp:192
#12 call () at .././AK/Function.h:103
#13 0xc033173d in AK::Function<void (Kernel::PCI::Address, Kernel::PCI::ID)>::operator()(Kernel::PCI::Address, Kernel::PCI::ID) const () at .././AK/Function.h:57
#14 0xc03302f5 in Kernel::PCI::Access::enumerate(AK::Function<void (Kernel::PCI::Address, Kernel::PCI::ID)>&) const () at ../Kernel/PCI/Access.cpp:144
#15 0xc0330357 in Kernel::PCI::enumerate(AK::Function<void (Kernel::PCI::Address, Kernel::PCI::ID)>) () at ../Kernel/PCI/Access.cpp:150
#16 0xc05abdb8 in Kernel::E1000NetworkAdapter::detect () at ../Kernel/Net/E1000NetworkAdapter.cpp:184
#17 0xc04eb4ed in init_stage2 () at ../Kernel/init.cpp:279
#18 0xc01225d3 in do_assume_context ()
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too