kernel
Kernel tcp_output “work around” implemented for openSUSE 11.1 Beta 5
As some of you may have followed there is a bug in the 2.6.27 Kernel branch that was introduced when the order tcp output was changed when cleaning up some code. Here is the original commit that introduced the bug.
Ilpo jarvinen clears up some rumors about the bug:
There are some analysis which are claimed to be “very good” circulating around
which tell you that Linux now enabled timestamps in 2.6.27. Sadly that is a
_false_ claim, the timestamps were _not_ enabled for 2.6.27 (or -rc1). Don’t be
fooled wide-spreadness of the claims, sadly multiple distros seem to repeat and
support the false claim in their “semi-official” documentation. Timestamps have
been enabled already for a very long time before 2.6.27…
The real change that happened from 2.6.26 to 2.6.27, as described in the commit
which fixes this particular bug, was a change in the _order_ of the TCP options
(timestamps are tcp options). The order change was not intentional, not that it
should have broken something. The correct fix is to restore the original
ordering. …It is very easy to verify with tcpdump if 2.6.26 does send
timestamps or not (hint: look into SYN packet’s TCP options).
In the original bug report.
Want to know more about this issue, check this page out
Note: I realized that I called the issue a “bug” however it really isn’t a bug in the 2.6.27 kernel, but the non compliance of other hardware in the way it handles the tcp_output, since they shouldn’t care about the order (which is the standard).
Sorry I couldn’t write up more about it.. a bit busy today at work.
Using bootchart to capture your boot process openSUSE 11
Have you booted up your computer and wondered, what is really going on here. Why is it taking so long, or how could a new kernel, or a kernel modification help speed up my boot. Well wonder no more.
There is an application for Linux called Bootchart, which allows you to do just that. First, lets install it and see what we get. To install on openSUSE just run:
sudo zypper in bootchart -y
You now have it installed, but now what? Here you can either type in init=/sbin/bootchartd in the grub menu box, or (this is the approach I took) add an entry into grub’s /boot/grub/menu.lst. For this example we will be utilizing YaST, to copy our current default Grub entry and modify to work with bootchart (you only have to log into this option when you want to chart your boot process).
To do this, do the following:
Log into YaST, go to System on the left hand side, and click on “Boot Loader” in the right hand pane.
This will bring up the Grub Menu Editor, Next Click on the choice that has the check mark next to it (this is your default kernel option that gets chosen when you boot).
Now click on “Add”, and choose the “Clone Selected Section” option
Click “Next”, now in the “Optional Kernel Command Line Parameter” field, put in “init=/sbin/bootchartd” (without the quotes) and assign a reasonable name (I try to keep the name the same as my copied selection, and add - BootChart to the end).
Click on “Ok” and verify you see the new option in your list of Grub menu choices:
Now it is time to reboot your computer and at the Grub menu, choose your new Grub menu option that was just created.
Ok, cool.. So what did that do?
It actaully created a compressed file in /var/log named bootchart.tgz. But having just that file would do nothing for you, since it’s not in a readable format.
So here is where we work all the magic. To format what we just made into a usable format run:
sudo bootchart –format png
Important Note: That is 2 -’s not a single -, 2 different ones - -
Note: at this point you can format it as svg, png or eps by changing the last option.
Here is an example of what you’d get:
![]()
Now, you are all done. You can wow your co-workers, impress your bosses, or do whatever you want to your kernel to try to trim that time down. Now when you next log into your kernel, you just continue going into your original default option, and the next time you want to chart your boot time again, just go back to that option added. If you’re going to do a new kernel to test the new kernels speed, make sure you add the init=/sbin/bootchard to the kernel params when you put it into grub.
Here you can see a comparison I did to see what I would gain from compiling a kernel with just a fewer options (I didn’t want to take too much time and hammering out a very thing kernel, just to show the usage of the tool for this write up, but here are two of my charts).
Vanilla 2.6.27.2 Kernel
SUSE 2.6.27.1 Kernel from openSUSE 11.1 Beta 3
I hope you enjoyed this write up, and with all the extra time on your hands you should check out:
BootChart.org as they obviously have good material there regarding bootchart.
Search
Powered by
Tags
10.3 11.0 11.1 apache bash beta bootchart codeweavers compiz drivers emerald emulation esx fat ass tomato man filesystems flash fonts gnome grub ibm kde kde4 kernel knoppix linux lotus notes lvm Microsoft nomad nvidia openoffice opensuse performance repositories review scripting security tech tutorial ubuntu user management VMWare windows wine workstationArchives
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- February 2008
- January 2008
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
Ben Kevan's Blog
- Connecting to Linux via RDP using NOMAD on openSUSE 11.1
- Red Hat (RHT) Profits Soar, is Novell (NOVL) Next?
- Dropping KDE 3.5 for openSUSE 11.2 isn’t really a bad thing
- 5 Days on openSUSE 11.1 was an early X-Mas present
- Unexpected Downtime
- Amarok 2.0 Final Released - Shipping with openSUSE 11.1
- PCLinuxOS 2009 Beta 2 - Review, Thoughts and Screenshots
- Opera 10.0 Alpha 1 on openSUSE 11.1 - Review
- Ding Dong the Emeralds Back Compiz
- 11.1 Build Service Repositories being Built




