Notes for analyzing linux:
--------------------------

Configure w/ spinlock debugging on, otherwise the functions are inlined
and won't be able to see function calls.
    - Still #defines "spin_lock" to "_spin_lock" though


make allyesconfig /* Might not want to do that actually... */

Add -fno-stack-protector to CFLAGS in the Makefile

make menuconfig

turn off module support (so that it's all linked in?)

turn off KPROBES (since we turned off module support)

MODIFY printk to reduce recursion

Might want to remove ISDN drivers (hairy function pointer use)

--------------------------
Entry points
--------------------------

Roots that hit these additional functions (might just be themselves)?

- start_kernel

- other asmlinkage stuff (tells code to look at stack for args).        
  all sys_calls use asmlinkage (too bad it's not a gcc attrib)
  - decompress_kernel
  - sys_*
    (see roots.txt? for syscalls from syscalls.h)

(Hmm these weren't in the set of roots that reach thread-creation, etc.,
 nor were they reachable from others)

- things that call "schedule()"? (i.e., try to yield)



---------------------------
Concurrency
---------------------------

Deferrable functions:

  * On different CPUS
    * Softirqs can run concurrently
    * Tasklets are restricted in that the same "type" of tasklet 
      cannot run concurrently
    * Bottom halves cannot run concurrently at all (being phased out)
  * On the same CPU
    * No concurrency for all 

