Update: 10 GBit Home Network

First of all my 10 Gigabit connection is still working. Over the last year I used varying linux kernels between 3.18 and 4.0. But in terms of features those kernels are over 2 years old. Therefore this post deals with the issues from last time concerning kernel releases 4.1 and greater.

I guess there are many methods to fix this problem, but I started to debug with git-bisect because I know which kernel release did (not) work.


If you just want a short explanation about git-bisect, you are right here, but for more details there is a good guide how to bisect a kernel on the gentoo wiki. Basically we tell the git-bisect tool which git version works and which one doesn’t. But before starting we have to clone the official git repository.

cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable

Then copy your kernel configuration file (.config) into /usr/src/linux-stable. Create a symlink from  /usr/src/linux to the new repository.

cp linux/.config linux-stable 
ln -s linux-stable linux

The we start bisect and mark the good and the bad kernel version. After that we build the new custom kernel and reboot.

cd linux
git bisect start | tee -a /root/bisect.log
git bisect good v3.18.45 | tee -a /root/bisect.log
git bisect bad v4.1.15 | tee -a /root/bisect.log
make olddefconfig && make prepare && make modules_prepare && make -j5 && make modules_install && make install && emerge -qv @module-rebuild && grub-mkconfig -o /boot/grub/grub.cfg

Then we need a method to determine if this custom kernel has the issues. I copied a few linux ISOs over the 10 Gigabit connection to have a reproducible test case. If everything worked you have a good kernel, otherwise a bad one.

cd /usr/src/linux
git bisect bad | tee -a /root/bisect.log
git bisect bad | tee -a /root/bisect.log

Afterwards build a new kernel, reboot and test again. In my case it took 14 steps to find the first bad commit. This doesn’t mean that there is something wrong in this commit, but it is a sign that this commit triggers some incompatibility in your setup. So, this commit changed/fixed the behaviour of the Active State Power Management (ASPM) from PCIe. My solution was to disable ASPM in my bios and now everything works with kernel version 4.9.9.

As always, feel free to comment, if you liked this post or have questions.

Leave a Reply

Your email address will not be published. Required fields are marked *