Monday, June 28, 2010

Looking for CIFS/AD expertise

(I know its probably questionable using my blog for this, but I thought I'd post it here anyway. My apologies if anyone finds this offensive. I'll keep it brief in any case.)

I'm looking for a high-caliber developer, preferably with some kernel and/or OpenSolaris expertise, who's also got extensive knowledge of ActiveDirectory and CIFS. If that's you, or you know someone who fits that description, please contact me -- garrett at nexenta dot com. (No recruiters or agents please.)

Tuesday, June 15, 2010

skype for Solaris

So I'm irked, really irked.

If we had Skype support for Solaris, I could probably ditch this half baked mess of Linux hosts running VMware guests with OpenSolaris and Nexenta. I want just a single host OS for my development box.

Right now the single biggest barrier to running OpenSolaris on my desktop for my job at Nexenta is Skype. But this is silly, because Skype works in Linux, and the APIs should basically be compatible. Especially with the OSS layer that we already have in OpenSolaris these days via Boomer.

If someone at Skype sees this (good luck trying to find a contact on their web site!), and wants to work with me on it, I'd be happy to help them work through the issues of getting a native Skype port.

If anyone who has an "in" at Skype reads this post, please forward it to your in at Skype.

If any folks are paying for business services from Skype, feel free to let them know you want a Solaris client, and there is an expert on the Solaris audio stack waiting to help.


(On a side note, I'd also like to have VMware on Solaris as well. Yeah, I know about VirtualBox, but I need support VMware for clients, and it would be a heck of a lot easier if I could just host VMware guests on my development head.)

LDRS 29, very cool

So, this past weekend my son and I went to LDRS 29, which is the event for the national high-powered rocketry club, Tripoli. We were there only one day and one night, but here were some cool highlights from Saturday:
  • Mass squat launch -- Timothy's Squat with an Aerotech G-67 redline motor flew very nicely, if a bit late off the pad. 28 other rocketeers had their rockets launch at roughly the same time.
  • Many wild squats. With the $29 specials from WhatsUpHobbies, lots of people were flying very unstable Squat rockets with I-140 skidmark engines. This configuration needs nose weight, as we found out for ourselves when we flew Timothy's with the same engine.
  • Four half-scale Patriots launched in 3 second intervals from a "box" launch vehicle -- much like a real Patriot. Very, very cool.
  • Drag race of six or seven N-impulse rockets. These are big rockets, lots of power.
  • Drag race between a number of very detailed rockets. There was a CATO about 20 feet off the pad, and unfortunately several other rockets were destroyed on ascent by the CATO. Cool to watch, but glad it wasn't one of my rockets.
  • Full scale O-impulse Patriot launch (and unfortunate catastrophic failure near the end of boost, flaming bits falling down all over the range.)
  • My own J-350W powered LOC-IV (with significant modifications in nose weight and fiberglass reinforced fins.) This was my Level 2 cert flight and it went brilliantly. (So I'm certified to fly level 2 high powered rockets - impulse up to and including L power.)
  • Our Big Daddy Estes rocket (typically D or E power) launch with an F-32 Blue Thunder engine -- believe it or not this was one of the highlights for me of the day. As the launch control officer proclaimed -- "a little too much power for the rocket, but we like that!"
  • Flying a drag race between two D-21 powered 18mm rockets. Both were lost, and later found damaged.
  • A number of very cool night launches -- lots of creativity here on the part of the rocketeers.
  • Discover channel. This was a mixed bag... it was cool that they were there, but they did interfere with launch schedules quite a bit. Still, I think we'll be part of the ultimate show, which is supposed to air July 5. Looking forward to watching that.
There was one significant accident, involving an extremely high powered rocket on the far pads. A couple of people were unfortunately badly burned, and had to be medevaced, and our wishes go with them for their recovery.

As for Timothy and I, we're hooked. We'll be going to the November RocStock event as well, provided we can make the schedule work out.

Press release

Noticed this press release got posted to the Nexenta web site. /me preens. :-)

Friday, June 4, 2010

O_SYNC behavior not honored

UPDATE (6/21/2010): This problem is apparently solved in b142. Probably other builds as well. But I was unable to reproduce this problem with real hardware on b142.

Note that VMware does not honor cache flushing, so VMware (and possibly other v12n users) will potentially still see this issue.

So, it turns out that ZFS in recent (somewhere after build 134 apparently) builds has a critical bug ... O_SYNC writes are not really synchronous. This leads to potential data loss.

I've not yet figured out which change introduced the bug, but I hope to work on it next week.

In the meantime, I would strongly discourage use of post-134 binaries for anything where data integrity is important.

I've filed a P1 bug with Oracle for this issue. I'll be trying to nail it down further next week; if I'm able to fix it before Oracle can, I'll offer up my fix.

I'll post the CR number when I receive the number back.

I imagine that this bug, which is trivially reproducible, will be getting top priority from the ZFS engineers next week.

UPDATE: CR number is 6958848

The link to access it isn't available yet.

Great Falcon-9 Launch!

SpaceX, one of our greatest hopes for a commercial manned space program, has achieved a huge milestone with the successful maiden launch of Falcon-9 with a Dragon capsule today. This is the craft that may one day soon be used for ISS resupply, and perhaps even crew transport.

Even as Obama shuts down the US governments manned space program, the commercial sector is picking it up. This is a momentous day.

Congratulations to Elon Musk and the rest of the team at SpaceX!

Wednesday, June 2, 2010

audioens in VMware...

So, we have not had audio in OpenSolaris within VMware since... well, ever.

I've been doing some investigation. I'm seeing a situation where the VMware emulated audioens device behaves rather differently from the real hardware.

For one, it seems to insist on using real interrupts. In particular, the sample count registers do not appear to be updated unless one receives and acknowledges an interrupt. (By toggling the interrupt enable bit.) This means that this virtualized device will never be able to run "interrupt free" like the other audio devices (or real audio hardware).

For another, it appears that the audio device has some weird dependency on the relationship between the size of the audio buffer, and the interrupt rate (the number of samples at which to interrupt). Using different values gives, strange results.

Finally, I cannot, for the life of me, figure out how to cause the device to actually trigger an interrupt. I've been able to make some progress by simulating a soft interrupt at 100Hz, which is how the interrupt free framework works anyway, but from what I can tell, nothing is causing a real interrupt to be delivered. This is really strange. (Without this functionality, I am able to process audio at a reasonable rate, but it still stutters, and is not really suitable for real-world use.)

My guess is that the virtual device has some weird dependencies that we don't know about. For example, while the hardware spec identifies registers as being 8, 16, or 32 bits wide, and we use those at the right bit widths, other FOSS drivers all seem to just blithely use 32-bit wide accesses. Is there a hidden dependency here?

If any reader from VMware is seeing this, and can help me understand the behavior of the simulated device, I'd appreciate it. I'd like to make audio work in this environment, if possible. I'm pretty close, I think.

Actually, it seems kind of crazy that these environments emulate such complex audio hardware. (For example sophisticated sample rate conversion hardware.) Much better, I think, would be a simple paravirtualization driver that just exposes a simple buffer and some control functions. If someone at VMware wants to work on that as a solution, I'd be happy to help with Solaris support for it. Since these things run isochronously, and chew up a fair bit of cpu when they run, such a solution would probably be quite useful. (For example, its silly to perform multiple sample rate conversions in software... instead we could express native sample rates via a PV driver to the guest, ensuring only a single SRC operation is performed appropriately in the guest operating system.)

Tuesday, June 1, 2010

Well *That* Didn't Work Out So Well

You may recall my recent blog post about Windows 7 being surprisingly usable.

Well, I have to recant here.

I used Windows 7 for about a week and half. While it *worked*, it was a pleasure to use. But after three BSODs in just that week and half, I have abandoned it. I'm now running Ubuntu. (Why not OpenSolaris? Because I need the ability to host VMware and Skype, and I can't do that natively on OpenSolaris -- yet.)

Sure, I could have called up support -- but Microsoft support is provided by my computer manufacturer, and I didn't feel like spending 3 hours on the phone dealing with tech support while they tried to triage my problem. In the end, it was simply faster and easier for me to reinstall with Linux, even allowing for the time it took to download the media.

Sure, the problem might have been my virtualization software, or maybe it was a shoddy audio driver, or maybe it was brokenness in my graphics driver, or maybe it was the 3rd party antivirus software (which begs the question-- why doesn't Microsoft ship with builtin malware protection -- you'd think given all the heat that they've taken over this that they would have figured out that they *need* a solution here that doesn't involve 3rd parties...)

The "automatic solution finder" that Windows 7 ships was completely unhelpful, it didn't find any links. Google was not much help either... with everything to buggy hardware, drivers, and even overtemp problems being cited as root causes.

I'm sure that tech support would have had me running around in circles trying to solve the IRQL_NOT_LESS_OR_EQUAL blue screen. (I'm guessing, from my kernel expertise, that this is probably an assertion fault somewhere that an IRQ level is set unexpectedly high or low -- exactly the kind of problem I know how to fix in Solaris.) Probably plugging and unplugging hardware, unloading and reinstalling drivers and maybe other software, and generally burning an unmentionable amount of my precious time. Especially given that the hardware tech support I'd have been routed to was unlikely to have any real software clue (which is where I think this problem was most likely located.)

Again, faster and simpler to just dump the busted OS, and load something else.

And, with Linux (or any other FOSS), I have at least a fighting chance of trying to debug the problem myself. Sure, my kernel-fu is substantially higher than average joe home user, so my leanings are more towards something I can troubleshoot myself. But, I will say this, so far I've not had a panic ("oops" in Linux parlance) yet in the past four days that I've been running Ubuntu LTS 10.04 (even though I'm running the "not recommended for general desktop use" 64-bit edition.)

Microsoft, if you see this post, I hope you'll learn something from this.