Wednesday, February 28, 2007

Greener pastures

As some of you already know, I am leaving Tadpole Computer to pursue new opportunities with Sun Microsystems.

I want to state up front that my decision to move is based on the belief that Sun can offer more for my career, and it should not reflect in any way upon my feelings about Tadpole or General Dynamics. I would continue to recommend Tadpole products to people looking for SPARC or Sun Ray mobile solutions, and I still believe Tadpole has some outstanding products. I also am pleased to have had the opportunity to work with some outstanding individuals while at Tadpole. I hold the team members in the highest regard, and I hope I might have the opportunity to continue to work with Tadpole on projects in the future.

I am bringing this up here and now, primarily because I feel that with the OGB elections coming up, I need to disclose this significant change in affiliation.

To ease the minds of potential voters, I can offer my personal reassurances that I will do my utmost to prevent my affiliation from affecting my actions as an OGB member... I believe strongly that I can vote and act in a manner that best supports my desire to do what is best for the operating system and the community without letting my employer have undue sway over my vote.

That said, I think I've already expressed my view that OpenSolaris needs to continue to be a world class operating system, and that it needs to continue to be able to fill certain commercial niches, such as those serviced by hardware OEMs like Tadpole. Voters looking for an FSF/GPLv3 shill on the board are well advised to look elsewhere than me. :-)

For the curious, I'll be working initially within the Solaris networking group, specifically targetting certain IP performance areas.

Thursday, February 15, 2007

throwing my hat...

into the ring.

Yep, I've decided to run for the OGB as well. Here's my position statement that I posted to cab-discuss earlier:

I am an employee of a SPARC OEM partner, where I work on Solaris and OpenSolaris (as well as other embedded products). I also have contributed to OpenSolaris in a personal capacity. I've worked with Solaris since 2.5.

My expertise is kernel software, especially device drivers, cryptography, mobile platform support, and networking (802.3 and 802.11 in particular). I've had my hand in various other bits as well.

I have built kernels, many of which panic, and many of which don't. Some of which have made other people panic. I also was responsible for suggesting the name of a Sun product which is the Greek word for "panic". (I also wrote the kernel software for said product.)

I've contributed code to a number of open source projects over the years.

My position on OpenSolaris is that I want to continue to contribute and innovate, and enable others to do so. I want to avoid things that would fracture the community, or forking the project. I want to continue to enable business to build solutions on the OpenSolaris platform. For this reason I'm somewhat opposed to GPL or other licenses that are viral in nature for components that are part of the core platform. (The kernel and critical supporting software, for example.) I want to try to work with hardware vendors to get them to recognize the benefit of providing "first class" and "first party" support for OpenSolaris with their products.

Sunday, February 11, 2007

OGB elections

Gman's recent announcement of OGB candidacy is interesting. The draft constitution allows for self-nomination, so it is reasonable, but as yet no other nominations have been made. (At least not publicly, as far as I can tell.)

I'd like to see some more formal means of putting forth nominations. I have several that I'd like to make.

We also need a way for candidates to decline a nomination. Or perhaps candidates can just openly state that they are not interested in serving on OGB. I'm not sure. It would be nice if the board would put forth a statement to the membership at large about this step.

In case anyone is thinking about nominating me, I'd be happy to serve on OGB, though at the moment I think it is a bit premature for me to start campaigning; I want to see what the other nominations look like. One thing is certain, there are a number of high-quality candidates, and I'm confident that elections are likely to result in an OGB with a strong technical and community makeup. (I've been involved with other FOSS communities in the past, and so far, despite noises on cab-discuss that might give the impression otherwise, I've found the OpenSolaris community to be amongst the least political and most technical of them. And yes, I consider this a strong point in our favor.)

Friday, February 9, 2007

A comedy of errors... (IP tuning for the perverse)

As some may know, my afe ethernet drivers are currently being tested by Sun prior to integration into Solaris.

I've been spending time with Alan DuBoff at Sun to diagnose a certain set of problems. It turns out that I believe that there is a hardware problem with a certain configuration causing many frames to be dropped (large increasing values of the fcs_errors statistic.) At one point it looked like ~5-10% of the packets were getting dropped. The devices seems to function, but it performs poorly.

That in itself isn't too interesting. But add to this an obscene level of test, where UDP packets with very large sizes (~60K) are sent to the device at wirespeed.

Well, if you do the math, you realize that almost no such UDP packets will get thru. But more importantly, while this is occuring, IP has to track all these frames for packet reassembly. At 100Mbps this adds up to 12MB/sec. How long does IP hold these packets for, before giving up on them and discarding them.

On this particular system, Alan noticed that literally hundreds of megabytes of memory were in use. No, they weren't leaked. They were just waiting to be discarded!

I think this is a particular "opportunity" for some more tuning in TCP/IP . Perhaps a maximum quota on outstanding fragments (after which they are discarded in FIFO order?)

Alan has promised to pick up another NIC, so we can follow up with further test.

Meantime, I'm very, very grateful for kstats. Without fcs_errors, we would almost never have been able to figure out what was going on. One possible side benefit of all this, is that I have added some improvements to the error handling (including a full chip reset), so in perverse scenarios like this the chip has a better chance of recovering from errors.

PS: This also suggests an opportunity for a test version of a driver that has a random "drop" tunable, which drops packets at a specified percentage. Who knows what other bugs might turn up?

PPS: I think this may be a potential DoS attack, just flood a system with IP fragments. Of course, this might be much harder to do if the attacker does not have access to a local network. Any firewall should be secure agains this kind of abuse.

Monday, February 5, 2007

OpenGL on Solaris

One of our on-going challenges at Tadpole has been to locate a graphics chip that can provide hardware acceleration of OpenGL operations, has power, heat, and real-estate constraints suitable for use in a laptop, has SPARC drivers (or open-sourced drivers), and can be made to operate with legacy Solaris applications.

It seems that the market place is conspiring to create products that are unsuitable for use in mobile platforms and are closed. I'm not sure what the market can do, but we need to let the chip manufacturers know that the FOSS community needs open drivers for platforms other than x86, and that we need solutions suitable for use in systems without a few square meters and a few hundred watts to power them.

(ATI, Nvidia, I'm looking squarely at you!)

We also really need to pressure Sun into opening up their OpenGL implementation, so that either drivers to plugin to their implementation or alternate (and compatible) implementations can be created.

(FYI, alternate implementations of OpenGL exist from vendors like XiG, but they are not ABI compatible due to Sun's closed & proprietary ABI.)

Wii got it!

Well, my wife found a Wii at the local Wal-Mart on Friday. As we spent pretty much all day Saturday playing Wii games, I couldn't help wondering if analysts will ever be able to correlate reduced productivity with initial launches like Wii, WoW, etc.

That said my biggest peeves against Wii are the high cost of controllers, and the fact that to play gamecube games I have to also purchase gamecube controllers. So right now I own two Wii Remotes, two Nunchuks, two Classic Controllers, and a gamecube controller. And it still isn't enough to enable two-player gamecube games or 4 player Wii games. There is a significant market for Wii controllers, I think. How long til 3rd party controllers show up on the market?