Older blog entries for riscgrl (starting at number 23)

patch 45 commentaried. this patch breaks a task into its components, serializing them and transmitting them across a socket. technically, the process never dies locally, so its memory is NOT freed. the 'root node' of your LinuxPMI cluster needs to have all the memory to contain all the processes, even if this memory is not kept in sync by a task when its remote.

In my personal life, I've had a whole bunch of my property stolen, and know the person who did it. despite that, the law is virtually useless here. I've only been able to find one item of mine in a pawn shop, and had to basically force the local police to take it off the shelf. even after that, I don't get to keep it. My understanding of the way law works here, the pawn shop keeps it, until I pay them what they paid for it back at a hearing. Only, the thieves traded for store credit, which is full shelf price. I might as well have bought my stuff off the shelf.

And it will still take months.

So, I'm out some $7000 in property. Just what i needed, to have a DARKER world view.

At least I've gotten moved out of the place that was all stolen from, and seem to have landed amongst a bunch of good people. Its strange, I haven't really experienced a good sense of community before. I've always had bad luck, being good to bad people. I'm glad to have that, otherwise, I'd be in a much darker place, internally.

I've lost my dayjob, good riddance. Ever since i took it back, the manager in question has never been able to talk without lieing to me. I was WAY tired of that. When you quit, and your boss quits with you, don't go back. If i hadn't gone back, I think I would have done much better at some of the high profile interviews I had shortly after taking it back. Hindsight is 20/20.

I've got a new job somewhere on a string, heres hoping that string doesn't get severed. Its 100% open source work, but in an even less 'Enterprise' environment than I've been working in, for the last.. god, 7 years?

At least I got through this patch. Only 53 more to go until release!

Wow. Quite entertaining. Finally got done commentarying patch 44. And almost through patch 45.

Patch 44 is the code responsible for receiving a process from a remote node. Its quite good reading, from a 'constructing a process from scratch' angle.

In the middle of this patch, an ice storm hit Northwest Arkansas, and knocked the whole area for a loop.

During the night, the only sounds you could hear were the tree branches falling, and exploding transformers. sounded like what i think a warzone would sound like, with no automatic gunfire, only single shots.

Woke up in the morning, and ran into work. had to get the boss to drive a 4X4 over, and i still almost didn't make it. And I'm less than a mile from my workplace.

I took some pictures of the damage, while i was checking on the local freegeek office, which was of course without power. kicked some malfunctioning almost-dead UPSes.

Emergency mode isn't the word. I'm still fixing things, today. Obviously, the linuxpmi.org webserver went down, killing my ability to commit patches, but I shouldn't complain, many people on the main drag in the cities are still without power, much less outlying areas.

I'll post the pictures I have somewhere useful, and post a link here eventually. The most shocking part of the storm wasn't what was on the ground, but what was on TV, or lack thereof. What I was working through was worse than what was on CNN. What lazy newspersons. even the local stations didn't go more than a hundred yards down the road, didn't find any of the hardcore damage. They call this stuff news?

My backyard is nothing but tree limbs. where I could once only see three of my neighbors, I can now see eight. Most of the trees in my yard were decimated, and i got the rear window of my favorite car smashed in. I guess i'll have to sell it now. I was supposed to get this car fixed, as part of the terms of signing back onto the job i walked out on.. but as usual, bait and switch by these guys. Maybe i'll quit , or they'll get upset enough to finally fire me. i doubt either scenario currently, since they own the 'loaner' i'm using. I really am tired of working for scum. ;)

Patch 45 is pretty much done, too. I just have to do a quick side-by-side skim with the commentary and the code.

Patch 43 re-commentaried. this patch is mostly the top level entries to 'task move to node' code, and the level directly beneath that (task move to remote, task move home, etc.). This code was full of direct uses of printk, along with not checking results, and even an unimplemented function, returning success.

Work has picked up this week. Minor hiccups, nothing too ugly. I had more problems dealing with the people who had technical problems than I did the technical problems. Seriously, i was about that far from just throwing in the towel when everyone just seemed to decide to stop annoying me. teaching my boss to use email has been a rather arduous task, and i don't think he'll ever stop double clicking internet links.

We're still doing the 'you need written specifications' dance. He just wants it to 'work like windows'. only with auto-vpn dialhome, remapping all the keys and some of the pages of the application... Its an unending pile of suck.

Clubbing with the roommate has been entertaining, we've really been running ragged. Looks like I'll be doing some house cleaning for another party tomorrow. at least when we party at home, I get more patches committed. ;)

re-commentaried patch 41.

this entire time, i've been very sick. i've got my regular winter series-of-flu. today, i'm being brave, by not living under a blanket.

hpc/kernel.c seems to be just a resting place for callbacks from both PMI code, and hooks we add to the kernel. i'm not sure if my complete confusion is due to the illness, or the code itsself just dosent go together that well.

i guess you need somewhere to put the random stuff.

wow. been a while since i updated this. i've gone back to work at a previous employer, with a nice raise and a company car. i'm currently commenting on patch 40 of my linuxpmi patches, after re-restarting from the begining again. so, the first time through, i got to 141, second time 47, and am now on 40. this time, it feels more like my documentation is coming together however. I wouldn't feel too bad submitting these 40 commentaries for review, even if not the patches themselves. ;)

at this rate, it will be years until i'm done... but its still work worth doing. i'm actually somewhat enjoying the process, even if it takes *forever*.

Ugh. what an ugly week.

I decided to start at the beginning on my documentation again. the stuff i was writing at patch 47 was much better than the level of detail i provided at the beginning. I naively thought i'd make it to patch 47 again inside of a week.

Then I ran into patch 17.

Patch 17 is the x86_64 entry.S system call insertion. in this patch, we do something evil to the stack (that i still don't quite understand), to make sure space for the userspace registers is allocated and available when we jump to the user_thread handler.

Its all written in X86_64 assembly. I haven't done assembly since before i started using linux.

So now, I'm reading "The Revolutionary Guide to Assembly Language". I'm about 100 pages in. it may be x86, not x86_64, and may cover dos and bios calls, but i'm pretty sure when i get through it, i'll be ready to tackle this file.

On an ironic note, I've already made it through the X86 version of this patch. I'll probably go through it again, before going on to patch 18.

This assembly makes my head hurt.

Patch 47 commentaried!

this patch was all functions for 'doing work' on the home node on behalf of the remote node. syscalls, fork(), execve, mmap.. several file related functions, all called only on the remote node. the quality of the code in this patch was pretty high.

i pounded through this commentary, listening to my usual xaphan.us monday night show. the code was rather straightforward, even if it seems complex. the most grevious error i could find in it was a case of memory leak if something went wrong in remote_execve.

on the plus side, this is the last patch of its side in the 'first 98' that makes a compilable version of openmosix. its all downhill from here, mostly headers. then at least I'll have something that compiles, to start cleaning up, piece by piece. only 322 patches in the set!

so, I've done two levels of review on 7,200 lines of patch, with 25,000 lines total. and its taken me 5 months. I'm way over my head. *shrugs*

and after all that, I've still got outstanding bugs.

my brain will pay for this in the morning.

Patch 46 commented! Even as i was going through this patch, i thought it was simple. just add some entries to /proc, right?

I underestimated how much of a pain it is to dig through incomplete code. after documenting all 391 lines of the stuff, I'm convinced that this version is being called by nothing, to accomplish nothing. later patches touch this file, however, so *shrugs*.

I went to a great dylan rymes show the other day. one of the neatest things was that he plays the stuff that my local associates at xaphan.us are playing.. then takes it farther. starting up, it sounded like xaphan's regular monday night show.. but then it built into something amazing.

other than that, i'm still job hunting, after 5 months. i've out-stripped the job market in the local area. the most advanced stuff i can find to do is port $EVIL_COMPANY's applications from one version of *nix to another, and i don't *write* non-free software, so thats out. Ugh. I guess its time to move out of the area.

one more patch down.. some 52 hunks to work through before i start actually laying hands on this stuff.

Patch 45 commentaried!

this patch was the mirror image of patch 44, called to actually send a process either home, or remote. theres some discrepancies between the two processor context send/recv functions i'll have to fix, an of course the vma file handling is broken, which is the thing that needs fixed to call this all 'beta' quality.

personally, recovering from patch 44 was hard. that was really like hitting myself in the head with a hammer. i've only got 5 more patches that should be near that ugly, however.

in theory, it should possible to migrate processes from ia32 to AMD64, and back. in practice.. the code isn't written for it.

while digging through this process teardown/buildup code, i can almost "smell" a process suspend-to-disk procedure, which would be neat to have on hand for things like kernel reboots without losing userspace state. likely also handy for suspend to disk, where you don't any longer have to 'save' userspace. outside the range of the problem i'm solving at the moment, however. process migration is such a big problem.. its truely overwhelming.

having watched the new Battlestar Galactica, i really feel some similarities between events in that, and how i ended up with this mess in my hands. unfortunately, none of my local friends are up-to-date on the series, so i can't talk about it. annoying!

its about time for classes to be over for the university students. i'm wondering how many of the irregulars will show up to the project this year.

in a massive frenzy, i commented patch 44, which contains all the code for constructing and launching a process passed in via a socket. lots of deep kernel magic, for which there IS no reference. over all, other than the broken rfile subsystem, and the pending re-organization to use per-process packet queues, this code wasn't half bad.

my bain, however, is mush. i'm not meant to review that much code at once. i just got "inspired".

ouch. my poor poor brain.

i really wish someone would review this stuff. i'm sure i made several mistakes, and this is my SECOND time commentarying..

i had a job inteview first thing this morning. i seem to do good on those. heres hoping.

14 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!