Category Archives: General

Blog spam

The blog spammers have found me. I woke up to lots of comment approval requests this morning. Fortunately, due to Bob’s incident I had already turned on the comment approval feature. Since there is a link on his site back here I figured there was a good chance they would hit me soon.

It’s disgusting how these people will take advantage of others for their own gain.

Linux on a 512 CPU system

This still amazes me. A single Linux kernel image can be used for a 512 CPU machine. See SGI’s work here and the related SlashDot story. Sure you may have heard about Linux clusters with thousands of CPUs before. However, in most cases this was a cluster of machines with 1-4 processors each. The scalability requirements from the kernel side of things are very different when you are dealing with a few CPUs versus 512. You can find out more about the Altrix line at SGI‘s website.

Linux running the worlds fastest computer, wow!

What really fascinates me about this scalability work is the algorithms required. Making a system like this work efficiently isn’t about small optimizations it’s about having algorithms that can scale well.

One technique currently used in the Linux kernel is RCU. Linux journal has had couple of good articles on RCU which are available from their website.

LQL Update

The first release of the Linux QoS Library (LQL) which was on August 31st has been well received. LQL 0.5.0 has been downloaded about 150 times. I have received a few very nice emails from people ecstatic about it, including one even before I had completed sending the release announcements. The first LQL patch arrived in my inbox yesterday; though I haven’t had time to look at it yet.

The resumption of classes has meant I have not had as much time to work on LQL as I would like. However, I have been making slow progress on some new features.

Currently, I am adding statistics support to the QDiscs. This new API will return all of the information in struct tc_stats. The current implementation of this requires a few new classes.

-+ LQLStats
----+ LQLStatsQDisc
------+ LQLStatsQDiscHTB
------+ LQLStatsQDiscSFQ
------+ etc

The LQLQDisc class is getting a new method called lql_qdisc_get_stats() which each subclass will override to return their own LQLStatsQDisc object that contains methods specialized for the specific QDisc. So the expected usage is something like the following.

LQLStatsQDiscHTB *statsHTB = NULL;
statsHTB = lql_qdisc_htb_get_stats(LQL_QDISC(htb));
g_print("Bytes: %i\n", lql_stats_get_enqueued_bytes(LQL_STATS(statsHTB)));
g_print("Packets: %i\n", lql_stats_get_enqueued_packets(LQL_STATS(statsHTB)));

Once the QDisc statistics features are done I will begin on the classes.

CBC and Internet streaming

George Farris alerted me to a change in the way CBC does radio streaming on the Internet. Previously, CBC supported QuickTime, Real Player and Windows Media player. As of August 30, 2004 they only support Windows Media player. CBC has an announcement about this change which they ironically call “Live CBC Radio streaming improvements”. You can find the link to it on this page.

From the perspective of a desktop Linux user this decision is bad. There is no easy way to listen to Windows Media streams from Linux. Real Player was not open source but at least it worked in Linux. Since the CBC audio streams were the only reason I had Real Player installed I guess I can remove it now. I always felt bad having it installed anyway.

From a free software perspective this decision doesn’t really change much. Both Real and Windows Media are proprietary formats. I wish there was some way to make the general computing audience understand that free does not equal standard. A standard way to stream audio or video over the Internet would allow anyone to do their own implementation. The free downloads offered by Microsoft and Real in the form of Windows Media player and Real Player are just a way to lock the user into their technology. Standards that allow others to innovate drive the world forward not proprietary lock-in.

There is hope for standards based Internet media. Xiph.Org is building a set of truly free audio and video codecs. Also, Fluendo is building a free software streaming media server that will use the free codecs from Xiph.Org.

Queueing

I little while ago I asked a friend to proof read my LQL project page. We ended up in a discussion about the proper spelling of Queueing. Bob blogged about this conversation over here so I won’t bother repeating the outcome. However, I would like to add this one link that provides additional information.