Wed, 18 Oct 2006

A Small Trick: Avoiding missing configuration includes

The kernel used to have a problem that people would use the CONFIG_ pre-processor variables but not include the "linux/config.h" header, resulting in strange bugs as some files were built with the option, and some without.

 #ifdef CONFIG_MODULES
 some expression
 #endif

This was solved in the kernel by putting "-include linux/config.h" on the gcc command line to always ensure its inclusion. But an alternative is to change to using #if instead:

 #if CONFIG_MODULES
 some expression
 #endif

This does the same thing (undefined symbols in CPP are equivalent to 0), but now you can define every switch to 0 or 1 and use -Wundef: GCC will warn if the option is undefined.


[/tech] permanent link

linux.conf.au paper, and requests for comments...

I'm excited about my LCA paper: "Writing an x86 hypervisor: all the cool kids are doing it!". It's going to be an ensemble piece, which is always a bit risky, but I managed to convince Chris Wright (RedHat), Jeremy Fitzhardinge (XenSource) and Zach Amsden (VMWare) to copresent with me. We are the four people doing the hard yards of getting the paravirtualization infrastructure into Linux (and adapting our various products to it), so it doesn't get more expert than this. We've just got to pack it all into 45 minutes.

I'm also co-presenting a "First-timer's Introduction to LCA" with jarich, hopefully on the Sunday evening. This is important, because I worry that LCA could become "regulars" vs "others" (and the next step after "cliquey" is usually "sucky"). I'm spending some idle cycles thinking about what should be in it, but it's hard for me to see things from a newcomer's POV. If anyone wants to mail me with "I wish I had known..." tips, please do!

I had submitted a tutorial proposal as well: "Hacking in groups". The idea is to get 20 or so really top coders (speakers are good candidates) and set them up with five attendees to code on some small project for three hours. The lead coder will have done it before: the idea is they present the problem, let people code for a while to some milestone, then show their solution, then let them run, with a wrap-up at the end. It won't teach coding, but you will get exposure to an experienced coder's tricks and techniques.

There are two problems, though: it needs 20 talented coders, and it only caters for 100 attendees max. The paper ctte rejected it as a tutorial and suggested running it on Saturday. Now I'm rethinking: it's a lot of work, for me and for the coders, and I'm not sure how well it will work. Do people want this?

Thanks!


[/tech] permanent link