Josef “Jeff” Sipek

OLS 2008 - Day 4

I’m a still a day late when it comes to writing about OLS. Here’s Friday’s list of talks, and other happenings.

The day began with A Practical Guide to using Git (From a Kernel Maintainer) — it was very crowded in the room, so much so that I didn’t really see the slideshow, but since I already know enough about how to use Git, I don’t mind all that much. Good talk.

The next talk which I kinda had to go to was SynergyFS: A Stackable File System Creating Synergies Between Heterogeneous Storage Devices. It was a disaster — and I put that mildly. The first 30 minutes of the 45 minute talk consisted of Samsung branded marketing material showing that solid state disks were better than the regular platter-based disks. Since the marketing people care mostly about Windows users, the propaganda materials consisted of things like a video thing showing Microsoft Windows Vista booting on two identical laptops — with the exception of the storage device.

Anyway, about 2/3 of the talk through, a SynergyFS got mentioned. And that’s when the one quite important bit got mentioned. At the time of the writing of the paper, the filesystem was a “proposed filesystems.” In other words, it didn’t exist. I am not certain if it exists at the moment, and if it does, what state it is in, but I do know (since an audience member asked when/where he could look at the code) that unless one signs an NDA with Samsung, he can’t even look at it. The code is not GPL licensed, since Samsung lawyers apparently see it as a way to lose some magical intellectual property, which as far as I know they never had. There has been papers published about hybrid storage, there have been papers published about fanout stackable filesystems, there have been papers published about fanout stackable filesystems which use different storage technologies (in no particular order: FiST, GreenFS, RAIF, Unionfs).

Overall, I feel like going to the talk was a waste of time. Meh.

Then I lunched.

Well, just before lunch, I was playing around with SELinux on my laptop, and after logging in, the processes weren’t getting the right context. After lunch, I went to SELinux for Consumer Electronic Devices. I walked into the room, and saw the NSA/Tresys/RedHat SELinux developers (including Dave Quigley) clustered in one area of the room. I just couldn’t resist, and I said “SELinux sucks” and then proceeded to walk away. The really amusing thing was all the SELinux people turned around to see who it was that dared to say such a thing. Very amusing. I sat next to them, and mentioned my SELinux problem. Stephen Smalley tried to figure out what the problem was, and in the end, reached the conclusion that somehow, even though the targeted policy was in use, the system was using some information from the strict policy completely confusing everything. I installed the strict policy, and things started working….well, for the most part. I should file this under the Debian bug tracker since it is a bug.

The SELinux talk was ok. It was what I expect…SELinux is kinda bloated for embedded systems. Some time after the talk, I overheard Stephen Smalley talking to Dave, saying that they should look into it a bit.

The next talk which I went to was Around the Linux File System World in 45 minutes. The reason I went to it was because it was being presented by Steve French. It was interesting, as I expected, and I’m going to read through his paper to see what exactly he did for the accounting (and what his thoughts are).

After Steve’s talk, I was going to go to a BOF about MIPS kernel port, but got distracted by people (including Steve).

At first, I wasn’t sure if I was going to go to the keynote (The Joy of Synchronicity) by Mark Shuttleworth (of the Ubuntu, space travel, and other-random-stuff fame). The title alone makes it sound like a hand-wavy, dreamy thing, but in the end I decided to at least spend 5 minutes listening. It was ok. Not great, from a technical perspective, but he did have some interesting ideas…well, it was really all just one idea — open source projects should have regular release schedules. I don’t know if I agree or not. On one hand it’s a nice thing, but at the same time, schedules are quite annoying when you want to make major changes (the KDE 3.x to 4.0 changes come to mind). In the end, I did stay the entire time, but I bailed at the beginning of the Q&A session.

Some food later, I headed to the hotel room to finish up writing notes for the day before. Well, I tried to upgrade my Wordpress install…but more about that later.

OLS 2008 - Day 3

Yeah, I really wanted to write this yesterday — since it is about yesterday, but I was too tired when I got to the hotel. Either way, here it is.

The day started at 10am again - I love it. Previous years, presentations started at 9am (except the first day that was 10am). The first talk I attended was a about kernel documentation — where it resides, and why the current state is bad. The talk was a bit confusing. At one point, the presenter decided to read some text right from a HTML file — opening it in a text editor instead of a browser. He also seemed to contradict himself a bit … at one point he seemed to have said that HTML was better than plaintext docs, and then some time later, he said the other thing — plaintext docs were better than HTML. I kinda gave up understanding what his point was.

I decided to be lazy, and stayed in the same room for the next talk: On submitting kernel features. I zoned out for quite a bit — I knew a bunch of things already, and it was a bit hard to lex what Andi Kleen (the speaker) was saying.

I was going to go to the ext4 talk. Unfortunately, I got distracted by people on my way to the talk, and before I knew it, I missed most of it. I guess I’ll just have to read the paper.

After lunch, I went to Virtualization of Linux servers: a comparative study. The talk was interesting, and I will read the paper. It showed exactly how much x86 virtualization sucks (at least compared to what’s on the mainframe). I can’t wait to have some time to hack on HVF some more. :)

Then, I got distracted by people, preparation of slides for my BOF about Guilt, pondering about trying SELinux again, etc., etc.

Anyway, I’m going to finish a summary of what happened yesterday later today. Until then…

OLS 2008 - Day 1

Times has come once again to talk of Ottawa Linux Symposium. Yep, that’s right it’s that time of the year again (ok, I’m posting it a little bit late).

Today was mostly uneventful. I woke up just before 6, got to the airport, flew to Ottawa, got to the hotel, realized I was about 4 hours early for check-in. I left my bag at the hotel, and went to the conference center. There I ran into Christoph Lameter. Having nothing better to do, we decided to pick up our registration and then go eat something.

When I got to the airport (LaGuardia) in the morning, I went on to continue reading a book I was about 2/3 of the way through — Princess Bride. My reading got briefly interrupted by the boarding call. After boarding the plane, I resumed reading. There is one really nice property these paper things have over electronic ways of eating up time…they don’t need to be turned off for take off and landing. Anyway, I fished the book while waiting for the hotel shuttle at the Ottawa airport. For what it’s worth, it’s a good book that everyone should read.

Around 6pm, a bunch of people I know (but probably shouldn’t associate myself with them in public ;) ) got to the hotel…about 2 hours later, one of them, a weather-loving KDE code monkey (yeah, that’s you Shawn) and I ordered pizza. It was quite tasty, as were the chicken pieces in the blue-cheese sauce.

Anyhow, time to run to the next talk….I’ll try to post at least once a day with random stuff…we’ll see how that goes.

OLS 2007!

So, I submitted a proposal for OLS 2007, and I got in! Stay tuned for the self-inflicted agony associated with actually writing the paper :)

Bizarre Code

Think of this as a sequel to my post about a year ago.

The following peice of code is from Unionfs’s copyup_permission(). It is (or should be) a simple function that is supposed to copy the permissions from one inode to another. Well, I can’t help but remember this one slide from Greg Kroah-Hartman’s keynote this year at Ottawa Linux Symposium. Here’s the slide:

Linux is evolution, not intelligent design.

The quote definitely applies to copyup_permission(). It seems very clear that it “evolved” to something very odd. Anyway, I shall torment you no longer, here is the code:

static int copyup_permissions(struct super_block *sb,
                              struct dentry *old_hidden_dentry,
                              struct dentry *new_hidden_dentry)
{
        struct iattr newattrs;
        int err;

        print_entry_location();

        newattrs.ia_atime = old_hidden_dentry->d_inode->i_atime;
        newattrs.ia_mtime = old_hidden_dentry->d_inode->i_mtime;
        newattrs.ia_ctime = old_hidden_dentry->d_inode->i_ctime;
        newattrs.ia_valid = ATTR_CTIME | ATTR_ATIME | ATTR_MTIME |
                        ATTR_ATIME_SET | ATTR_MTIME_SET;
        /* original mode of old file */
        newattrs.ia_mode = old_hidden_dentry->d_inode->i_mode;
        newattrs.ia_gid = old_hidden_dentry->d_inode->i_gid;
        newattrs.ia_uid = old_hidden_dentry->d_inode->i_uid;
        newattrs.ia_valid |= ATTR_FORCE | ATTR_GID | ATTR_UID | ATTR_MODE;
        if (newattrs.ia_valid & ATTR_MODE) {
                newattrs.ia_mode = (newattrs.ia_mode & S_IALLUGO) |                
                        (old_hidden_dentry->d_inode->i_mode & ~S_IALLUGO);
        }

        err = notify_change(new_hidden_dentry, &newattrs);

        print_exit_status(err);
        return err;
}

It was actually Seth Arnold that noticed that the condition will ALWAYS be true because ATTR_MODE is set in the line just above it. Furthermore, if one eliminates the if statement and replaces newattr.ia_mode in the assignment with what it is set to just few lines before (right after the comment) he gets:

newattrs.ia_mode = (old_hidden_dentry->d_inode->i_mode & S_IALLUGO) |
                   (old_hidden_dentry->d_inode->i_mode & ~S_IALLUGO);

If you are up to speed with bitwise operations, you’ll realize that it can be simplified to:

newattrs.ia_mode = old_hidden_dentry->d_inode->i_mode;

Brilliant!

OLS 2006 - Addendum

So, as promised, here are some photos from OLS 2006:

Here’s the only photo of a person I took: John Levon aka. Movement:

John Levon

The Bank of Montreal - in Ottawa!

Bank of Montreal in Ottawa

Crazy turists in Ottawa:

Crazy turists

War & civilization…just 1 km apart!

War & Civilization

Of course there were some nice clouds:

Clouds

As well as these pesky creatures:

Pesky creature

OLS 2006 - Day 6

I woke up at about 10. Took a shower, packed up and checked out. Just as last year, I decided to take my camera and wonder around Ottawa taking photos of interesting looking things. Well, the center of Ottawa is small. By about 14:00, I was kind of bored. So I decided to go back to the hotel and waste some more time. In front of the hotel, I noticed the shuttle to the airport. I asked the guy how frequently he was going, but he misunderstood me and told me how long it takes to get to the airport instead. He then asked if I was going. Since I didn’t have anything better to do, I told him that I’d just grab my bags.

We got to the airport at 14:36. So it took 15 minutes to get there from the hotel. Not bad. Then, I however realized that there wasn’t much to do at the airport. I sat down on one of the benches. Not even 10 minutes later, Movement poped up out of nowhere. We chatted about how exciting flying is. His flight back to .uk was with a layover in Atlanta - not fun. Around 15:10 he left because he was about to check in. I decided that the terminal couldn’t be any more boring, so I checked in as well. During the chat, I decided to take a photo of him. This year that’s the only OLS photo of a person! All the other photos are of Ottawa. I’ll put it up in few days, when I dig it up.

Good thing I checked in :) When I got the the terminal, I sat down near the first outlet I saw. I was about half way though the boot sequence when I notice about 7 other OLS attendees not far from me. They included Mike Halcrow, Val Henson, and some other people some of which seemed familiar, but who’s names I did not know. We chatted. Mike actually showed me a leak in the FiST templates as well as Unionfs. We chatted, until most of them left because their plane was ready. I and some other dude moved to another cluster of chairs with some more OLS attendees which appeared as we were chatting. There we had an interesting discussion about Australian politics. Some really odd things happen there. :) Some time later, they all headed to their plane (yeah, my flight was at 18:00, and I got to the airport at 14:36…). Few clusters of chairs away, I noticed Dave Jones. I decided to walk up, and ask him if he thinks there were enough changes to the bug tracking issue he was talking about in his keynote last year. He thinks that there were some, but most of them were minor. He was really hoping someone would make some automatic bug-report moving tool which automatically moved kernel bugs from say the Red Hat bugzilla to the kernel.org bugzilla.

Then they called my flight. It was the same type of a plane as on my way to Ottawa - made by Bombardier - a small jet. The flight itself was uneventful and everything went well and on time. One thing that I found interesting was the fact that the US customs people are in Ottawa and not in New York.

When I got home, I just fell asleep. :)

OLS 2006 - Day 5

The day began with an awesome presentation I gave about Unionfs. :) Shawn was recoding it, but after the presentation, he found out that the video turned out to be crap. He has audio only. I’m sure he’ll share it soon. :) I was pleasantly surprised at the number of people that use Unionfs or were interested in Unionfs.

The keynote was excelent as always. However I must say that Greg K-H made it sound like any piece of code will get into the kernel. Yeah, right :) But he did say few nice things about the status of Linux.

After the keynote, there was the GPG key signing - which I did not attend, although I wanted to. Instead we went to get some food. Food was good, we (I, Dave, Mike Halcrow, and Prof. Zadok) talked about a bunch of things ranging from MythTV and terabyte storage servers, to things like the number of ants in Texas. (Apparently, it is a lot of fun to watch termites and fire ants battle to the death. O_o )

We finished food around 19:45 which was about right to head over to the Black Thorn for the after event party. Just as last year it was quite interesting. Pretty much as soon as I got there, I noticed Peter Baudis aka. pasky - the cogito maintainer. We chatted about how git and Mercurial differ (Matt’s talk the day before came in handy :) ). I mentioned I was slowly working on a generic benchmark script that would test a number of popular SCMs including Mercurial, Subversion, and CVS. He was thrilled about the prospect of knowing exactly where git sucked compared to other SCMs - my guess is that he wants to fix it and make it better, a noble goal, but unnecessary as Mercurial already exists and why reinvent the wheel? ;) Seriously, though, I think a lot of people would benefit from knowing exactly where each SCM excels, and where each sucks. The nice thing about collaborating with the git people would be that it would make it more apparent that this wouldn’t just be yet-another-fake-test. After some time, a bunch of other Czech people poped up right next to us (people like, Pavel Machek, etc.). It was quite interesting. :)

After than I joined a converation with some Intel people. As it turns out, one of the Intel people is working on the e1000 driver — awesome piece of hardware, by the way, don’t ever buy anything other than it. :) Some time later, Jens Axboe joined the group briefly. When he said my name seemed familiar, I mentioned how I tried to implement IO priorities - and failed :) Later on, a guy from University of Toronto joined the group. He approached me earlier in the day about unionfs on clusters. We chatted about things ranging from school (undergraduate program, and grad school) to submitting kernel code to lkml. The e1000 guy said a similar thing that we should split unionfs up into a few patches, and send it off. During the event a few people still asked me about Unionfs, which felt good :)

Then, I decided that it would be fun to talk to some IRC people. I found John Levon and Seth Arnold. We sat down, and had an interesting conversation about a number of things. Since at least some of these were quite interesting, here’s a list:

  1. How can I deal with VFS and not drink vodka or other hard liquer
  2. Everybody hates CDE, even people at Sun
  3. Solaris is dead (well, they didn’t say it, but that’s the feeling I got)
  4. Brittons have some interesting sports or at least some of the expected behavior during the sport is interesting, namely:

  1. darts - you are expected to drink as you play
  2. I can’t recall the name - gigantic pool table
  3. cricket - everyone smokes "reefer" (to quote Movement, I just find this name of the substance mildly amusing) because their games sometimes take several days

After that, they kicked everyone out as it was 2:45 already. We (Seth, John, and I) went back to the hotel. There, Prof. Zadok and Chip (who arrived on Friday) were about to get up and head to the airport. :) I just went to bed.

OLS 2006 - Day 4

Friday was kind of interesting. The talks were little weaker, but there were some interesting ones. For example, Matt Mackall’s Towards a Better SCM: Revlog and Mercurial talk was a nice way to learn how Mercurial stores the history. I got tired so I went back to the hotel, and fell asleep for few hours. I woke up just in time to head over to the conference center for the 20:00 Stackable file systems BOF. That was interesting. A lot of useful people showed up, including Christoph Hellwig, Ted Tso, Val Henson, Steve French (Samba/CIFS guy), Jan Blunck,Eric Van Hensbergen (plan9 fs implementation in Linux) and many more. Topics included limited stackspace (4K on i386), cache consistency, locking, and nameidata structure brain damage.

As we planed before, after the BOF we invited everyone over to the hotel for some snacks and drinks. That’s where things got really interesting. I spent a lot of time with Jan Blunck and Eric Van Hensbergen talking about the proper way to do unions. Three people, three different ways to union files :)

After that we had some fun with the stack space issue and Reiserfs (and Hans’s approach to open source).

stack space
There should be a competition "who can create the largest storage stack without overflowing the stack." For example, unionfs on top of gzipfs on top of versionfs on top of device mapper on top of md on top of scsi over ethernet on top of ppp tunneled thought ssh …. you get the idea
Reiserfs
Apparently, Christoph once fixed something trivial in reiserfs code, he sent the patch to Hans, and in return he got a gigantic legal document (I know exactly what he is talking about as I have submitted a patch once as well). Well, he didn’t like it, so he gave Hans a bunch of options one of which included certain sum of money for copyright to the code. Interestingly enough, Hans accepted. Too bad I didn’t know about this story before, I might have made some money of off my one line fix to the reiserfs section in the Kconfig file. :)

I have to say, I really want to look at how plan9 works thanks to the conversation I had with Eric Van Hensbergen. It seems to have a lot of really good ideas. Hrm, now that I think about it, I might install it one of my old boxes. Yeah, I know I am odd.

OLS 2006 - day 3

So, today was interesting. Some of the people I saw and/or talked with included: Andrew Morton, Alan Cox, Dave Jones, Jim Gettys, Matt Mackall, and so many others I don’t even remember.

When I got back to the hotel, I noticed this one interesting sign on it (on the inside), I couldn’t resist to take a photo of it. Here’s a cropped portion of it that has the amusing part (there was presumably the same text in French as well as a map to the nearest emergency exit):

Canadian laws…

Powered by blahgd