network is very slow when loading any tcp module that I compiled
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 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 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 |
problem solved
Turns out - I was using redhat kernel sources incorrectly.
I had downloaded the correct sources but rushed to compile the sources from inside folder, instead of using the rpmbuild command. The rpmbuild applied a whole bunch of patches to bring sources to the right state. After compiling the generated sources, tcp modules behave correctly. I am still surprised that tcp would be so broken (slow) with older sources. Maybe some kind of incompatibility in interface was introduced.. Foofoo |
All times are GMT -5. The time now is 11:25 AM. |