I’ve spent more or less the last few days of spare time trying to figure out why gcc-4.3 built kernels were so unhappy on parisc. Basically the symptom was that any IPv4 networking operation would only complete once and a while, for example, ping would drop 90% of packets. This turned out to be a really troublesome bug to track down, and the fix was only 7 characters long.
gcc-4.2 wasn’t problematic, so that provided an interesting base. A bit of thinking ruled out some obvious parts of the kernel that would likely not be an issue. For instance, ARP appeared to be fine, so it likely wasn’t an issue at the network driver level. So rebuilding net/built-in.o on gcc-4.2, copying it to the gcc-4.3 tree, and rebuilding the tree using it resulted in a working kernel. Ok, excellent, we know it’s likely an issue in net/, what else can we rule out, and what do we know? ICMP is affected, so it’s probably not a TCP problem… Rebuilding the kernel with IPv6 enabled, and testing ping6? Ok, works. So it looks like an IPv4 issue. Test that assertion… yup, net/ipv4/built-in.o compiled with gcc-4.2 works.
Ok, peachy. What now? Bisecting the contents of the directory results in ip_output.c being the problematic file… Not all that helpfully, the differences between the code generated by 4.2 and 4.3 are extensive. Well, ok, let’s try turning off a variety of the added compiler options… nope, no luck, but the file works when compiled at -O0.
Next, I bisected the file until I found the problematic function (unfortunately for me starting in the middle, it ended up being the first function in the file.) Which was in a chain of inline functions, eventually calling some architecture specific inline assembly for ip_fast_csum. Ok, that looks like our canary in the coal mine… Look it up… SIGH. The routine touches memory, but didn’t have “memory” in the list of clobbers.
Adding the clobber and everything magically works again. Wasn’t that a party?
[ Of course, this makes things sound almost easy, except that at around 10 minutes to boot a test kernel, reboot, and boot a working kernel, this gets extremely tedious. I also didn't bother to talk about how many hours I probably wasted twiddling compiler flags trying to figure out which optimization pass might be broken... ]
Close-to-complete Ideology and Religion Truth List

Aujourd'hui est le faste jour de mon mariage avec la femme qui partage ma vie depuis près de neuf ans, et qui est aussi la future maman de notre 



Right now i finished to see the talk from FrancescoCrippa about Coppler, Func and Puppet. Great talk - i am sure i will use this in the future!


On Wed I was convinced by ![[info]](http://p-stat.livejournal.com/img/userinfo.gif)

Recently I've got an idea of creating a new artwork project to celebrate the annual F10 release. The project name is Fedora History Tour. Today Jon McCann made a blogpost called 
দুজনে দেখা হল মধুযামিনী রে -

Periodically, I've been checking
I am not artistic, or so I thought. I can't draw a box, have a hard time carrying a tune, and was always better behind the camera than in front of it. But I have discovered there is more to being an artist than just that. Programmers are artists so there is one for me. Can drinking beer be art? Don't think so, but making it can be.
3 evenings, 3 films, and all connected.