summaryrefslogtreecommitdiff
path: root/kernel/drivers
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-06-26 22:02:16 +0200
committerAnton Kling <anton@kling.gg>2024-06-26 22:02:16 +0200
commit55fef89be9eb9da8b40bfdc1cc20475421ca5554 (patch)
tree99805aeaf4d525808d042dde4f3cb66ebcd96ce0 /kernel/drivers
parentfddda835a28bbc52a8d8450395a3e57e181782a8 (diff)
TCP: Delay ACKs to batch together packets ACKed
Diffstat (limited to 'kernel/drivers')
-rw-r--r--kernel/drivers/pit.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/drivers/pit.c b/kernel/drivers/pit.c
index 80f55aa..db9cd2a 100644
--- a/kernel/drivers/pit.c
+++ b/kernel/drivers/pit.c
@@ -43,10 +43,16 @@ void set_pit_count(u16 _hertz) {
outb(PIT_IO_CHANNEL_0, (divisor & 0xFF00) >> 8);
}
+int last_flush = 0;
+
extern int is_switching_tasks;
void int_clock(reg_t *regs) {
clock_num_ms_ticks += 5;
switch_counter++;
+ if (clock_num_ms_ticks - last_flush > 50) {
+ tcp_flush_acks();
+ last_flush = clock_num_ms_ticks;
+ }
if (switch_counter >= hertz) {
EOI(0x20);
switch_counter = 0;