I am out of ideas, spent a full day on this..
Here is situation:
- I have a quad-core amd64 server running centos 2.6.18-53
- When I download a file from it, I get a speed close to 1MB/s.
- then if I load alternate tcp modules (cubic, vegas, etc) I get a result close to that speed.
- I now want to do a few tweaks to a module (say tcp_cubic) so I downloaded the sources from centos for kernel 2.6.18-53.
- I compile the modules from source, using kernel config from my running centos (found under /boot). In theory these should be exactly same as the precompiled ones that come with the kernel.
- Then I try to load the newly compiled tcp_cubic, and the download is super slow! Like around 20KB/S.
- This is the same slowness issue for ANY tcp module I compiled.
I am sure that the correct architecture is selected in config:
Code:
CONFIG_X86_64=y
CONFIG_64BIT=y
CONFIG_X86=y
Also after compiling, the file type is correct 64bits:
Code:
/lib/modules/2.6.18-53.el5/kernel/net/ipv4/tcp_cubic.ko: ELF 64-bit LSB relocatable, AMD x86-64, version 1 (SYSV), not stripped
When running the download, top does not show any kind of suspicious activity, cpu is low, no error in dmesg.
I did a packet capture and it does not show any retransmission or error.
The only thing I can think of is some kind of timer/scheduler issue.
Anyone knows if there can be some incompatibility there between a running kernel and modules?
I really need your help!
FooFoo