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.

Porcelain Incident

Earlier today, July 25 2008 at 9:35 AM EDT, in Les Suites hotel room 1614 located in Ottawa, Ontario, Canada, an unidentified Canadian national going under the alias Shawn, was caught by security moving porcelain items from one of the bathrooms into his bed.

Porcelain Incident, exhibit 1 Porcelain Incident, exhibit 2 Porcelain Incident, exhibit 3

OLS 2008 - Day 3, Part 2

Ok, here’s the rest of what happened yesterday.

My BOF went fairly well. Of course, I have the slides for your perusal. For the demo, I started with following the HOWTO in the Documentation directory of the guilt repository, but soon after, I just deviated, and used the demo time to show people what happens under some cases that they were asking about. I got some useful questions. I even got an email from one of the people asking a question with the details about the question he asked.

After my BOF, a former labmate, Dave Quigley had a BOF about SELinux. During it, I decided that it would be fun to try SELinux again. I installed a bunch of Debian packages, fixed up a few config files based on the SELinux Setup page on the Debian Wiki, and rebooted to have the system relabel itself. That took a looong time. Mostly because I have something close to 300 thousand files on my laptop, and each and every one of them had to get a new extended attribute → every inode had to either set up an in-line xattr, or if there isn’t enough space, a new extent for the 20-40 byte label (I guess closer to 64 bytes with the label name + value).

One amusing thing that happened during the BOF was…at one point, Stephen Smalley (SELinux master-mind), was commenting about AppArmor (a competing security system) when he said “AppArmor is better…” well, the ellipsis really is “…than nothing.” :) Someone there actually made this joke.

After the BOF, Shawn Starr, Dave Quigley and talked for a couple of hours about a ton of random topics. Fun, fun, fun.

When Shawn and I got to the hotel, I mentioned the fact that he moved parts of the toilet the day before at an ungodly hour (something like 7:45am)…but for whatever reason I said “you moved the porcelain” … that’s where things took a strange turn… The endless stream of porcelain jokes just kept on going on and on.

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 2

Day 2…well…day 1 of the conference. The first talk (a keynote, actually) started at 10am. Unfortunatelly, I couldn’t use my phone as an alarm clock as the LCD broke earlier this weekend…

Broken LCD

…and yesterday before going to bed, I forgot to set the time on the alarm clock in the hotel room. So, I got up when it felt like a good time to get out of bed. Well, oddly enough, that turned out to be something like 7:30. A bit scary actually.

Anyway, a croissant and some orange juice later, I was at the conference center, with about 45 mins to spare. I ran into Bruce Fields (one of the NFS guys; working at University of Michigan).

The keynote was ok. First, there were some technical problems (the mic and the projector didn’t work), once those got out of the way and the actual talk began. The speaker was a bit too quiet - not sure if that was his fault or if the amplifier wasn’t set to the right level.

After the keynote, as people started pouring out of the room, I saw Dave Quigley (a former lab mate from FSL) hanging around some SELinux guys (makes sense, since that’s what he’s working on). We talked for a little, and then headed down to one of the talks in the next time slot: Confining the User with SELinux. It wasn’t bad…but being no fan of SELinux, I probably didn’t get all the fun out of it. I am somewhat tempted to give SELinux a try…again.

Seeing that there were no interesting looking talks, Dave, I, and 5 people doing SELinux work went out to get lunch. I had some pretty good burger with blue cheese…I think I’m on a blue cheese binge.

After lunch, it was time for another talk to attend. I decided to check out the “Real Time” vs. “Real Fast”: How to Choose? It wasn’t bad at all. Not being into real-time systems, I learned a few things here and there.

For the next talk, I just stayed in the same room. It wasn’t much fun. The presentation wasn’t the best, and about 15 minutes into it, I realized (talking with some people on IRC) that there was another talk in the other room that I wanted to see. So I left.

The other talk (Tux meets Radar O’reilly - Linux in military telecom was good. Well presented, and while obvious, it made a couple of thoughts explicitly stated.

The last talk (A Runtime Code Modification Method for Application Programs) for the day was quite interesting. I am going to check out the project website and read the paper in the proceedings.

After talks, there were BOFs… I went to the ones about Kernel.org and iSCSI HBA with Linux OpeniSCSI.

The kernel.org BOF was much like last year - and it was a good update to see what’s going these days with the services they provide. The summary: things work. :) And more will work.

The iSCSI BOF was interesting. I got to hear about some iSCSI offload stuff that Broadcom is working on.

After the BOFs, I waited around for a little bit with Christoph Lameter, Pekka Enberg, and Bruce Fields. Then a bunch of people from the conference (I guess something between 25-35 in total) headed to a rather fancy place for some food. The soup was good. The salmon was good. The ice cream was good.

Anyway, it’s getting late, and I should get some sleep tonight.

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.

500 Miles

Very interesting…over the past month, it dawned on me that distance of 500 miles came up a number of times. For example, my commute to work is 500 miles/week. Another example is the distance between Long Island and Ottawa is just under 500 miles. There are others but they are somewhat boring :) The Ottawa number is not something completely random…you see, I’m heading to the airport in little over an hour to fly to Ottawa for the Ottawa Linux Symposium 2007! OLS 2007, here I come!

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

Powered by blahgd