mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
Kernel/E1000: Bump RX/TX buffer count to 256/256
We were frequently dropping packets when downloading large files. Then we had to wait for TCP retransmission which slowed things down. This patch dramatically improves E1000 throughput by increasing the number of RX/TX buffers from 32/8 to 256/256. The largest chunk of JavaScript from Discord now downloads in roughly 1 second instead of 7 seconds. :^)
This commit is contained in:
parent
2ff9db0245
commit
06cf01cd1e
|
@ -231,8 +231,8 @@ UNMAP_AFTER_INIT E1000NetworkAdapter::E1000NetworkAdapter(PCI::Address address,
|
|||
: NetworkAdapter(move(interface_name))
|
||||
, PCI::Device(address)
|
||||
, IRQHandler(irq)
|
||||
, m_rx_descriptors_region(MM.allocate_contiguous_kernel_region(Memory::page_round_up(sizeof(e1000_rx_desc) * number_of_rx_descriptors + 16).release_value_but_fixme_should_propagate_errors(), "E1000 RX Descriptors", Memory::Region::Access::ReadWrite).release_value())
|
||||
, m_tx_descriptors_region(MM.allocate_contiguous_kernel_region(Memory::page_round_up(sizeof(e1000_tx_desc) * number_of_tx_descriptors + 16).release_value_but_fixme_should_propagate_errors(), "E1000 TX Descriptors", Memory::Region::Access::ReadWrite).release_value())
|
||||
, m_rx_descriptors_region(MM.allocate_contiguous_kernel_region(Memory::page_round_up(sizeof(e1000_rx_desc) * number_of_rx_descriptors).release_value_but_fixme_should_propagate_errors(), "E1000 RX Descriptors", Memory::Region::Access::ReadWrite).release_value())
|
||||
, m_tx_descriptors_region(MM.allocate_contiguous_kernel_region(Memory::page_round_up(sizeof(e1000_tx_desc) * number_of_tx_descriptors).release_value_but_fixme_should_propagate_errors(), "E1000 TX Descriptors", Memory::Region::Access::ReadWrite).release_value())
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -79,8 +79,8 @@ protected:
|
|||
|
||||
void receive();
|
||||
|
||||
static constexpr size_t number_of_rx_descriptors = 32;
|
||||
static constexpr size_t number_of_tx_descriptors = 8;
|
||||
static constexpr size_t number_of_rx_descriptors = 256;
|
||||
static constexpr size_t number_of_tx_descriptors = 256;
|
||||
|
||||
IOAddress m_io_base;
|
||||
VirtualAddress m_mmio_base;
|
||||
|
|
Loading…
Reference in a new issue