Friday, January 1, 2010

Out with the Old, In with the New

Happy New Year (2010) everyone!

I thought I'd take a second to reflect on the accomplishments of the past year, and look forward to what I think is in store for my contributions to OpenSolaris this year.

It's hard to believe that I've been a member of the OpenSolaris community for over 5 years now. (I was a pilot member.)

Undoubtedly this past year my biggest contribution to OpenSolaris was the new audio framework (Boomer) and many new audio drivers.

I did a lot of other work besides, including a bunch of work on NIC drivers (including a new common MII framework and the yge driver which supports Marvell Yukon 2 parts), and various changes to the SDcard framework.

I've also developed a device driver for a very interesting (and very high performance) hybrid storage device (which won't be integrating for non-technical reasons), and a new storage framework for block oriented storage devices. (This framework, blkdev, will be integrating once we're out past the build restrictions.)

I also did a lot of cleanup of legacy and stale code, which hopefully reduces the install foot-print and shrinks compile times somewhat.

2009 was also the year I became a full voting member of PSARC, and I was privileged to serve 3 months as PSARC chair. (The chair rotates amongst all active PSARC members on a roughly quarterly schedule.)

This past year is also the year that I became the top contributor to ON in separate integrations, since the OpenSolaris project started, at least as reported by ohloh.net. (Note that the statistics only cover the open portion of the ON consolidation.)

So what's coming up in the next year? Here's what I expect to be working on:

  • 10GbE ethernet for Mellanox ConnectX devices (hermon). This is probably my top priority at the moment. The work is largely being done by Mellanox, but I'm the Sun engineer ultimately responsible.
  • Sun Ray audio. This is one of my biggest priorities. We want a Boomer driver for Sun Ray audio, bringing in-kernel mixing to Sun Ray appliances.
  • Interrupt-less audio. This is a major rethink of the way we process audio in the kernel, and reduces a lot of complexity in device drivers and is an enabler for several other new features. The code for this is done, so expect an integration in b135 or 136.
  • Better audio hotplug support. (Especially for USB audio.)
  • Better audio virtualization support (especially with Trusted Extensions.)
  • Additional audio device support. (Asus Xonar, via audiocmihd, for example.)
  • Integration of blkdev, and hopefully faster, simpler, better kernel support for simple block oriented flash-storage devices. (I.e. those devices that don't natively understand the SCSI command set.)
  • Fixes for a variety of network device driver bugs. I've already got a few of these changes queued up.
  • Broader support for the MII framework in other NIC drivers. (I have changes queued up for rtls, already, for example.)
  • Further cleanup of not-needed legacy code.
  • Continued contributions and participation at PSARC.
  • Support for SDXC card media (and possibly also development of exFAT filesystem code, dependent on licensing concerns.)
  • Possibly work on various track pad bits, depending on time and resource. (Synaptics support finally?)
There are probably other things that will happen, and I'm sure that our new owners at Oracle (assuming that the deal gets finalized, which looks almost unstoppable at this point) will have some ideas about how my priorities will be spent.

One thing is that I feel very privileged to have been able to work on the OpenSolaris code base, and to continue to be able to do so. I often reflect that its amazing that I get paid to do this work -- I think I'd be far less productive if I didn't enjoy my job so much. When my management asks me to take a break and do something fun for a change, I think he has a hard time understanding that for me hacking on OpenSolaris code is fun. I genuinely hope that I continue to be so privileged for the foreseeable future.

3 comments:

Bill said...

Thanks for all that you've contributed to OpenSolaris in the past year.

Will you be able to make your driver for the DDRdrive device available via some other mechanism?

Garrett D'Amore said...

I can potentially make my DDRdrive driver available in source form, however, it comes without any guarantees or support. In fact, I can not even properly supply bug fixes as I no longer have access to the hardware.

If you've purchased the hardware, and want source code, please let me know, and I'll send you a copy.

The vendor has told me that he's planning on developing his own driver, and will be supplying it to his customers. I know that I've provided him a lot of technical advice, and he's had access to my source code. However, he's not permitted to use the source code unless he adheres to the provisions of the CDDL, which I think were one of the reasons why he has declined to pursue integration into OpenSolaris.

Andrew said...

Happy New Year! Not surprised to hear that you are, by one measure, the largest contributor to OpenSolaris - your name is on a lot of cool stuff that has come along in the past year. The new stuff you talk about looks exciting as well. Keep up the good work. :-)