comments

All | General | Java | Music
Main | Next page »

Friday Dec 09, 2005

< EOT >

< EOT > 

Friday Nov 11, 2005

CMT and a velvet elvis

One of \*the\* best parts about working at Sun is the opportunity to see and become involved in all of the truly amazing work being done here. Earlier this week I saw a news flash come by on our internal news portal about Richard and his ACM Queue Article. The way in which Sun is tackling the CMT problem, with the entire system perspective in mind is very exciting.

This also presented a good opportunity to suggest to Richard that there is a certain award winning picture of him that may have generated more interest than the corporate mug shot they used for that Sunweb article ;)


Tuesday Oct 11, 2005

NAS Conference 2005

The 2005 NAS Conference is just around the bend. The event starts next Tuesday, October 18th in Santa Clara. It's not too late to register. The agenda is packed and the early look I've had of the presentations have been very interesting. Hope to see you there.

www.nasconf.com


A Thread of Grace: Review

My wife just finished up with A Thread of Grace for her bookclub so this weekend I got my chance to read it. Overall, this was a didisappointment. The potential for a great novel was there, but it suffered due to poor execution. Writing in the multi-character perspective is challenging for the best of writers, unfortunately Mary Doria Russell wasn't up to the challenge. The novel is very fragmented and choppy. I'm still a fan of the author and the concept was good, best of luck on the next one (I hope it doesn't take another 7 years).


Friday Sep 09, 2005

A Thread of Grace

As I've mentioned before (although I mispelled her name), I'm a big fan of Mary Doria Russell. Her debut works The Sparrow and Children of God are great books. She's got a new novel out called A Thread of Grace. My wife is using it for her book club this month, so I'll have to wait a couple of weeks before stealing it away. Reviews so far indicate this is a thoughtful book that challenges the reader. I can't wait.

Friday Jul 29, 2005

Summer Vacation

It's been a busy month and a half with end of year stuff including MRP (Medium Range Planning) and writing annual performance reviews for the folks on my team. Fortunately, Sun shuts down for the week of the 4th and I was able to squeeze in some downtime in beautiful Colorado. I spent a lot of time with the family and old friends as well as time at the lake and hiking. Here's a snapshot from the top of Calypso Cascades in the Wild Basin portion of Rocky Mountain National Park. It's not a great shot (I'm a hiker not a photographer) but I thought the dandelion on the rock was cool.



Here's a shot of me and my crew at the bottom of the falls:



and here's Jules with her oldest brother Johnathan just before she woke up from her nap in the pack. I've learned after several years of hiking with little ones on my back that you can always tell when they fall asleep, they get about 10 lbs heavier:



Wild Basin and Indian Peaks are a great part of the park to visit because the hikes are fantastic and less travelled than other more popular parts of the park. I spent 8 years living within 30 minutes of the park and have hiked hundreds of times there, but it never gets old.

Here's a shot of sunrise on the drive up just south of Trinidad Colorado (a fantastic little city to visit)



There's no real point to this post other than to play with the editor to see if I could insert pics and make an update after a month away.

Friday Jun 17, 2005

Scuzzy SCSI Configuration

The good, the bad, the dirty laundry it all comes out now with OpenSolaris. So I'll take the opportunity to air a small bit of the good, bad and dirty laundry associated with the Solaris SCSI and Fibre Channel disk drivers. I worked on these drivers in a prior life at Sun and even got a putback or two into Solaris 10 before moving on to different things.

The primary functions of a device driver are to adhere to an OS interface and control a device (duh!). The Solaris target disk drivers support a very wide range of devices that go beyond what you might expect, to include everything from an internal SCSI drive or CD ROM to an enterprise class multi-terabyte Fibre Channel array. Over time the need has arisen to control unique device behavior at the SCSI command layer which is administered via the Solaris target disk drivers (e.g. sd, ssd). By default these drivers will support any SCSI or Fibre Channel disk or CD ROM device. The device table is used to enable behavior that differs from the default.

This unique configuration is implemented via the driver device table (or .conf file, more on that below).

http://cvs.opensolaris.org/source/xref/usr/src/uts/common/io/scsi/targets/sd.c#507

Currently this table is used to primarily configure retries, throttling, and sundry behaviors. Take a look at the header file for the complete list of configurable behaviors:

http://cvs.opensolaris.org/source/xref/usr/src/uts/common/sys/scsi/targets/sddef.h#1636

So far so good. Using the device table you can configure a set of behaviors for a device matched on it€™s vid (vendor), pid (product/model) and revision strings as defined by its response to the SCSI INQUIRY command. The implementation behind this is a pretty simple bit mask, each bit indicates that a particular behavior needs to be set uniquely from the default. Here'€™s the source for that processing:

http://cvs.opensolaris.org/source/xref/usr/src/uts/common/io/scsi/targets/sd.c#3432

Now we move on to the bad and the downright ugly. Starting with this little gem of a comment:

   1635 /\*
   1636  \* Driver Property Bit Flag definitions
   1637  \*
   1638  \* Unfortunaltely, for historical reasons, the bit-flag definitions are
  
1639  \* different on SPARC, INTEL, & FIBRE platforms.
   1640  \*/

Nope, I'€™m not talking about the misspelling of "€œunfortunately" (although that's a shame), I'™m talking about the fact that the bit-flag definitions are different between platforms and device types. This means that setting bit 3 to modify the Not Ready Retry value on the Sparc platform for a SCSI device is used to set the Busy retry value on the Sparc platform for a fibre channel device. Ugh!!! Why? This is the result of a long and sordid history having to do with separate and divergent source files for the sd and ssd driver that have been brought back together over time starting with Solaris 9 and now with Solaris 10. As the source files were brought back together, we ensured that when new configurable options were added they are done so using the same bit for all platforms and device types.

All of this results in a truly hideous nest of #ifdefs that you see in the device table, and the header file bit definitions. The resulting morass makes it very difficult to determine the proper bitset for a specific platform and device table. Having spent more time than I care to remember wading through this crud I put together the table you see below.

Bit

sd (Sparc)

ssd (Sparc)

sd/ssd (x86/x64)

0

throttle (max)

throttle (max)

throttle (max)

1

controller type

not ready retries

controller type

2

not ready retries

busy retries

fabricate device id

3

fabricate device id

fabricate device id

disable caching

4

disable caching

disable caching

play BCD

5

busy retries

controller type

read subchannel BCD

6

play BCD

play BCD

read TOC TRK BCD

7

read subchannel BCD

read subchannel BCD

read TOC ADDR BCD

8

read TOC TRK BCD

read TOC TRK BCD

no READ_HDR

9

read TOC ADDR BCD

read TOC ADDR BCD

read CD XD4

10

no READ_HDR

no READ_HDR

not ready retries

11

read CD XD4

read CD XD4

busy retries

12

reset retries

reset retries

reset retries

13

reservation release time

reservation release time

reservation release time

14

TUR check

TUR check

TUR check

15

throttle (min)

throttle (min)

throttle (min)

16

disable disksort

disable disksort

disable disksort

17

enable LUN reset

enable LUN reset

enable LUN reset


The header file has a brief description of what these behaviors mean and appropriate #defines for all, but to fully understand the functionality you'€™ll need to walk through the driver to see how it modifies behaviors based upon these settings. Some are obvious (e.g. retry and throttle values), some are a bit more obscure and have to do with legacy device behaviors (e.g. disable caching, controller type, etc.). The
Red entries above are associated with either legacy SCSI disk or CD ROM behaviors and are all but obsolete. They've been preserved to ensure no field regressions. Take another quick look at the device table and you can see that for the majority of entries we are setting the retry and throttle values as well as indicating support for LUN resets and disabling the use of disksort(9F) which is not as applicable for modern fibre channel arrays.

Can it get any uglier you ask? Well, yes it can. To make it easier to unit test and validate support for a new device as well as debug driver behaviors, the device configuration is exposed via the driver configuration file (e.g. sd.conf, ssd.conf). The purpose of this .conf file access was never for anything more than developer use. This is not a public documented interface of the driver. It is simply a more efficient means of verifying the proper behavior set for a device without having to continually modify, recompile, and reload the driver. However, over time partners and customers began to uncover the fact that they could set some of these options via the .conf file. While never a supported interface for public consumption the fact remains that there are .conf files out there being used and/or recommended so while we would have liked to clean all of this up as part of bringing the sd and ssd source back together, we'€™ve preserved it to ensure no customer experienced a regression based on a .conf file they may have been using. So this dirty little secret of backdoor configurability is a blessing and a curse. As a developer its useful to be able to quickly modify the behaviors without having to change the source, recompile, and reload every time. Unfortunately, for some time it wasn'€™t just the developer using this option. So, now that our OpenSolaris community includes many more developers, here is how you can add an entry to sd.conf (for SCSI devices) or ssd.conf (for Fibre Channel devices) for a specific device.

The .conf entry for sd and ssd take the following form:

sd-config-list=
"VENDOR1 PRODUCT1","sd-ver1-tst-data";

sd-ver1-tst-data= 1,0x1F01F,12,1,5,0,0,8,0,0,0,0,0,0,5,60,0,2,0;

Where:
"VENDOR1 " is the contents of the vendor identification field of the device response to a SCSI INQUIRY.

"PRODUCT1" is the contents of the product identification field of the device response to a SCSI INQUIRY.
"sd-ver1-tst-data" is the property array name
sd-ver1-tst-data is the property array definition.

Note: use ssd-config-list for the fibre channel driver.
Note:
the vendor and product fields must be 8 bytes in length. If the device response is less than 8 bytes the .conf file entry must be padded with spaces.
Note:
the bit fields specified in the above table is based on the current driver implementation. These fields have been updated in legacy releases through patches. If the following error occurs, it means an older version of the driver is installed on the system which does not support all of the parameters. The user can either update to the latest driver patch, or change the field and flags based to the length specified in the message (i.e. n).

€œdata property sd-ver1-tst-data list size is incorrect. No props set.
œSize expected: version + 1 flagword + n props.

The property array is defined by version, flag, integer array. The version is always set to 1 and the flag is a bit mask indicating the members of the integer array to be used during device configuration. The user should set only those bits in the mask corresponding to the configurable parameters being set. For example if the user wishes to configure the maximum throttle for sd the flag bit mask should be set to 0x00001. Similarly if the user wishes to configure max throttle, and min throttle for ssd the flag bit mask should be set to 0x10001.

This is a sample sd config list entry for the sparc platform to set the reservation release time, min throttle, and enable LUN resets.

sd-config-list=
"VENDOR1 PRODUCT1","sd-ver1-tst-data";

sd-ver1-tst-data= 1,0x00015,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,2,0,1;

#
#NOTE: Field Definitions

# sd-ver1-tst-data= version, flags, throttle (max), ctype, not_ready_retry,
# fabricate devid, nocache, busy_retries, rsvd, rsvd, rsvd, rsvd, rsvd,
# rsvd, reset_retries, reservation_release_time, TUR_check,
# throttle (min), disable_disksort, LUN reset

This is a sample ssd config list entry for the sparc platform to set the reservation release time, min throttle, and enable LUN resets.

ssd-config-list=
"VENDOR1 PRODUCT1","ssd-ver1-tst-data";

ssd-ver1-tst-data= 1,0x00015,0,0,0,0,0,1,0,0,0,0,0,0,0,60,0,2,0,1;

#
# NOTE: Field Definitions

#ssd-ver1-tst-data= version, flags, throttle (max), not_ready_retry, busy_retries,
# fabricate devid, nocache, ctype, rsvd, rsvd, rsvd, rsvd, rsvd, rsvd,
# reset_retries, reservation_release_time, TUR_check,
# throttle (min), disable_disksort, LUN reset

I hope this is useful information on how devices are uniquely configured for the Solaris SCSI and Fibre Channel disk drivers.


Technorati Tag: OpenSolaris

Technorati Tag: Solaris

Wednesday May 25, 2005

What to read?

As I've previously mentioned, I have a voracious appetite for books and regularly have 3-4 in progress. Last night I was chatting with my wife about a recommendation for her book club. We decided upon a lesser known, but excellent author who has written two books in the SF genre that are very unique. The author is Maria Doria Russel who has written The Sparrow and the sequel Children of God. Maria takes the classic SF plot of first contact and turns it completely on its head. Two of the best stories I have ever read.

ps - Considered and discarded were a couple of other favorites (I was really torn about passing up American Gods, it's fantastic):

Neil Gaiman - Neverwhere
Neil Gaiman - American Gods
Robert A. Heinlein - Job A Comedy of Justice



Monday May 23, 2005

Warrior Poet


Warrior Poet

(one of the funniest things I've heard in a long time, definately worth a listen)


Monday May 16, 2005

Respect

How much is your integrity and reputation worth? Apparantly it was worth more than $1 million for this young man. Here's a quote “I’ll give up the million to get back your guys’ friendship” Say what you want about reality tv, but every now and again you get a glimpse of real character.


Wednesday May 11, 2005

Solaris Data

As I've said before, the best part of my job is working with really smart engineers to solve interesting and complex problems. All of the folks in my virtual neck of the woods with Blogs are on my blogroll but here they are again in no particular order

Robert Gordon
Jim Wahlig
Bill Baker
Spencer Shepler
David Robinson
Calum Mackay
Eric Kustarz
Sarah Jelinek

Combined these engineers (and their peers who aren't blogging yet, <hint>, <hint>) have a wealth of information and expertise on Solaris Data components including NFS, UFS, and much much more.


Thursday May 05, 2005

Pomp and Circumstances

It's been a while since I last did an update, I've been heads-down on a couple of end of semester projects, papers, etc. I've got some great notes saved up from both my HR class and Corporate Governance that I'll post in the coming days.

But today is the day.

I've completed the last hour of the last class for my MBA. I started this little endeavour four years ago and I'm not sure I would have continued if I knew then how big a challenge this would be. Due to an awesome family and a great company that provides tuition reimbursement and understanding managers I've completed this degree. My wife and children are the best, and have sacrificed a lot of time to help make this happen. They are my inspiration. (Not to mention I was worried they'd kill me if I quit after getting us into this mess). My managers, mentors, friends, and employees at Sun have been supportive and flexible.

Along the way I've had the opportunity to meet some fantastic instructors and professors who have provided me a tremendous education. Here are a couple of the stars:

These are all incredibly talented scholars and teachers. If you ever have the opportunity to meet them at either the Leeds School of Business at the University of Colorado in Boulder or the McCombs School of Business at the University of Texas in Austin it is not an opportunity to be missed.

 

 

Monday Apr 25, 2005

Offender Registries

I don't consider myself an alarmist but as the father of four young children I've been disconcerted by all of the news lately about missing, abducted, and abused children. I was wondering how I might check my local offender registry when I came across this useful and timely article. Here in the state of Texas I can view a map online of the registered offenders in my area.


Friday Apr 08, 2005

CEO Reputation

I heard an interesting factoid in class last night from a PR guy.

He said "Up to 60% of a company's market value is driven by the CEO reputation."

Hmmmm ....

SUNW       Scott McNealy
DELL         Kevin Rollins
IBM           Samuel Palmisano
MSFT        Steve Ballmer
ORCL        Larry Ellison

I left HPQ out because who do you track? Carly, the interim or new CEO? We'll have to watch that one.

Anyway, I'm not seeing the correlationut but it was interesting to take a look.



Tuesday Apr 05, 2005

Ball in the woods

Another great Corporate Governance class last Thursday night. We had two speakers, first was the dean of the UT Law School William Powers who headed up the Enron special investigation, second was Bernard Rapoport one of the most distinguished Texas businessman in history.

Mr. Powers joined us because we were assigned some readings on the Enron case. He walked us through the case at a high level but my biggest takeaway was his summary of the case. It may seem from reading all of the press that this was a very complicated business that involved sophisticated accounting transactions and decisions. In reality, while some of the transactions were complex, the decisions of whether or not to use those transactions were not complex at all. They were clearly black & white, requiring nothing more than good character and the ethics to do the right thing.

The analogy Mr. Powers used was that of golf. If you hit a drive and it lands next to debris, you may need to ask your playing partners or an official to give you a ruling on whether or not the debris can be moved. On the other hand, if you hit a drive into the woods, it is clear what you should do (e.g. drop another ball and take the penalty). The actions taken at Enron were the equivalent of hitting the ball into the woods and kicking it back into the fairway. Once you understand the details of how Enron structured its transactions, the ethical judements involved were easy. It is also clear that the transactions were purposely structured for complexity to hide the fact that they were wrong. Once everything at Enron came to light it was revealed that for 5 quarters 73% of the companies income was manufactured (i.e. no basis in economic reality).

So what to do? Mr. Powers suggests, and I agree, that the challenge is for companies to build cultures that reward virtue and character. At Enron you were a chump for following the rules and doing the right thing. Here at Sun I am proud to be a member of a community of high integrity and character with clear values. Here is my favorite quote from a Scott McNealy WSUN radio address:

Your Integrity Is Our Biggest Asset. You know, our No. 1 asset is our reputation. The SEC shouldn't take us out. If anything ever kills Sun, I want the killer to be the Darwinistic nature of the computer industry, not bad ethics. It's just a shame when a couple of folks can take a company out that way. We're not going to let that happen here.

I think that speak volumes as to the character and culture of Sun.

This is already a pretty long post so I'll get to some of what B. Rapoport shared another time.



Calendar

RSS Feeds

Search

Links

Navigation

Referers