Recent blog entries for jmm

New home

Why? Simply because it's more configurable and definitely more in-line with what I was using this site for in the first place. Perhaps one day my days will be more free software-centric than they are now (when I only get to occassionally get real kernel work in), but until then it's really not right for me to bog down with my useless chatter.

Jeff got me a stack of 2GB drives so they will be the Linux hosts in the 8 clients. Trying to find a camera of some sort to get some pictures of this set-up on the indep. study web page.. it'd be a nice touch, I think.

jiffies wraps (over 300 just grep'ing for "jiffies -") are all over recent kernels. I can't see why jiffies - last > 5*HZ is still accepted, as using time_before/time_after can (as include/linux/timer.h notes) generate better code (and gcc 2.95.x may make this a reality) than the current situation. Honestly, time_before(jiffies,last+5*HZ) seems valid and even more readable is it's comparing the always-volatile current counter against a value that's both likely to already be in a register and an expression that doesn't include anything volatile. One part is constant, the other doesn't change much. Because of this, we actually end up with more accuracy since we do the comparison on jiffies itself and not the output of a computation involving jiffies.

Ugh, I need more caffeine.

At least everything's set for the trip to Phoenix

Ok, it's been a few days... and me ragging on Matt for not posting diary entries... sheesh.

LAN party at Cameron's was quite nice. Should have taken my system, but it would have meant leaving work and heading back home during a baby shower that my wife was throwing... no thanks. It ended up working out fairly well since Nitin let me get in a few games. I hate his key bindings. They suck. Arrow keys are not the correct keys for direction in Q3A. Argh. Almost beat Bad Mojo even with the crap bindings. Next time, they're mine.

Nitin's box had a RF-based wireless keyboard and mouse from Logitech. Very nice, but something with the MS Intellieye stuff (or whatever it's called) would be trick. Having a wireless mouse isn't that nice if you're fighting with the mousepad all the time (and Nitin certainly was fighting his). Nice JavaOne wristrest for the mouse hand, but no mousepad integration hurt things a bit. Amazing to see such small monitors getting used. I'll have to get one of the Viewsonic 19"'s for the next lan party.

Really considering getting a 98 box (Athlon 750, perhaps) as a sep. gaming box.... it's just getting silly to try and maintain my BP6 as a gaming platform, and with the cable modem a theoretical 8 hours away, I'm not sure I wanna bother. Also, I wanna get somthing with NTSC out with a decent video card... routing the game through the home stereo system would be nice... I'd finally be able to record my games on tape, which would finally put those tapes to good use.

Haven't slept in quite awhile. Drew was a huge help getting Oracle installed on the Linux 4-way Xeon... Oracle 8.1.6 (aka 8iR2) is a very nice improvement over 8.1.5 (aka 8i). It finally includes its own jre in the installer, which ended up making my fetch of jre 1.1.7v3 from metalab quite moot. I like monkeys.

Windows 2000 is inheritly evil. Apparently, none of the drive imaging places feels very comfortable with it, because I can't find anything that does drive mirroring natively. You're stuck booting to some dos floppies, but it gets worse. Ghost complains loudly about supposed NTFS errors (although Win2k doesn't have any problems that it speaks of) so I try switching to Drive Image Professional. Not knowing what the deal was at the time, I go ahead and actually boot Win2k. Very very bad idea. By all accounts, and given the current state of the symptoms, Win2k saw the almost-NTFS on the attempted-ghost-target drive and decided that it would be a good place to put its own pagefile work.

Now, it didn't actually make this as a conscious decision. It maps pagefiles by drive letter. Now the ghost target was scsi id 1 (main drive id 0) and as such showed up as the second drive in all accounts (adaptec controller set to boot off of id 0, even). Unfortunately, Win2k decided (by what rationale I don't know... it certainly continues to evade me here at 5:30am as I write this) that the drive it booted off of wasn't good enough for the title of C: and relegated it to D: Since our ghost target was now available as C:, and since the Win2k registry said paging had to happen as c:\pagefile.sys, you got it.

So sure enough this thing is actually *paging* onto the poor defenseless ghost target that just happens to still be sitting on the scsi chain (in retrospect, never let Win2k boot with a drive that you're not willing for it to totally infect). A shutdown and removal of the drive, for whatever reason, does not lead to a working system. Instead, on boot it now complains about a non-existant paging file, gives nice, clear, detailed instructions on how to fix this under the Advanced -> Performance Options section, then gives you an OK button to acknowledge this.

At this point, I didn't feel too bad. Ok, paging was a little weird, but the machine had booted all the way to the point of reading the registry, GUI mode fully going, basically fully booted. But oh no. That's when you think you see the light at the end of the tunnel, and it is the hellish train of bad coding about to mow you down. Clicking the OK to acknowledge this information of how to fix your oh-so-confused machine (no other buttons available, no other key strokes or combinations do anything), you get a few seconds of processing and then the exact same window pops up again. Yes, you're in Hell's Groundhog Day, and it never stops. Click all you want, We'll Make More! True to form, your only option involves power drop or cycling as there is no method to even get to a shutdown capability.

Ok, so this is actually Win2k Professional Eval build 2195. Maybe this is fixed in a more recent version. Maybe I can do some hacks and get a rescue diskette from a working machine to get this thing back to life. Maybe... I guess we'll see.

Goal was to get a backup copy made, split the first client (4GB drive, all Win2k) into 2GB/2GB, install RH 6.2, upgrade kernel (oops when you ifconfig the acenic up is bad), then make a drive image and propogate around (letting Jeff or George handle everything else that needs fixing after I fix client names and ip changes... oh, and maybe use that SID changer util)

Tried the other TMS fiber card in a 5500... With the card in a PCI slot (not even powered on, just in the slot with the slot switch off), it did enough damage to keep the ServeRAID adapter from getting seen and the machine couldn't boot. Pull it out of the slot, and the machine is fine again. Definitely something wrong with that :)

Ok, enough of a break, back to work!

Trace tool is working again... got SpecWeb traces for single and dual processor setups (marketing seems to care about those) in the bag. Currently working on rewiting the controlling software to do a primitive raid0 across 2 diff ramdrives... should be a hoot

Painfully little done on the IS since everything's been so crazy with tracing (PCI cards that don't behave, some cards that don't even show up, random kernel problems, etc). It's going to be very hard to rationalize a lan party over the weekend when I'm so far behind in the IS work *sigh* I really oughta just get outta the PhD and come back later when I'm more motivated and have a decent topic in mind. We'll see.

I need to meet more people. I think one of my problems career-wise is that people don't meet me (I know, it's my own fault for getting too busy to make the Expo last year) and so I end up being a holed-up labrat stuck being overqualified for the crap that gets thrown at me... I know, stupid rant, but I really want to get out and get into more diverse positions... tracing has been fun and all, but at some point you realize your skill-learn-rate isn't what it used to be, and more importantly it isn't what it needs to be.

I really gotta figure out why 2.3.99-pre6 breaks the eepro100 on the 7000M10 machine... it's just bizarre that a driver so rock-solid for me in every other possible machine and configuration would start giving me problems now.

Back to tracing... Worse slavery than a code monkey.

LUG meeting went well... finally went to Rock-ola (and not the Rat) for dinner afterwards... still need to give Pam a hard time for not showing up (she's the LUG President after all... oh, wait, I forgot that means she should never show up!) It was interesting to see 4-5 LUG'ers not be able to get a presentation working sigh. After awhile, you'd think they'd try getting these things working before the meetings. What a waste.

So the trace tool is acting up again. Chase is finally agreeing that it's likely a colder solder somewhere after the FPGA. The 2V offset and weak peak-to-peak of the signal going into the ECL converter sure seemed to agree, so if we rip the board apart I'm soldering the crap out of those joints. A6 will have all of 1 milli-ohm resistance to go through once I'm done (and yes, I'm aware that's less than BGA :)

I gotta get some more stuff done on the IS.

Met with a financial advisor... Nice guy, but I haven't figured out if he's motivated to help me or plug his buddy the CFP... hmmm

Poor Hornets... maybe next year.

Vanguard is mailing out the forms and fund breakdowns (prospecti... ewww)... at least Kevin was willing to do an overlap report for me... that'll be nice to have around on days like today when my stock quotes page is all blood red... ugh

I need to learn more hands-on Oracle.... that's for sure... I've read about every book possible, but it's just not going to matter until I can get in and deal with large setups hands-on... soon, I hope.

Saw Frequency with Drew last night... pretty decent movie as it turns out... hit the Gypsy Diner (the shiny diner) afterwards and found out just how bad one side dish can be.. something called butterfly chips or something like that... totally nasty.

Got a response from Pat B. @ Corel giving a mini-patch to mc-4.5.40/vfs/util-alone.c to add a little function so podfuk will compile (it's a hackaround method, but it works). I still wonder why linker's aren't smart enough to pick out needed functions from objects (worst case, noop the other functions), although it'll be nice when (soon hopefully) the kernel has that capability, although it'll come at the cost of an ELF section for every single function.

Trish Hogan (TPC-C DB person) reports that Clarinet has never used 64-bit data. ServeRAID guys report (sigh) that the bottleneck is a SCSI layer one in the Linux kernel (amazing how I get faster with other controllers, though, eh?). Oh, well... at least s/w raid will let me distribute among PCI busses which is good since that's where the real bottleneck will be (esp. on the 64-bit and only 33MHz PCI bus 3 in the Netfinity 7000M10)

As I'm writing this, I'm waiting on a cable modem guy to come out and check my line and run it to an outlet. He will probably get here late, and I'm going to try and get this free since it's Time-Warner and all (and in the middle of their ABC dispute too :) and supposedly late means free for their service... we'll see.

mini-update: on the phone with Time-Warner and the first response was "we don't have a scheduled appointment with you today" What?!?!?!?! So I tell her to look around, that there's a strong likelihood that since I cancelled TW service before, a new and different account got created. Sure enough, she finds a second account but then reports "Well, the RR service entry was made, but it was never saved" then changes that to "It was made and saved, but no actual work order to install service was made" ARGH So now I'm waiting on the phone ... on hold having wasted my entire morning off of work, waiting for someone at TWC/RR to figure out whether or not I was supposed to get RR service today. (her name is Pam, BTW). Well, she reported back that it was scheduled, that my install would be free since they were late, and they're trying to track down where the tech is right now.

Calling in to Chase to update him about all this, he swears that it'll never happen today and I need to drop it and come into work to do some tracing. I don't wanna lose the cable modem possibility, so I'm not likely to do that :) Hopefully I can (worst-case, I hope) reschedule the install for a little later this week or something.

Ugh... finally got this settled (for the day). They rescheduled for next Monday (05/08) in the afternoon... I can't believe I wasted a morning on this crap.. bleah

AVFS indeed works standalone. coda loaded, /overlay dir made, and everything rocks. I don't really care about the redir.o kernel module hack to get the same functionality through the "native" trees, it just doesn't buy me that much.

The perl script to scan all files in a given tree and export the avfs-exported source dirs from them is written. Seems to work well, but it doesn't list the kernel numerically. I'm not sure I care since most ftp servers are going to go lexicographically too, but it'll be a quick and possibly useful hack. I might have a "last 5 of each tree" mode written in for those that don't want their rsyncd exporting a hundred diff dirs (although I don't see that it would matter, except in wasted cache space, but the coda cache manager should handle that anyway.

With rsyncd re-reading the conf file on each connection, I can get away w/o locking or doing other pseudo-atomic operations when maintaining the conf file... worst case one connection gets a broken conf (highly unlikely, but a minute race condition), but the retry will work fine. We're talking about a 10ms window once every few hours... Not likely :)


I get 5 huge paragraphs into today's diary entry and it all dies when I load the redir module and it kills the system. Argh.

Ok, so the secret to keep the thing from crashing the system and get it actually working wasn't that hard. The only trick was that his RH 6.0 binary rpm would make you tend to believe he had some support in the code for RH default setups. After "configure", simply edit src/redir/redir.c and #include linux/modversions.h (after module.h is a good location). Then edit src/redir/Makefile and add -DMODVERSIONS and -D__SMP__ (if needed) to the CPPFLAGS.

That should do it... rebuild, make install, etc..

Ok, so now trying to catch up on everything I had typed... I guess I'll have to be brief about it.

FIrst off, the ServeRAID 64-bit PCI controller still only uses 32-bit mode (proven by the bottleneck at 41 MB/sec over the PCI bus) even in a 64-bit PCI slot, but I'm going to upgrade the bios on the Netfinity 7000M10 in case it's a bug there. I've got 5 64-bit cards and only one crappy 64-bit/33MHz bus to put them on... distributing some to the 2 32-bit PCI busses will have to happen, but since the one input fiber card doesn't appear to support peer-to-peer PCI DMA (the ServeRAID cards probably don't either), then I'm stuck with all kinds of PCI bottlenecks in trying to get fast trace storage... ugh

I didn't get any Oracle studying done because Drew went out of town, so I'm stuck trying to read books for today.

Two more days until the cable modem, nine more days until the new dish and receivers so I can get local channels cheap.

It turns out that if you go back and edit a diary entry, it changes the date to the day you edited it. Sucks since all I did was add an href for Caroline Rhea on yesterday's entry once I found a little bio about her on ABC's site... ugh

I'm hoping to get AVFS working w/o the redir module... dependency on just fs/coda.o would be ideal, and it'd get to the point of being as useful as podfuk (esp. in terms of the target goal for this). With the cable modem only a couple of days away, I should have a decent beta test site for kernel rsync available soon. (Probably a good time to rebuild the kernel and get the Maxtor 30GB drive working on the HPT366 controller)

Ok, that's enough for now... yes, I didn't link many of the terms here that I could/should have, but I'm sick of having lost all that previous work... ugh

Ya know, something in advogato that lets you create url's to link common terms with would be nice. Maybe a "Linkify" button after Post and Preview, then letting you remove/fix/whatever the links you don't like... sure would save a lot of effort.

I know, I know... "Sounds like you're volunteering for the job"... sheesh, isn't coming up with the idea worth anything?


UPDATE: AVFS works w/o the redir module loaded! I've confirmed a working non-root user-space rsync --daemon that served the source of a kernel w/o extraction! woo hoo!

Just need some speedy connection to start live testing :)

Since a simple user-space daemon and loading the in-kernel coda module is all that's required, I'd be surprised if this didn't catch on at multiple places... once people get used to kernel updates like this, people will wonder why patch was ever used :)

Time to get that little bit of perl written up that updates the rsyncd.conf file... I need to check and see how normal mirrors do their updates... should be easy enough to tag the code on the end of their work, maybe just another little bit of work after the mirroring program finishes

Saturday, oh, Saturday...

Looks like I'll be spending most of the day at work trying to get some progress on both the 120-drive array and hopefully lots of good progress on the independent study. Unfortunately, the two machines I had a fiber crossover between are now in separate labs, but I guess that's ok... another machine with a Gbit Enet card is sitting over in a rack doing nothing, so maybe I'll do a big rearrange and get some good numbers. I still don't think the approach (nbd + s/w raid 0) really buys you anything, but I guess the IS is really more about some observations, deductions, conclusions, etc...

I gotta find my Oracle 8i for Linux CD... it'd be neat to see how its internal caching helps buffer against the performance hit of doing nbd et al, but we'll have to check that out later I guess.

Went and saw Caroline Rhea at Charlie Goodnight's last night... she was hilarious. Far too many Carolina types in the crowd, sadly (business and marketing majors... easy to spot in a crowd of otherwise intelligent people. Thankfully a good chunk of her act made copious amounts of fun of them, but I get the impression that those kinds of people are what give others impressions of North Carolina... that and rednecks. sigh

So there we were, in the Congo.

No email about movies last night, which I have to admit is a little weird. Drew heads off to Conn for a few weeks, and the movie trips just drop off the face of the planet. Maybe it's just me...

Thanks to the RHAD Labs, I'm now also addicted to Onion Head Monster, but I guess that's a safe addiction...

Enough useless chatter, time to get back to work

Lots of bad weather today... ugh... feels like Seattle without the stock options.

Shoulder still feels like it's about to pop out of joint during lay pulldowns, but now it's feeling worse even during butterflies... Figures... guess I'll have to give the sis-in-law a shout and see what she says (gotta put that Masters of hers to good use)

Potential job offer that I'd love to have is in the mix... (I'd mention it here but it's hard to restrict potential readers so I'll have to be a little careful for now). I've got a couple of weeks to cram for what will basically boil down to an interview... should be fun, except it's the same two weeks I'm supposed to be finishing my independent study in, so things will get a little crazy. This isn't even mentioning the NBA playoffs that I'm trying not to miss. Kinda scary.

Just about got all the voodoo magic related to the trace tool documented (albeit in an encrypted form for semi-obvious reasons). After writing it all down, it's frightening how hokey this thing really is. I can't wait until the back half of this year when we can complete the designs for the next generation tool... Life will get so much easier with that thing! Lots of status LED's to impress PHB's, too... something we left out of the current generation without realizing how much we'd need to market it internally :)

Gonna move the trace data server (at least for the next few rounds) over from the other lab and get the 120-disk RAID array up and working... should make for some fun benchmarks if nothing else :)

Ok, let's take it from the top.

Turns out Enterprise will rent you a Maxima... kind of. All they give the option for is getting a "Premium" class car, and you're stuck with the 1 in 5 chance that it'll be a Maxima. Trying to explain that this was going to be an extended test drive for the explicit purpose of finding out how the Maxima rode in my daily commute didn't seem to help my cause any. Latoya Livingston (works at one of the Raleigh Enterprise locations... she's about to move to sales as it turns out) said she'd love to be able to help me, but she doesn't have any control over the situation. She did, however, explain how she could sell me a one-year-old car with about 20k miles on it for around 7k less than the MSRP. *sigh*

So the trace tool is working now. After a few hours with the HP (or Agilent, or whatever) Infinium Oscilloscope (I love that machine...just wish it didn't run Win98) and a little probing around (the trace tool current version exists as a sandwich-stack of circuit boards, and of course all the signals get broken somewhere in the middle layers), it turns out there was a stupid cold solder joint between a surface trace and an adjoining Berg connector pin... figures.. A little shoving of some wire in there (at least until I can get the soldering iron over to reflow and fix the solder joint) and the RS2 signal (most significant response bit on the P6 bus) was working fine! A6 (address bit 6) still has some issues. It seems to randomly flip between stable (almost perfect behavior) and seemingly random modes. Might also be a loose connection somewhere, but the GTL+ original signal looks a little flaky, so I'm wondering if maybe we have some issues with this preprocessor.

So the sis-in-law (Julie's S&M c/o 94 FWIW) made it down from AsheVegas and did the car swap thing. Finally I'll be able to sleep all the way through the morning without having to get woken up by Jessica having more car problems! I still want to go ahead and get her in a Maxima if possible... If nothing else, it'll keep the complaints low when I pick up my own next car :)

Python seems like a nice enough language, but I'm not sure it's going to be as easy doing all the regexp stuff I was doing in Perl... it appears to completely lack the report form printing stuff from Perl, so that may kill any chance of doing a python conversion... the trace tool software simply relies far too heavily on the ease of report forms

I really need to get some more write-up and work done on my independent study... hopefully I can dedicate next week to that, or at least a large chunk of that time.

Watched 28 days earlier this week (it's actually pretty decent, as much as I wasn't looking forward to a chick flick night) and Keeping the Faith last night (9:45 show at the Grand with The Nashville Network in some huge semi out front... only in the South). KTF was a tad long, but it had enough funny spots and nice lines ("Kosher Nostra", for instance) to keep things decently interesting. Movie letting out at midnight on the proverbial school night was stretching it, but maybe next time we'll do Milton's a little eariler than 6:30 and be able to make the earlier 7-ish show.

After a reboot, my Linux workstation is doing audio normally again, which is good as I was really getting to miss xmms. Yay!

Well, time to go get some various things done lurking on my Palm's todo list. Hasta la pasta.

2 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!