I've been testing out the 2.4.0 kernels as Linus wants. My particular area is looking at SMP interrupt handling trying to write `burnAPIC`. First, the good news: average int overhead measured by `clockwatcher.c` [posted last year] is down from ~960 CPU clocks in 2.2.13 to ~740 clocks in 2.4.0t8. Impressive. Now the bad: Sometimes (~15%) it takes at least 25,000 CPU clocks (68 us @ 366) for an IRQ to be handled. [Both module prink's come out before the kernel intr printk's] Then the the second of the closed-spaced pair gets lost. I use a write to the APIC Intr Cmd Reg to simulate hardware interrupts [`movl 0x840D0, 0xFFFFE300` in the kernel module below]. Naturally I hit uninstalled IRQs, and the default handler takes care of it with a nice printk. Now I don't know if the same behaviour happens with real hardware interrupts, but the possibility is there. And long interrupt latency will cause real trouble for high interrupt machines. An innocent Linux box might suffer sitting on a 100baseTX ethernet polluted by broadcast runts from poxy MS-Windows NetBIOS boxen. It'd only have 6 us to handle the garbage packets. I don't know what would cause high IRQ latency. I would hope that the APIC page at 0xFFFFF000 isn't mapped cacheable. -- Robert author `cpuburn` http://users.ev1.net/~redelm # modAPIC - Generate hw interrupts # Copyright 2000 RJ Redelmeier GPL - NO WARRANTEE. .globl init_module .globl cleanup_module .extern printk .text .align 4 init_module: pushl %ebp movl %esp,%ebp # movl $0x000840E0, 0xFFFFE300 # movl $0x000840D0, 0xFFFFE300 rdtsc pushl %eax pushl $strLoad call printk rdtsc pushl %eax pushl $strLoad call printk xorl %eax, %eax leave ret cleanup_module: pushl %ebp movl %esp,%ebp movl $0x000840D0, 0xFFFFE300 movl $0x000840E0, 0xFFFFE300 rdtsc pushl %eax pushl $strUnload call printk rdtsc pushl %eax pushl $strUnload call printk xorl %eax, %eax leave ret .section .modinfo __module_kernel_version: .ascii "kernel_version=2.2.15\0" .section .rodata .align 32 strLoad: .ascii "<1> Asm Module Loaded! @ %u\n\0" strUnload: .ascii "<1> Asm Module Unloaded @ %u\n\0" # - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/