Showing posts from October, 2004

I move here and look what happens

Holy Shit I forgot my camera.

Usenet Redux

Natty : He is doing it manually. You know, the 'ol sync;sync;/sbin/reboot thing. I may have exaggerated the 57 times--maybe more like five. The eternal quest to optimize sync is unrelated to sri's obsessions, though, they just incited the fire.

Even smaller sync

Woo hoo, Callum ! Callum hand wrote the ELF headers and took my four instruction sync (1) from 360 bytes down to 45 bytes. Nice job, duder. Oh, and it works. Are there any more optimizations to make? Update : Uh oh, this version takes double as long to run (two milliseconds versus one, both cache hot). Since the size is under VM and block device granularities anyhow...

sync

sri commented that he runs sync (1) 57 times before rebooting, which prompted me to run strace (1) on sync , notice that sync executes 98 system calls, grumble in disgust, and cry. The overhead was mostly in dynamically linking in libc and some locale junk, so my first attempt at improvement was just a simple: int main () { sync (); return 0; } Which I compiled with -static and ran with a fixed locale. This still used 12 or so syscalls. Far from the ideal two. The world's greatest sync, however, came on my second attempt, this time in assembly: .text .globl _start _start: movl $36, %eax int $0x80 movl $1, %eax int $0x80 Yah, baby. This is what I train for. Compile via gcc -s -nostdlib sync.S -o sync Four instructions versus 1,938. Three hundred sixty bytes versus 17 kilobytes. Two system calls versus 98. One millisecond execution versus 32. shaver says that I suck because if I hand write an optimal ELF preamble, I can get the object size down to well

Masks

We got inotify 0.14 out last week. Few needed changes remain. I want to redo the locking. Largely, I already have, but the current diff is so large and unwieldly that I can never hope to break it up. Also, I have not even booted it yet. I additionally want to replace our bitmask lookup with the idr layer. I actually already did this; we just need to integrate the patch. Finally, I need to change how we do resource limits, moving from per-device to per-user limits and then removing entirely the open device limit. But even now, inotify really is nice, an excellent example of a file change notification system, full-featured but simple to use. The Kernel Event Layer has been merged into 2.6.10-rc1 . I really hope that drivers and other subsystems start using it, helping to stomp out polling and ushering in a new era of asynchronous instant events. Also, I get a dollar for each kevent. Landon hates Mel Took a mini vacation last week, flying back to Florida, renting a car, and d

Knives

The power of Beagle as an indexing system begs questions on how much we really need structured data--e.g., Storage or WinFS. Certainly, a structured representation of data allows for much richer metadata. In fact, it really gets rid of the concept of metadata altogether, storing the "payload" of your data alongside the "metadata" in one structured and typed schema. Which is, you know, pretty rad. But structured data has downsides, too, not the least of which is the complexity and change in thought. Another issue is that structured data is more regimented than unstructured data. The structure might be right for the world we have today , but what if it is wrong for the problems of tomorrow ? The change in thought is what we ultimately want, though. A new, richer paradigm for manipulating and maintaining our data. Issues such as structure and databases and the backing store are just that: implementation details. The real beauty is how we can think about our data

If by "dog" you mean "cat" then I am there

Been writing all day. Boring and not even very productive, to be honest. Yesterday, a three-judge panel of the Eleventh Circuit Court of Appeals ruled unanimously that protesters at a rally next month at the School of the Americas cannot be required to pass through metal detectors. Judge Gerald Tjoflat (is that really a last name?) wrote We cannot simply suspend or restrict civil liberties until the War of Terror is over, because the War on Terror is unlikely ever to be truly over . He continues, September 11, 2001, already a day of immeasurable tragedy, cannot be the day liberty perished in this country. Well said, duder.

BRING ME MY LATTE!

Sitting in my office, in Cambridge, and listening over Shoutcast live to my expat friend, JP, spin in Osaka Japan. The Internet brings two people half way around the world together. I might as well be listening to him in person, except that this stuff is great hacking music. Anyhow, wow, we are all connected. I even have a picture: jp, dj

GNOME Summit

The GNOME Summit was fun. Oh my is the Stata Center a beautiful and unique building. I have always loved Gehry's creations--there is a Stata Center book on my coffee table--but being inside this work of art is just wonderful. Awesome architecture. Organic, alive. The Stata Center at MIT My good friend Chris from school was in town for the conference. He stayed at my place, we had a good time, laughing, catching up. Alex was in town, too, which was, naturally, fun. Chris, lover of all things related to pirates The conference had some real highlights: Beagle , Tomboy , Gnoetry , Celestial . I gave a talk on inotify and other kernel happenings. Adam followed up with an overview of device model related changes, including resource management and driver binding, two things that HAL should really appreciate. There were a lot of new faces to GNOME--heck, I am a newer face than many to GNOME--and it was good to see the first-time visitors and contributors. These folks are r

Flipper Johnny

Released schedutils 1.4.0. San Francisco, from 101, on the way to Foo Camp The theme of much inotify hacking continues--fixing bugs, cleanup, and new features. Patches and packages available. Last night, the Love-Trowbridge algorithm was postulated. This morning yielded a stunning and beautiful proof .