From: Hubertus F. <fr...@wa...> - 2004-07-20 14:29:20
|
Since we are rewriting the scheduler it needs to be available as part of the default kernel. Hence "module" is not really an option. Hence for the same reason we can not provide task-class as a module. You can see that these are initialized very very early in the boot sequence ... > PID hash table entries: 4096 (order 12: 32768 bytes) > CKRM Initialization > ...... Initializing ClassType<taskclass> ........ > ...... Initializing ClassType<socket_class> ........ > CKRM Initialization done The only thing we can provide as a module is the controller API (i.e the function call table and the controller object allocation/deallocation). But note that the default classes's cpu controller already needs to be available. If this is an issue we can consider, but I see little value wondering down this route at this point. The NULL pointer should be easy to track. Haoqiang, can you look into this? If you don't have a machine with ACPI, talk to Rajan, we should have more in my lab. -- Hubertus Guillaume Thouvenin wrote: > Selon Haoqiang Zheng <hz...@cs...>: > > > >-----Original Message----- > > >This is the patch for CKRM CPU scheduler based on core e15. It's > > >stable (I think) for uniprocessor systems. It hasn't been tested on a > > >SMP system so I can't say anything about that. > > I tested your patch on SMP system as I am very interested by > statistics that can be gathered for a class about CPU usage. Compilation > was fine except that CKRM CPU Scheduler and CKRM CPU Monitor must be > selected in the config as reported in previous mail (it doesn't work as > a module). A problem occured when booting the system. It blocked after > ACPI started. I copy boot message at the end of this email. The kernel > works fine if the patch is not applied (just with e15). > > If it can help I can perform some other tests on the SMP system. > > Best, > Guillaume > > > ---------------[ CUT HERE ]------------------------------------------- > Filesystem type is ext2fs, partition type 0x83 > kernel /vmlinuz-2.6.7-e15+cpu root=/dev/sdb3 console=ttyS0 > [Linux-bzImage, setup=0x1400, size=0x1ac1b6] > > Linux version 2.6.7e15+cpu (guill@account) (gcc version 3.2.2 20030222 > (Red Hat Linux 3.2 > 2-5)) #6 SMP Mon Jul 19 13:38:46 CEST 2004 > BIOS-provided physical RAM map: > BIOS-e820: 0000000000000000 - 000000000009f400 (usable) > BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved) > BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) > BIOS-e820: 0000000000100000 - 000000007fff0000 (usable) > BIOS-e820: 000000007fff0000 - 000000007ffff000 (ACPI data) > BIOS-e820: 000000007ffff000 - 0000000080000000 (ACPI NVS) > BIOS-e820: 00000000fec00000 - 00000000fed00000 (reserved) > BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) > BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) > 1151MB HIGHMEM available. > 896MB LOWMEM available. > found SMP MP-table at 000ff780 > On node 0 totalpages: 524272 > DMA zone: 4096 pages, LIFO batch:1 > Normal zone: 225280 pages, LIFO batch:16 > HighMem zone: 294896 pages, LIFO batch:16 > DMI 2.3 present. > ACPI: RSDP (v000 NEC ) @ 0x000ff9b0 > ACPI: RSDT (v001 NEC EXP5800 0x00000001 MSFT 0x01000000) @ 0x7fff0000 > ACPI: FADT (v001 NEC EXP5800 0x00000001 MSFT 0x01000000) @ 0x7fff0030 > ACPI: MADT (v001 NEC EXP5800 0x00000001 MSFT 0x01000000) @ 0x7fff00b0 > ACPI: OEMR (v001 NEC EXP5800 0x00000001 MSFT 0x01000000) @ 0x7fff0140 > ACPI: DSDT (v001 NEC EXP5800 0x00000100 INTL 0x20020918) @ 0x00000000 > ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) > Processor #0 15:2 APIC version 20 > ACPI: LAPIC (acpi_id[0x01] lapic_id[0x06] enabled) > Processor #6 15:2 APIC version 20 > ACPI: LAPIC (acpi_id[0x02] lapic_id[0x00] disabled) > ACPI: LAPIC (acpi_id[0x03] lapic_id[0x00] disabled) > ACPI: LAPIC_NMI (acpi_id[0x00] high level lint[0x1]) > ACPI: LAPIC_NMI (acpi_id[0x01] high level lint[0x1]) > ACPI: IOAPIC (id[0x08] address[0xfec00000] global_irq_base[0x0]) > IOAPIC[0]: Assigned apic_id 8 > IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23 > ACPI: IOAPIC (id[0x09] address[0xfec81000] global_irq_base[0x18]) > IOAPIC[1]: Assigned apic_id 9 > IOAPIC[1]: apic_id 9, version 32, address 0xfec81000, GSI 24-47 > ACPI: IOAPIC (id[0x0a] address[0xfec81400] global_irq_base[0x30]) > IOAPIC[2]: Assigned apic_id 10 > IOAPIC[2]: apic_id 10, version 32, address 0xfec81400, GSI 48-71 > ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) > Enabling APIC mode: Flat. Using 3 I/O APICs > Using ACPI (MADT) for SMP configuration information > Built 1 zonelists > Kernel command line: root=/dev/sdb3 console=ttyS0 > Initializing CPU#0 > PID hash table entries: 4096 (order 12: 32768 bytes) > CKRM Initialization > ...... Initializing ClassType<taskclass> ........ > ...... Initializing ClassType<socket_class> ........ > CKRM Initialization done > Detected 2791.374 MHz processor. > Using tsc for high-res timesource > Console: colour VGA+ 80x25 > Memory: 2074312k/2097088k available (2475k kernel code, 21644k reserved, > 1003k data, 276k > init, 1179584k highmem) > Checking if this processor honours the WP bit even in supervisor mode... > Ok. > Calibrating delay loop... 5505.02 BogoMIPS > Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes) > Inode-cache hash table entries: 131072 (order: 7, 524288 bytes) > Mount-cache hash table entries: 512 (order: 0, 4096 bytes) > CPU: Trace cache: 12K uops, L1 D cache: 8K > CPU: L2 cache: 512K > CPU: Physical Processor ID: 0 > Intel machine check architecture supported. > Intel machine check reporting enabled on CPU#0. > CPU0: Intel P4/Xeon Extended MCE MSRs (12) available > Enabling fast FPU save and restore... done. > Enabling unmasked SIMD FPU exception support... done. > Checking 'hlt' instruction... OK. > CPU0: Intel(R) Xeon(TM) CPU 2.80GHz stepping 09 > per-CPU timeslice cutoff: 1462.54 usecs. > task migration cache decay timeout: 2 msecs. > enabled ExtINT on CPU#0 > ESR value before enabling vector: 00000000 > ESR value after enabling vector: 00000000 > Booting processor 1/6 eip 3000 > Initializing CPU#1 > masked ExtINT on CPU#1 > ESR value before enabling vector: 00000000 > ESR value after enabling vector: 00000000 > Calibrating delay loop... 5570.56 BogoMIPS > CPU: Trace cache: 12K uops, L1 D cache: 8K > CPU: L2 cache: 512K > CPU: Physical Processor ID: 3 > Intel machine check architecture supported. > Intel machine check reporting enabled on CPU#1. > CPU1: Intel P4/Xeon Extended MCE MSRs (12) available > CPU1: Intel(R) Xeon(TM) CPU 2.80GHz stepping 09 > Total of 2 processors activated (11075.58 BogoMIPS). > WARNING: 1 siblings found for CPU0, should be 2 > WARNING: 1 siblings found for CPU1, should be 2 > ENABLING IO-APIC IRQs > ..TIMER: vector=0x31 pin1=2 pin2=-1 > Using local APIC timer interrupts. > calibrating APIC timer ... > ..... CPU clock speed is 2790.0601 MHz. > ..... host bus clock speed is 132.0885 MHz. > checking TSC synchronization across 2 CPUs: passed. > Brought up 2 CPUs > NET: Registered protocol family 16 > EISA bus registered > PCI: PCI BIOS revision 2.10 entry at 0xfdb55, last bus=4 > PCI: Using configuration type 1 > mtrr: v2.0 (20020519) > ACPI: Subsystem revision 20040326 > Unable to handle kernel NULL pointer dereference > |