OS death

I’m feeling worse than I have in a while… stressed about Pen-based computing (we have to have a demo-able project by Thursday…), stressed about interviews (I have 3 next week, including one that requires me to fly out), but mostly stressed about OS… we worked for like 8 hours yesterday and managed to get negative work done… as in, our kernel isn’t to the point where it was yesterday morning anymore.
I just want to drop the class and curl up somewhere and die… meh.

Massive photo dump
















More OS

Don’t you love that sense of satisfaction you get after you fix a rather annoying bug?

8 finished the VM rewrite for our kernel (and it looks *much* nicer now, and the PM can also magically keep track of free physical pages without needing an internal data structure [and hence, won’t use more memory if we ever happen to get more than 256MB of ram]) and we had a remarkably easy time integrating it into our main branch (although I’m still of the opinion that Subversion merging is horrific and painful).

Then the fun started. Things started out ok and init and idle started and the shell started and readline worked.
Then, when we tried to execute a task from the shell, things exploded.
After about an hour, I tracked down the problem to fork’s page-directory-and-table copying function… odd though, since that hadn’t changed since before the VM rewrite, and it was working fine before.
After poking at it some more, I determined that, for some unknown reason, one of the page tables in the newly-forked task contained garbage data. Garbage data that happened to look a lot like a kernel stack. Hmmm…
A bunch of breakpoints and plenty of x%cr3 4096 and psym "pcb->esp0" later, I discovered that, somehow, the same physical page was being mapped as both a kernel stack page and as a page table page. Very odd.
Poked at it for another couple hours until I managed to isolate the problem to one function… a function that destroys the current mappings in the page directory/tables to prepare a task for exec. Turns out it was a mistake with freeing pages… for some reason, the code was freeing a page *after* the desired page (PTR_ADD(page_loc, PAGE_SIZE)). Oops. Fixing that fixed the immediate bug but tripped an assertion.
That one turned out to be simpler… the wrong virtual address was being passed into the freeing function (*entry instead of entry). Whee.

So yeah, it appears that we are back in the same state that we were yesterday as far as runnability and such goes, except we have a shiny new VM that appears to be much happier (and much cleaner) than before.

I should probably go sleep, as it is 7:30… but it might make more sense to just stay up until class and then sleep afterward. Meh.

All we have left to do is finish vanish and write wait and we will be kernel code-complete (at least, theoretically… we’ll probably end up doing more rewrites and such). Awesomeness.

There has been much ITG lately. I need to get back into 11s… maybe I’ll manage to pass a 12 before I leave CMU. Wheee.
110107itg.jpg
110107itg2.jpg
110107itg3.jpg

Work, day 5

I really should update this more often…

Work on Friday was good. I got my first task done, and the higher-ups seemed mostly happy with the results, so huzzah!
Work today wasn’t nearly as exciting. My advisor peoples and/or boss are in all-day classes until Thursday, and I still don’t have admin access to my machine. This combination means I don’t really have much to do except read the documentation for various code review software packages that they want me to set up and test (which I can’t do until I have admin to my computer). Bleh. Tomorrow will likely be the same, unless I can somehow expedite the admin process.

Student Wars Loose Ends is 13 cards away from completion. I’ll probably finish it tomorrow evening if I feel up to it.

There was an electrical fire in front of Joe Mamas when we went for all-you-can-eat pasta.





Arrr

This song Change (Jason Nevins Dance/Pop Radio Edit) might be the first song I’ve listened to where the remix is better than the original song. It’s truly an awesome remix for an already fairly awesome song. I love getting new music, even though I really can’t afford it right now :)

Life has been incredibly awesome and happy lately, despite this weekend consisting mostly of me being lazy and not getting work done and now, as a result, being incredibly behind in classwork and likely going to fail the graph theory exam tomorrow. I think Friday night was the most awesome time I’ve ever had in a long time. There was chocolate fondue (courtesy of Mars and Dan, I believe), awesome games, spending time with friends/people I care about, and some awesome conversation until 5:30 AM.
There was also a Tim getting eaten by his bed.

There was also scary ponytail-Dan-thing

There was an ITG sightreading tournament on Saturday that I went to and photographed for a bit. It had a rather impressive turnout.

So yeah, this weekend has been full of laziness and graph theory studying (and I’m still going to fail, ahhh!). Also worked a bit on my paper for photo history. I should have been coding networks. Bleh. At least we ended up doing well on p2. Yay for doing well on projects.

Life makes me so happy… friends make me so happy…
Why are people so awesome?