Saturday, March 31, 2007

Not All GigE Are Equal

As a consequence of work I've been doing lately since I joined Sun, I've learned some things that folks who care a great deal about performance might like to know.

The most important of these is that not all gigabit cards are created equal. And even among those that are, some of them get preferential treatment at Sun.

One surprise: the gigE device that gets the most preferential treatment is not a Sun branded NIC. In fact, its a device that you can readily find at your local computer retailer.

I speak of bge.

The bge (Broadcom) NIC has some very, very sophisticated logic on it, that Crossbow is going to be able to take advantage of to get you some very nice performance acceleration, plus some greatly added support for QoS and stack virtualization. If you're thinking about a NIC, my first choice would be a Broadcom NIC.

The Cassini (Sun Gigaswift) has many of the same features, but costs more, and is harder to find. And, the Cassini isn't supported by some of the crossbow features -- yet. This issue will of course get resolved, but for the immediate now, your best bet is a broadcom NIC, especially if you want to run Solaris.

The other commodity NICs (RealTek 8169, Intel Pro/G, etc.) are certainly nice enough, but the features on these nics are an incremental update over similar 100 Mbit hardware, and don't hold a candle to the separate hardware rings, advanced classification engines, and similar features present in the broadcom and cassini hardware. (Noteably, these features will be more important with 10G NICs, and devices like Neptune -- Sun's 10G offering, will be featuring them prominently.) And finally, now that 10G and stack virtualization need these features, Solaris is going to start taking advantage of them. Some of this is already in Nevada, and more is on the way soon.

I wouldn't be surprised if other high-end NIC developers (Intel? Marvell?) start offering these features in future updates, although I expect some players (such as RealTek) will continue to focus on much simpler (and hence cheaper) devices.

Tuesday, March 27, 2007

Congratulations new OGB

Its official!

The OpenSolaris Constitution has been ratified. Yay!

Congratulations to the new OGB as well. I'm generally very pleased with the election results, despite not getting elected myself.

A few interesting tid bits:

1) Rich Teer is the only non-Sun OGB member. (And apparently he has done some work for Sun.)
2) The entire OGB seems to be made up of engineers.
3) Neither female member was elected.
4) There are two ARC members sitting. (James Carlson and Alan Coopersmith.)
5) There seems to be good geographical representation... i.e. MPK (and SFBay in general) don't seem to be overweighted.
6) Several members have sat on other FOSS boards (at least Glynn and Alan)

I would have liked to see someone with more marketing and program management elected.

In future years, I'd like to see the process for Core Contributor grants revised. I think only folks who are active in the community should have this role ... I think a lot of people got grants just because they committed code as part of their day jobs at Sun. Also, there should be a limit to how many Core Contributors a given community can elect... the large number of user-group contributors could have had an adverse effect on results. I would also like to see 1) term limits, and 2) limits on the number of members working for (affiliated with) any one employer. (Not more than 3.) But those are ideas for the new OGB to think about.

Again, congratulations to the new OGB, and a BIG thank-you to everyone who voted (regardless of whether you voted for me or not.)

Thursday, March 22, 2007

Just Voted

I just cast my ballot for the OGB and ratification of the constitution.

I will not tell you who I voted for, but I will say two things.

First off, the decision was hard. There are some excellent candidates running. I'm pretty confident that we are going to have a great OGB, made of up reasonable individuals who are passionate about OpenSolaris. (Yes, I did vote for myself, but I also voted for quite a few other people... there are 7 seats, after all.)

Second, I did vote to ratify the Draft Consitution. I hope you did, too.

The window of time to cast your ballot is quickly drawing to a close. Polls close on Monday, so be sure to cast your ballot before then. Unlike some others, I waited a bit, primarily because I wanted to hear what some of the other candidates had to say. So even if you have not voted yet, please do so today. Even if you abstain from voting on the candidates, at least make a statement on the ratification of the constitution. I believe it is important to get at least a 51% turnout. I believe there are around 260 eligible voters, so far only 85 ballots have been cast.

So, as Glynn says, think of the kittens and VOTE!

Tuesday, March 20, 2007

first day at Sun

Apparently, I am not the only one who started here at Sun yesterday. Auspicious? Wait and see...

Meantime, I spent yesterday meeting the group, and getting to know what I'll be working on. There's some exciting stuff going on, and while I can't really talk about it now, the good news is that eventually the good stuff will make into OpenSolaris.

Tuesday, March 13, 2007

OGB interview

Simon Phipps (aka webmink) interviewed me yesterday as part of the series of interviews he is giving to the OGB candidates. This is an excellent way to get some idea of each of the candidates; if you're a Core Contributor, I recommend checking his blog out.

Thursday, March 8, 2007

OGB Postition Statement

As you probably know, I'm running for a seat on the OpenSolaris Governing Board (OGB). I've answered a number of questions already, but I really like how Keith Wesolows has set up a position statement, so much so that I'm going to do the same. Much of my layout and presentation follows his, but rest assured that there are real meaty differences here. :-)

Before I do that, after reviewing a lot of the material that has been submitted by nominees, I do think there is a really good group of candidates who are as passionate and level-headed as I am running... its likely that I'll be happy with the board that is elected regardless of whether I'm on it or not. Now, on to the details... I'll start with my positions on things, along with a short bio at the end.

  • The Constitution

The document isn't perfect, but it is an excellent start, and we can address issues with it as we move along. Without it, the OGB cannot exist, and the project will not be able to exist as a legitimate entity independent of Sun.
  • Community Structure
We can do better.

The biggest issues I have with the way communities and projects are laid out now, is that it seems very ad-hoc. However, I'm not sure that we should throw the baby out with the bath water. I think there is a need for communities to exist without specific code bases, and many projects may have efforts which span otherwise logical code boundaries (e.g.. work in both the ON consolidation and the Gnome consolidation.)

Simply providing better guidance on the creation of groups, the conditions under which a group should be terminated, and clarifying how projects are created and terminated can be done.

I do believe that every Project should have a Group that "owns" it, and that some of the way that we have created Groups (using DTrace as an example) should really have been projects under some umbrella Project.
  • Change control, SCM, and ARCs
Open it up!

Historically "significant" changes to Solaris have had to go through ARCs. (Architectural Review Committees.) As painful as the process can often seem to be, I think that the end result has been the creation of the finest operating system on the planet. So I don't want to muck with it too much.

However, I believe that if OpenSolaris is going to really be Open, then the review process for it needs to be open, and that these ARCs need to include representation from stakeholders in the community. And I think there can be some minor tweaking to help the community in dealing with this process. I would consider this the first step that OGB should be pushing Sun for, simply because it does not require any change in the technology or tools to make it happen right now.

Ultimately, the community needs to have the ability to access the code directly, and there needs to be some powers that are delegated to the community, such as RTI advocacy. More on that later.
  • Licensing
No simple answer.

This seems to be a hot-bed of controversy. Let me state some things unequivocally. First off, I do not believe that changing licensing is at this time likely to significantly improve mindshare or marketshare of OpenSolaris. Second, I do believe there is a real risk of a license-driven fork if the "core" of OpenSolaris is dual-licensed. Third, for various reasons, I believe that wholesale relicensing of OpenSolaris to GPL (either v2 or the draft v3 that I've seen) is bad idea that will ultimately severely harm a number of commercial stakeholders (among them Sun, but not just Sun.)

However, I'm not a license zealot, and I believe that there may be cases where dual licensing to enable certain components of OpenSolaris to be used in foreign projects may ultimately be in the best interests of the project. If the goal of a project is to have as many people using a certain technology, then it is also in the best interest to eliminate the barriers to use. For example, the project may decide that Linux adoption of DTrace is something that has concrete benefits. In this case, those portions could be dual licensed, on a case by case basis.

One important stumbling block, however, is the concern about enhancements to the code from an external project under a license other than CDDL. Ultimately I would prefer to see such contributions able to come back to Open Solaris under CDDL. I'm not sure how best to achieve this, though; and if the concern arises, it may be a good idea to get some legal assistance with the matter.
  • On Commercial Use and Intellectual Property
I make my living writing software.

Furthermore, I've worked at Sun in the past, expect to start working their again in about two weeks, and have most recently worked at a significant Sun licensee and technical partner.

I would like to see Open Solaris continue to encourage commercial endeavors based on it. We should continue to have a friendly relationship with Sun and other companies (such as my soon-to-be-previous employer) and encourage their participation.

I also believe that there is a case for software patents, but that the patent process is badly busted and needs repair. You won't find me at a protest against patents or against companies that make money selling software, but you also won't find any content I don't have a legal right to have on any of my systems. But you will find me contributing time, energy, and actual code to Open Source projects I believe in. Right now Open Solaris is the first and foremost of those.
  • The Role of OGB
Strong non-technical leadership.

I believe OGB has a limited number of tasks to accomplish. First, I think OGB can help provide non-technical leadership for the Open Solaris umbrella. By that, I mean that OGB can help direct what markets the project should be pursuing, how we image ourselves, arrangement of constitutional matters (such as the election itself), etc. Second, OGB can help act as a liason between the community (and projects and groups within it), and other 3rd parties, including Sun. Third, this first OGB has, IMO, an important goal of getting some of the infrastructure and political issues worked out (perhaps by creation of a separate group) to finish making the project independent of Sun. Finally, it can act as the final arbiter in cases where an issue cannot be resolved at a lower level (such as at a project or group level.)

I do not believe that OGB should be providing any technical direction whatsoever, although some of its members will undoubtedly do so as a result of their other roles. Indeed, apart from the fairly large set of tasks the initial OGB has to perform to address organizational and administrative shortcomings, I do not expect the OGB to be very involved in the day to day running of the project.
  • The role of Sun
A contributor, perhaps the most important contributor.

(Disclaimer: I will shortly be working for Sun -- indirectly, but they will be paying my salary nonetheless. I am running as an individual however, because I'm passionate about Solaris. I just also happen to be going to work for Sun also because I'm passionate about Solaris. Well, that, and the nice salary...)

Sun is a major contributor, and the copyright holder for nearly all of the source we work with. However, by creation of the Open Solaris project, Sun has made it clear that it wants the project to stand on its own.

There are various technical, administrative, and political barriers still standing in the way. None of them are insurmountable. I think OGB should be actively trying to drive solutions to these problems (perhaps not the actual solutions themselves, but make sure that the right people are working on them, and track the progress.)
  • Technical Matters
Yes, I'm an engineer.

I think I've already stated that OGB shouldn't be involved in the technical direction of Open Solaris. However, a few items that have been asked already.

Binary compatibility. Much of the appeal of Solaris has been the fact that it has been stable from release to release. I would be hard pressed to find a case for breaking this. Stability levels and standards like the DDI have been a key value proposition for Solaris in the past, and will continue to be so if we don't break it.

Quality first. The various processes that Sun has had in place for Solaris for over a decade now have done a lot to ensure that Solaris is the high quality product it is. Change for its own sake is bad. Peer review is good. Oversight review by a strong (genius!) technical leadership (ARC) is even better. I don't want to change this culture. I do want to figure out how to bring non-Sun parties to the table though, and involve the whole community. Its going to be tough for some people who are used to "commit first, fix it later, and hope that someone else will document it" policies in certain other open source projects. But we'll all be better for it.

Now, all that being said, there are probably questions I forgot to answer, or simply haven't thought of. You can ask me, or the whole group of candidates at I'll post any of my replies here.

About Me (Bio)

I'm a 35 year old software engineer from southern California, where I currently reside. (I telecommute.) I have a BS in Computer Science from San Diego State University (class of '95). My areas of expertise are kernel, device drivers, embedded systems, networking, and security. I've hacked on Linux, NetBSD, and Solaris, as well as some proprietary kernels (including the Sun Ray firmware). Far and away I prefer Solaris -- I could go on and on about its benefits... but you already know them, right?

I've worked as a UNIX systems administrator at Qualcomm, as a software engineer (systems software and device drivers) at Sun, and as a kernel, networking, and thin-client engineer at Tadpole Computer (now General Dynamics.) I'm expecting to start a new job as a Contractor at Sun working on Solaris starting March 19, 2007. (My whole resume is online if you really want to know the details.)

I also have a loving wife, and am blessed with two girls and a boy (ages 5, 7, and 6). We also have two cats.

When I'm not in front of a computer, or spending time at home with the family, I enjoy white water kayaking (including ocean surfing in playboats), sailing, skiing, swimming and reading.

New blog

This is my new blog, replacing the short-lived Celestial Bodies, Amphibians, and Reptiles blog I set up while an employee at General Dynamics (formerly Tadpole Computer.)

There will be more here in short bit, particularly an update on my position for the OpenSolaris Governing Board (OGB).