本文根据debian开机信息来查看内核源代码。

系统使用《debian下配置dynamic printk以及重新编译内核》中内核源码来查看执行流程。

使用dmesg命令,得到下面的开机信息:

[    0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.2. (host@debian) (gcc version 4.7. (Debian 4.7.-) ) # SMP Fri Jun :: CST
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000f0000 - (reserved)
[ 0.000000] BIOS-e820: - 000000007f590000 (usable)
[ 0.000000] BIOS-e820: 000000007f590000 - 000000007f5e3000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007f5e3000 - 000000007f5f0000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007f5f0000 - 000000007f600000 (reserved)
[ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - (reserved)
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.5 present.
[ 0.000000] DMI: OEM OEM/SY-I5G31-L V2., BIOS 6.00 PG //
[ 0.000000] e820 update range: - (usable) ==> (reserved)
[ 0.000000] e820 remove range: 00000000000a0000 - (usable)
[ 0.000000] last_pfn = 0x7f590 max_arch_pfn = 0x1000000
[ 0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] -9FFFF write-back
[ 0.000000] A0000-BFFFF uncachable
[ 0.000000] C0000-CAFFF write-protect
[ 0.000000] CB000-EFFFF uncachable
[ 0.000000] F0000-FFFFF write-through
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] base mask F80000000 write-back
[ 0.000000] base 07F700000 mask FFFF00000 uncachable
[ 0.000000] base 07F800000 mask FFF800000 uncachable
[ 0.000000] base 07F600000 mask FFFF00000 uncachable
[ 0.000000] disabled
[ 0.000000] disabled
[ 0.000000] disabled
[ 0.000000] disabled
[ 0.000000] x86 PAT enabled: cpu , old 0x7040600070406, new 0x7010600070106
[ 0.000000] found SMP MP-table at [c00f3b50] f3b50
[ 0.000000] initial memory mapped : - 01a00000
[ 0.000000] Base memory trampoline at [c009b000] 9b000 size
[ 0.000000] init_memory_mapping: -00000000379fe000
[ 0.000000] - page 4k
[ 0.000000] - page 2M
[ 0.000000] - 00379fe000 page 4k
[ 0.000000] kernel direct mapping tables up to 379fe000 @ 19f9000-1a00000
[ 0.000000] RAMDISK: 29bdc000 - 30de6000
[ 0.000000] ACPI: RSDP 000f7d20 (v00 IntelR)
[ 0.000000] ACPI: RSDT 7f5e3000 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: FACP 7f5e3080 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: DSDT 7f5e3100 04A18 (v01 INTELR AWRDACPI MSFT )
[ 0.000000] ACPI: FACS 7f590000
[ 0.000000] ACPI: HPET 7f5e7c00 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: MCFG 7f5e7c40 0003C (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: APIC 7f5e7b40 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: SSDT 7f5e83a0 009FF (v01 PmRef CpuPm INTL )
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] 1147MB HIGHMEM available.
[ 0.000000] 889MB LOWMEM available.
[ 0.000000] mapped low ram: - 379fe000
[ 0.000000] low ram: - 379fe000
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000010 -> 0x00001000
[ 0.000000] Normal 0x00001000 -> 0x000379fe
[ 0.000000] HighMem 0x000379fe -> 0x0007f590
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[] active PFN ranges
[ 0.000000] : 0x00000010 -> 0x0000009f
[ 0.000000] : 0x00000100 -> 0x0007f590
[ 0.000000] On node totalpages:
[ 0.000000] free_area_init_node: node , pgdat c141e800, node_mem_map f6a0d200
[ 0.000000] DMA zone: pages used for memmap
[ 0.000000] DMA zone: pages reserved
[ 0.000000] DMA zone: pages, LIFO batch:
[ 0.000000] Normal zone: pages used for memmap
[ 0.000000] Normal zone: pages, LIFO batch:
[ 0.000000] HighMem zone: pages used for memmap
[ 0.000000] HighMem zone: pages, LIFO batch:
[ 0.000000] Using APIC driver default
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[])
[ 0.000000] IOAPIC[]: apic_id , version , address 0xfec00000, GSI -
[ 0.000000] ACPI: INT_SRC_OVR (bus bus_irq global_irq dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus bus_irq global_irq high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[ 0.000000] SMP: Allowing CPUs, hotplug CPUs
[ 0.000000] nr_irqs_gsi:
[ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000
[ 0.000000] PM: Registered nosave memory: 00000000000f0000 -
[ 0.000000] Allocating PCI resources starting at 7f600000 (gap: 7f600000:60a00000)
[ 0.000000] Booting paravirtualized kernel on bare hardware
[ 0.000000] setup_percpu: NR_CPUS: nr_cpumask_bits: nr_cpu_ids: nr_node_ids:
[ 0.000000] PERCPU: Embedded pages/cpu @f69c9000 s33280 r0 d24064 u57344
[ 0.000000] pcpu-alloc: s33280 r0 d24064 u57344 alloc=*
[ 0.000000] pcpu-alloc: [] [] [] []
[ 0.000000] Built zonelists in Zone order, mobility grouping on. Total pages:
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.2. root=UUID=c6cb3b0a--46d4-9ac7-6835d0a12e47 ro initrd=/install/initrd.gz quiet
[ 0.000000] PID hash table entries: (order: , bytes)
[ 0.000000] Dentry cache hash table entries: (order: , bytes)
[ 0.000000] Inode-cache hash table entries: (order: , bytes)
[ 0.000000] Initializing CPU#
[ 0.000000] xsave/xrstor: enabled xstate_bv 0x3, cntxt size 0x240
[ 0.000000] Initializing HighMem for node (000379fe:0007f590)
[ 0.000000] Memory: 1946540k/2086464k available (2881k kernel code, 139472k reserved, 1380k data, 428k init, 1175112k highmem)
[ 0.000000] virtual kernel memory layout:
[ 0.000000] fixmap : 0xffd36000 - 0xfffff000 ( kB)
[ 0.000000] pkmap : 0xffa00000 - 0xffc00000 ( kB)
[ 0.000000] vmalloc : 0xf81fe000 - 0xff9fe000 ( MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf79fe000 ( MB)
[ 0.000000] .init : 0xc142a000 - 0xc1495000 ( kB)
[ 0.000000] .data : 0xc12d07ac - 0xc1429a40 ( kB)
[ 0.000000] .text : 0xc1000000 - 0xc12d07ac ( kB)
[ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] NR_IRQS: nr_irqs:
[ 0.000000] CPU irqstacks, hard=f6406000 soft=f6408000
[ 0.000000] Console: colour VGA+ 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] hpet clockevent registered
[ 0.000000] Fast TSC calibration using PIT
[ 0.000000] Detected 2510.571 MHz processor.
[ 0.004002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5021.14 BogoMIPS (lpj=)
[ 0.004006] pid_max: default: minimum:
[ 0.004038] Security Framework initialized
[ 0.004054] AppArmor: AppArmor disabled by boot time parameter
[ 0.004067] Mount-cache hash table entries:
[ 0.004187] Initializing cgroup subsys cpuacct
[ 0.004192] Initializing cgroup subsys memory
[ 0.004200] Initializing cgroup subsys devices
[ 0.004202] Initializing cgroup subsys freezer
[ 0.004204] Initializing cgroup subsys net_cls
[ 0.004205] Initializing cgroup subsys blkio
[ 0.004211] Initializing cgroup subsys perf_event
[ 0.004239] CPU: Physical Processor ID:
[ 0.004240] CPU: Processor Core ID:
[ 0.004243] mce: CPU supports MCE banks
[ 0.004250] CPU0: Thermal monitoring enabled (TM2)
[ 0.004253] using mwait in idle threads.
[ 0.004638] ACPI: Core revision
[ 0.009086] Enabling APIC mode: Flat. Using I/O APICs
[ 0.009444] ..TIMER: vector=0x30 apic1= pin1= apic2=- pin2=-
[ 0.049139] CPU0: Intel Pentium(R) Dual-Core CPU E5200 @ .50GHz stepping 0a
[ 0.052002] Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
[ 0.052002] ... version:
[ 0.052002] ... bit width:
[ 0.052002] ... generic registers:
[ 0.052002] ... value mask: 000000ffffffffff
[ 0.052002] ... max period: 000000007fffffff
[ 0.052002] ... fixed-purpose events:
[ 0.052002] ... event mask:
[ 0.052002] NMI watchdog enabled, takes one hw-pmu counter.
[ 0.052002] CPU irqstacks, hard=f64d4000 soft=f64d6000
[ 0.052002] Booting Node , Processors #
[ 0.052002] smpboot cpu : start_ip = 9b000
[ 0.008000] Initializing CPU#
[ 0.140036] NMI watchdog enabled, takes one hw-pmu counter.
[ 0.140070] Brought up CPUs
[ 0.140072] Total of processors activated (10041.88 BogoMIPS).
[ 0.141484] devtmpfs: initialized
[ 0.141484] PM: Registering ACPI NVS region at 7f590000 ( bytes)
[ 0.141484] print_constraints: dummy:
[ 0.141484] NET: Registered protocol family
[ 0.141484] ACPI: bus type pci registered
[ 0.141484] PCI: MMCONFIG for domain [bus -ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[ 0.141484] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 0.141484] PCI: Using MMCONFIG for extended config space
[ 0.141484] PCI: Using configuration type for base access
[ 0.141484] bio: create slab <bio-> at
[ 0.141484] ACPI: Added _OSI(Module Device)
[ 0.141484] ACPI: Added _OSI(Processor Device)
[ 0.141484] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.141484] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.141484] ACPI: EC: Look up EC in DSDT
[ 0.147393] ACPI: SSDT 7f5e7cc0 0030F (v01 PmRef Cpu0Ist INTL )
[ 0.147566] ACPI: Dynamic OEM Table Load:
[ 0.147569] ACPI: SSDT (null) 0030F (v01 PmRef Cpu0Ist INTL )
[ 0.148012] ACPI: SSDT 7f5e81e0 001B3 (v01 PmRef Cpu1Ist INTL )
[ 0.148176] ACPI: Dynamic OEM Table Load:
[ 0.148178] ACPI: SSDT (null) 001B3 (v01 PmRef Cpu1Ist INTL )
[ 0.148366] ACPI: Interpreter enabled
[ 0.148372] ACPI: (supports S0 S1 S4 S5)
[ 0.148389] ACPI: Using IOAPIC for interrupt routing
[ 0.152327] ACPI: No dock devices found.
[ 0.152329] HEST: Table not found.
[ 0.152333] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.152382] ACPI: PCI Root Bridge [PCI0] (domain [bus -ff])
[ 0.152491] pci_root PNP0A08:: host bridge window [io 0x0000-0x0cf7]
[ 0.152494] pci_root PNP0A08:: host bridge window [io 0x0d00-0xffff]
[ 0.152496] pci_root PNP0A08:: host bridge window [mem 0x000a0000-0x000bffff]
[ 0.152498] pci_root PNP0A08:: host bridge window [mem 0x000c0000-0x000dffff]
[ 0.152501] pci_root PNP0A08:: host bridge window [mem 0x7f600000-0xfebfffff]
[ 0.152514] pci ::00.0: [:29c0] type class 0x000600
[ 0.152556] pci ::02.0: [:29c2] type class 0x000300
[ 0.152565] pci ::02.0: reg : [mem 0xfdf00000-0xfdf7ffff]
[ 0.152571] pci ::02.0: reg : [io 0xff00-0xff07]
[ 0.152576] pci ::02.0: reg : [mem 0xd0000000-0xdfffffff pref]
[ 0.152582] pci ::02.0: reg 1c: [mem 0xfd600000-0xfd6fffff]
[ 0.152645] pci ::1b.: [:27d8] type class 0x000403
[ 0.152660] pci ::1b.: reg : [mem 0xfdff8000-0xfdffbfff 64bit]
[ 0.152723] pci ::1b.: PME# supported from D0 D3hot D3cold
[ 0.152744] pci ::1c.: [:27d0] type class 0x000604
[ 0.152808] pci ::1c.: PME# supported from D0 D3hot D3cold
[ 0.152830] pci ::1c.: [:27d2] type class 0x000604
[ 0.152894] pci ::1c.: PME# supported from D0 D3hot D3cold
[ 0.152916] pci ::1c.: [:27d4] type class 0x000604
[ 0.152979] pci ::1c.: PME# supported from D0 D3hot D3cold
[ 0.153001] pci ::1c.: [:27d6] type class 0x000604
[ 0.153065] pci ::1c.: PME# supported from D0 D3hot D3cold
[ 0.153087] pci ::1d.: [:27c8] type class 0x000c03
[ 0.153124] pci ::1d.: reg : [io 0xfe00-0xfe1f]
[ 0.153154] pci ::1d.: [:27c9] type class 0x000c03
[ 0.153192] pci ::1d.: reg : [io 0xfd00-0xfd1f]
[ 0.153221] pci ::1d.: [:27ca] type class 0x000c03
[ 0.153258] pci ::1d.: reg : [io 0xfc00-0xfc1f]
[ 0.153287] pci ::1d.: [:27cb] type class 0x000c03
[ 0.153324] pci ::1d.: reg : [io 0xfb00-0xfb1f]
[ 0.153362] pci ::1d.: [:27cc] type class 0x000c03
[ 0.153379] pci ::1d.: reg : [mem 0xfdfff000-0xfdfff3ff]
[ 0.153455] pci ::1d.: PME# supported from D0 D3hot D3cold
[ 0.153474] pci ::1e.: [:244e] type class 0x000604
[ 0.153532] pci ::1f.: [:27b8] type class 0x000601
[ 0.153609] pci ::1f.: ICH7 LPC Generic IO decode PIO at (mask 003f)
[ 0.153652] pci ::1f.: [:27df] type class 0x000101
[ 0.153664] pci ::1f.: reg : [io 0x0000-0x0007]
[ 0.153673] pci ::1f.: reg : [io 0x0000-0x0003]
[ 0.153681] pci ::1f.: reg : [io 0x0000-0x0007]
[ 0.153690] pci ::1f.: reg 1c: [io 0x0000-0x0003]
[ 0.153698] pci ::1f.: reg : [io 0xfa00-0xfa0f]
[ 0.153731] pci ::1f.: [:27c0] type class 0x000101
[ 0.153744] pci ::1f.: reg : [io 0xf900-0xf907]
[ 0.153751] pci ::1f.: reg : [io 0xf800-0xf803]
[ 0.153759] pci ::1f.: reg : [io 0xf700-0xf707]
[ 0.153767] pci ::1f.: reg 1c: [io 0xf600-0xf603]
[ 0.153774] pci ::1f.: reg : [io 0xf500-0xf50f]
[ 0.153806] pci ::1f.: PME# supported from D3hot
[ 0.153820] pci ::1f.: [:27da] type class 0x000c05
[ 0.153868] pci ::1f.: reg : [io 0x0500-0x051f]
[ 0.153935] pci ::1c.: PCI bridge to [bus -]
[ 0.153939] pci ::1c.: bridge window [io 0xb000-0xbfff]
[ 0.153943] pci ::1c.: bridge window [mem 0xfde00000-0xfdefffff]
[ 0.153949] pci ::1c.: bridge window [mem 0xfdd00000-0xfddfffff 64bit pref]
[ 0.153985] pci ::1c.: PCI bridge to [bus -]
[ 0.153988] pci ::1c.: bridge window [io 0xa000-0xafff]
[ 0.153992] pci ::1c.: bridge window [mem 0xfdc00000-0xfdcfffff]
[ 0.153998] pci ::1c.: bridge window [mem 0xfdb00000-0xfdbfffff 64bit pref]
[ 0.154034] pci ::1c.: PCI bridge to [bus -]
[ 0.154037] pci ::1c.: bridge window [io 0xe000-0xefff]
[ 0.154041] pci ::1c.: bridge window [mem 0xfda00000-0xfdafffff]
[ 0.154047] pci ::1c.: bridge window [mem 0xfd900000-0xfd9fffff 64bit pref]
[ 0.154099] pci ::00.0: [10ec:] type class 0x000200
[ 0.154115] pci ::00.0: reg : [io 0xde00-0xdeff]
[ 0.154143] pci ::00.0: reg : [mem 0xfd7ff000-0xfd7fffff 64bit pref]
[ 0.154160] pci ::00.0: reg : [mem 0xfd7e0000-0xfd7effff 64bit pref]
[ 0.154172] pci ::00.0: reg : [mem 0x00000000-0x0001ffff pref]
[ 0.154233] pci ::00.0: supports D1 D2
[ 0.154235] pci ::00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.160032] pci ::1c.: PCI bridge to [bus -]
[ 0.160039] pci ::1c.: bridge window [io 0xd000-0xdfff]
[ 0.160046] pci ::1c.: bridge window [mem 0xfd800000-0xfd8fffff]
[ 0.160056] pci ::1c.: bridge window [mem 0xfd700000-0xfd7fffff 64bit pref]
[ 0.160134] pci ::1e.: PCI bridge to [bus -] (subtractive decode)
[ 0.160141] pci ::1e.: bridge window [io 0xc000-0xcfff]
[ 0.160148] pci ::1e.: bridge window [mem 0xfd500000-0xfd5fffff]
[ 0.160157] pci ::1e.: bridge window [mem 0xfd400000-0xfd4fffff 64bit pref]
[ 0.160162] pci ::1e.: bridge window [io 0x0000-0x0cf7] (subtractive decode)
[ 0.160167] pci ::1e.: bridge window [io 0x0d00-0xffff] (subtractive decode)
[ 0.160173] pci ::1e.: bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[ 0.160178] pci ::1e.: bridge window [mem 0x000c0000-0x000dffff] (subtractive decode)
[ 0.160183] pci ::1e.: bridge window [mem 0x7f600000-0xfebfffff] (subtractive decode)
[ 0.160216] pci_bus :: on NUMA node
[ 0.160219] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 0.160338] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT]
[ 0.160373] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX1._PRT]
[ 0.160406] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX2._PRT]
[ 0.160438] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX3._PRT]
[ 0.160475] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
[ 0.160616] pci0000:: Requesting ACPI _OSC control (0x1d)
[ 0.160619] pci0000:: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[ 0.160621] ACPI _OSC control for PCIe not granted, disabling ASPM
[ 0.167979] ACPI: PCI Interrupt Link [LNKA] (IRQs * )
[ 0.168037] ACPI: PCI Interrupt Link [LNKB] (IRQs ) *, disabled.
[ 0.168081] ACPI: PCI Interrupt Link [LNKC] (IRQs * )
[ 0.168124] ACPI: PCI Interrupt Link [LNKD] (IRQs *)
[ 0.168167] ACPI: PCI Interrupt Link [LNKE] (IRQs ) *, disabled.
[ 0.168210] ACPI: PCI Interrupt Link [LNKF] (IRQs ) *, disabled.
[ 0.168253] ACPI: PCI Interrupt Link [LNK0] (IRQs ) *, disabled.
[ 0.168297] ACPI: PCI Interrupt Link [LNK1] (IRQs * )
[ 0.168380] vgaarb: device added: PCI:::02.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.168380] vgaarb: loaded
[ 0.168380] vgaarb: bridge control possible ::02.0
[ 0.168380] PCI: Using ACPI for IRQ routing
[ 0.174067] PCI: pci_cache_line_size set to bytes
[ 0.174129] reserve RAM buffer: 000000000009f800 - 000000000009ffff
[ 0.174132] reserve RAM buffer: 000000007f590000 - 000000007fffffff
[ 0.174232] HPET: timers in total, timers will be used for per-cpu timer
[ 0.174237] hpet0: at MMIO 0xfed00000, IRQs , ,
[ 0.174241] hpet0: comparators, -bit 14.318180 MHz counter
[ 0.180130] Switching to clocksource hpet
[ 0.181748] pnp: PnP ACPI init
[ 0.181760] ACPI: bus type pnp registered
[ 0.181827] pnp :: [bus -ff]
[ 0.181830] pnp :: [io 0x0cf8-0x0cff]
[ 0.181832] pnp :: [io 0x0000-0x0cf7 window]
[ 0.181835] pnp :: [io 0x0d00-0xffff window]
[ 0.181837] pnp :: [mem 0x000a0000-0x000bffff window]
[ 0.181839] pnp :: [mem 0x000c0000-0x000dffff window]
[ 0.181841] pnp :: [mem 0x7f600000-0xfebfffff window]
[ 0.181885] pnp :: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[ 0.181940] pnp :: [io 0x0010-0x001f]
[ 0.181942] pnp :: [io 0x0022-0x003f]
[ 0.181944] pnp :: [io 0x0044-0x005f]
[ 0.181945] pnp :: [io 0x0062-0x0063]
[ 0.181947] pnp :: [io 0x0065-0x006f]
[ 0.181949] pnp :: [io 0x0074-0x007f]
[ 0.181951] pnp :: [io 0x0091-0x0093]
[ 0.181953] pnp :: [io 0x00a2-0x00bf]
[ 0.181954] pnp :: [io 0x00e0-0x00ef]
[ 0.181956] pnp :: [io 0x04d0-0x04d1]
[ 0.181958] pnp :: [io 0x0800-0x087f]
[ 0.181960] pnp :: [io 0x0880-0x088f]
[ 0.182013] system :: [io 0x04d0-0x04d1] has been reserved
[ 0.182016] system :: [io 0x0800-0x087f] has been reserved
[ 0.182018] system :: [io 0x0880-0x088f] has been reserved
[ 0.182021] system :: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.182032] pnp :: [dma ]
[ 0.182034] pnp :: [io 0x0000-0x000f]
[ 0.182036] pnp :: [io 0x0080-0x0090]
[ 0.182037] pnp :: [io 0x0094-0x009f]
[ 0.182039] pnp :: [io 0x00c0-0x00df]
[ 0.182067] pnp :: Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.182110] pnp :: [irq disabled]
[ 0.182121] pnp :: [irq ]
[ 0.182123] pnp :: [mem 0xfed00000-0xfed003ff]
[ 0.182152] pnp :: Plug and Play ACPI device, IDs PNP0103 (active)
[ 0.182177] pnp :: [io 0x0070-0x0073]
[ 0.182205] pnp :: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.182214] pnp :: [io 0x0061]
[ 0.182240] pnp :: Plug and Play ACPI device, IDs PNP0800 (active)
[ 0.182249] pnp :: [io 0x00f0-0x00ff]
[ 0.182254] pnp :: [irq ]
[ 0.182283] pnp :: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.182409] pnp :: [io 0x03f0-0x03f5]
[ 0.182412] pnp :: [io 0x03f7]
[ 0.182416] pnp :: [irq ]
[ 0.182418] pnp :: [dma ]
[ 0.182457] pnp :: Plug and Play ACPI device, IDs PNP0700 (active)
[ 0.182627] pnp :: [io 0x03f8-0x03ff]
[ 0.182632] pnp :: [irq ]
[ 0.182689] pnp :: Plug and Play ACPI device, IDs PNP0501 (active)
[ 0.182872] pnp :: [io 0x02f8-0x02ff]
[ 0.182876] pnp :: [irq ]
[ 0.182933] pnp :: Plug and Play ACPI device, IDs PNP0501 (active)
[ 0.183180] pnp :0a: [io 0x0378-0x037f]
[ 0.183185] pnp :0a: [irq ]
[ 0.183233] pnp :0a: Plug and Play ACPI device, IDs PNP0400 (active)
[ 0.183348] pnp :0b: [io 0x0400-0x04bf]
[ 0.183394] system :0b: [io 0x0400-0x04bf] has been reserved
[ 0.183397] system :0b: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.183415] pnp :0c: [mem 0xffb80000-0xffbfffff]
[ 0.183445] pnp :0c: Plug and Play ACPI device, IDs INT0800 (active)
[ 0.183612] pnp :0d: [mem 0xe0000000-0xefffffff]
[ 0.183666] system :0d: [mem 0xe0000000-0xefffffff] has been reserved
[ 0.183669] system :0d: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.183732] pnp :0e: [mem 0x000f0000-0x000fffff]
[ 0.183734] pnp :0e: [mem 0x7f600000-0x7f6fffff]
[ 0.183736] pnp :0e: [mem 0xfed00000-0xfed000ff]
[ 0.183739] pnp :0e: [mem 0x7f590000-0x7f5fffff]
[ 0.183740] pnp :0e: [mem 0x00000000-0x0009ffff]
[ 0.183742] pnp :0e: [mem 0x00100000-0x7f58ffff]
[ 0.183744] pnp :0e: [mem 0xfec00000-0xfec00fff]
[ 0.183746] pnp :0e: [mem 0xfed13000-0xfed1dfff]
[ 0.183748] pnp :0e: [mem 0xfed20000-0xfed8ffff]
[ 0.183750] pnp :0e: [mem 0xfee00000-0xfee00fff]
[ 0.183752] pnp :0e: [mem 0xffb00000-0xffb7ffff]
[ 0.183754] pnp :0e: [mem 0xfff00000-0xffffffff]
[ 0.183756] pnp :0e: [mem 0x000e0000-0x000effff]
[ 0.183817] system :0e: [mem 0x000f0000-0x000fffff] could not be reserved
[ 0.183820] system :0e: [mem 0x7f600000-0x7f6fffff] has been reserved
[ 0.183823] system :0e: [mem 0xfed00000-0xfed000ff] has been reserved
[ 0.183825] system :0e: [mem 0x7f590000-0x7f5fffff] could not be reserved
[ 0.183828] system :0e: [mem 0x00000000-0x0009ffff] could not be reserved
[ 0.183831] system :0e: [mem 0x00100000-0x7f58ffff] could not be reserved
[ 0.183834] system :0e: [mem 0xfec00000-0xfec00fff] could not be reserved
[ 0.183836] system :0e: [mem 0xfed13000-0xfed1dfff] has been reserved
[ 0.183839] system :0e: [mem 0xfed20000-0xfed8ffff] has been reserved
[ 0.183842] system :0e: [mem 0xfee00000-0xfee00fff] has been reserved
[ 0.183844] system :0e: [mem 0xffb00000-0xffb7ffff] has been reserved
[ 0.183847] system :0e: [mem 0xfff00000-0xffffffff] has been reserved
[ 0.183847] system :0e: [mem 0x000e0000-0x000effff] has been reserved
[ 0.183847] system :0e: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.183847] pnp: PnP ACPI: found devices
[ 0.183848] ACPI: ACPI bus type pnp unregistered
[ 0.183851] PnPBIOS: Disabled by ACPI PNP
[ 0.220622] PCI: max bus depth: pci_try_num:
[ 0.220656] pci ::1c.: PCI bridge to [bus -]
[ 0.220659] pci ::1c.: bridge window [io 0xb000-0xbfff]
[ 0.220664] pci ::1c.: bridge window [mem 0xfde00000-0xfdefffff]
[ 0.220668] pci ::1c.: bridge window [mem 0xfdd00000-0xfddfffff 64bit pref]
[ 0.220674] pci ::1c.: PCI bridge to [bus -]
[ 0.220677] pci ::1c.: bridge window [io 0xa000-0xafff]
[ 0.220682] pci ::1c.: bridge window [mem 0xfdc00000-0xfdcfffff]
[ 0.220686] pci ::1c.: bridge window [mem 0xfdb00000-0xfdbfffff 64bit pref]
[ 0.220691] pci ::1c.: PCI bridge to [bus -]
[ 0.220694] pci ::1c.: bridge window [io 0xe000-0xefff]
[ 0.220699] pci ::1c.: bridge window [mem 0xfda00000-0xfdafffff]
[ 0.220703] pci ::1c.: bridge window [mem 0xfd900000-0xfd9fffff 64bit pref]
[ 0.220711] pci ::00.0: BAR : assigned [mem 0xfd700000-0xfd71ffff pref]
[ 0.220713] pci ::1c.: PCI bridge to [bus -]
[ 0.220716] pci ::1c.: bridge window [io 0xd000-0xdfff]
[ 0.220721] pci ::1c.: bridge window [mem 0xfd800000-0xfd8fffff]
[ 0.220724] pci ::1c.: bridge window [mem 0xfd700000-0xfd7fffff 64bit pref]
[ 0.220730] pci ::1e.: PCI bridge to [bus -]
[ 0.220733] pci ::1e.: bridge window [io 0xc000-0xcfff]
[ 0.220738] pci ::1e.: bridge window [mem 0xfd500000-0xfd5fffff]
[ 0.220742] pci ::1e.: bridge window [mem 0xfd400000-0xfd4fffff 64bit pref]
[ 0.220761] pci ::1c.: setting latency timer to
[ 0.220773] pci ::1c.: setting latency timer to
[ 0.220784] pci ::1c.: setting latency timer to
[ 0.220794] pci ::1c.: setting latency timer to
[ 0.220801] pci ::1e.: setting latency timer to
[ 0.220804] pci_bus :: resource [io 0x0000-0x0cf7]
[ 0.220806] pci_bus :: resource [io 0x0d00-0xffff]
[ 0.220809] pci_bus :: resource [mem 0x000a0000-0x000bffff]
[ 0.220811] pci_bus :: resource [mem 0x000c0000-0x000dffff]
[ 0.220813] pci_bus :: resource [mem 0x7f600000-0xfebfffff]
[ 0.220815] pci_bus :: resource [io 0xb000-0xbfff]
[ 0.220818] pci_bus :: resource [mem 0xfde00000-0xfdefffff]
[ 0.220820] pci_bus :: resource [mem 0xfdd00000-0xfddfffff 64bit pref]
[ 0.220822] pci_bus :: resource [io 0xa000-0xafff]
[ 0.220824] pci_bus :: resource [mem 0xfdc00000-0xfdcfffff]
[ 0.220827] pci_bus :: resource [mem 0xfdb00000-0xfdbfffff 64bit pref]
[ 0.220829] pci_bus :: resource [io 0xe000-0xefff]
[ 0.220831] pci_bus :: resource [mem 0xfda00000-0xfdafffff]
[ 0.220833] pci_bus :: resource [mem 0xfd900000-0xfd9fffff 64bit pref]
[ 0.220835] pci_bus :: resource [io 0xd000-0xdfff]
[ 0.220837] pci_bus :: resource [mem 0xfd800000-0xfd8fffff]
[ 0.220840] pci_bus :: resource [mem 0xfd700000-0xfd7fffff 64bit pref]
[ 0.220842] pci_bus :: resource [io 0xc000-0xcfff]
[ 0.220844] pci_bus :: resource [mem 0xfd500000-0xfd5fffff]
[ 0.220847] pci_bus :: resource [mem 0xfd400000-0xfd4fffff 64bit pref]
[ 0.220849] pci_bus :: resource [io 0x0000-0x0cf7]
[ 0.220851] pci_bus :: resource [io 0x0d00-0xffff]
[ 0.220853] pci_bus :: resource [mem 0x000a0000-0x000bffff]
[ 0.220855] pci_bus :: resource [mem 0x000c0000-0x000dffff]
[ 0.220857] pci_bus :: resource [mem 0x7f600000-0xfebfffff]
[ 0.220902] NET: Registered protocol family
[ 0.220961] IP route cache hash table entries: (order: , bytes)
[ 0.221172] TCP established hash table entries: (order: , bytes)
[ 0.221641] TCP bind hash table entries: (order: , bytes)
[ 0.221873] TCP: Hash tables configured (established bind )
[ 0.221875] TCP reno registered
[ 0.221878] UDP hash table entries: (order: , bytes)
[ 0.221886] UDP-Lite hash table entries: (order: , bytes)
[ 0.221963] NET: Registered protocol family
[ 0.221980] pci ::02.0: Boot video device
[ 0.222136] PCI: CLS bytes, default
[ 0.222187] Unpacking initramfs...
[ 2.772396] Freeing initrd memory: 116776k freed
[ 2.837035] audit: initializing netlink socket (disabled)
[ 2.837049] type= audit(1403510217.832:): initialized
[ 2.853523] highmem bounce pool size: pages
[ 2.853528] HugeTLB registered MB page size, pre-allocated pages
[ 2.853968] VFS: Disk quotas dquot_6.5.2
[ 2.854000] Dquot-cache hash table entries: (order , bytes)
[ 2.854069] msgmni has been set to
[ 2.854228] alg: No test for stdrng (krng)
[ 2.854253] Block layer SCSI generic (bsg) driver version 0.4 loaded (major )
[ 2.854256] io scheduler noop registered
[ 2.854258] io scheduler deadline registered
[ 2.854269] io scheduler cfq registered (default)
[ 2.854355] pcieport ::1c.: setting latency timer to
[ 2.854395] pcieport ::1c.: irq for MSI/MSI-X
[ 2.854451] pcieport ::1c.: setting latency timer to
[ 2.854484] pcieport ::1c.: irq for MSI/MSI-X
[ 2.854541] pcieport ::1c.: setting latency timer to
[ 2.854573] pcieport ::1c.: irq for MSI/MSI-X
[ 2.854628] pcieport ::1c.: setting latency timer to
[ 2.854661] pcieport ::1c.: irq for MSI/MSI-X
[ 2.854741] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 2.854761] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 2.854763] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 2.855076] intel_idle: does not run on family model
[ 2.855100] ERST: Table is not found!
[ 2.855101] GHES: HEST is not enabled!
[ 2.855114] isapnp: Scanning for PnP cards...
[ 3.208006] isapnp: No Plug & Play device found
[ 3.208065] Serial: / driver, ports, IRQ sharing enabled
[ 3.228404] serial8250: ttyS0 at I/O 0x3f8 (irq = ) is a 16550A
[ 3.248775] serial8250: ttyS1 at I/O 0x2f8 (irq = ) is a 16550A
[ 3.272684] :: ttyS0 at I/O 0x3f8 (irq = ) is a 16550A
[ 3.293099] :: ttyS1 at I/O 0x2f8 (irq = ) is a 16550A
[ 3.293354] Linux agpgart interface v0.
[ 3.293461] agpgart-intel ::00.0: Intel G33 Chipset
[ 3.293522] agpgart-intel ::00.0: detected gtt size: 524288K total, 262144K mappable
[ 3.294055] agpgart-intel ::00.0: detected 8192K stolen memory
[ 3.294182] agpgart-intel ::00.0: AGP aperture is 256M @ 0xd0000000
[ 3.294348] i8042: PNP: No PS/ controller found. Probing ports directly.
[ 3.294708] serio: i8042 KBD port at 0x60,0x64 irq
[ 3.294714] serio: i8042 AUX port at 0x60,0x64 irq
[ 3.294847] mousedev: PS/ mouse device common for all mice
[ 3.294893] rtc_cmos :: RTC can wake from S4
[ 3.294995] rtc_cmos :: rtc core: registered rtc_cmos as rtc0
[ 3.295017] rtc0: alarms up to one month, bytes nvram, hpet irqs
[ 3.295029] cpuidle: using governor ladder
[ 3.295031] cpuidle: using governor menu
[ 3.295221] TCP cubic registered
[ 3.295256] NET: Registered protocol family
[ 3.295692] Mobile IPv6
[ 3.295695] NET: Registered protocol family
[ 3.295699] Registering the dns_resolver key type
[ 3.295718] Using IPI No-Shortcut mode
[ 3.295829] PM: Hibernation image not present or could not be loaded.
[ 3.295839] registered taskstats version
[ 3.296264] rtc_cmos :: setting system clock to -- :: UTC ()
[ 3.296298] Initializing network drop monitor service
[ 3.296382] Freeing unused kernel memory: 428k freed
[ 3.296529] Write protecting the kernel text: 2884k
[ 3.296559] Write protecting the kernel read-only data: 1104k
[ 3.296560] NX-protecting the kernel data: 3260k
[ 3.306217] udevd[]: starting version
[ 3.346446] r8169 Gigabit Ethernet driver .3LK-NAPI loaded
[ 3.346496] r8169 ::00.0: setting latency timer to
[ 3.346550] r8169 ::00.0: irq for MSI/MSI-X
[ 3.346995] r8169 ::00.0: eth0: RTL8102e at 0xf821a000, :e0:4c:::, XID 14c00000 IRQ
[ 3.372657] SCSI subsystem initialized
[ 3.384633] usbcore: registered new interface driver usbfs
[ 3.384665] usbcore: registered new interface driver hub
[ 3.384694] usbcore: registered new device driver usb
[ 3.385735] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3.385794] ehci_hcd ::1d.: setting latency timer to
[ 3.385798] ehci_hcd ::1d.: EHCI Host Controller
[ 3.385826] ehci_hcd ::1d.: new USB bus registered, assigned bus number
[ 3.385849] ehci_hcd ::1d.: using broken periodic workaround
[ 3.385859] ehci_hcd ::1d.: debug port
[ 3.389747] ehci_hcd ::1d.: cache line size of is not supported
[ 3.408370] ehci_hcd ::1d.: irq , io mem 0xfdfff000
[ 3.412309] libata version 3.00 loaded.
[ 3.412721] uhci_hcd: USB Universal Host Controller Interface driver
[ 3.423746] FDC is a post-
[ 3.424024] ehci_hcd ::1d.: USB 2.0 started, EHCI 1.00
[ 3.424090] usb usb1: New USB device found, idVendor=1d6b, idProduct=
[ 3.424095] usb usb1: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.424100] usb usb1: Product: EHCI Host Controller
[ 3.424104] usb usb1: Manufacturer: Linux 3.2. ehci_hcd
[ 3.424107] usb usb1: SerialNumber: ::1d.
[ 3.424288] hub -:1.0: USB hub found
[ 3.424294] hub -:1.0: ports detected
[ 3.425261] uhci_hcd ::1d.: setting latency timer to
[ 3.425267] uhci_hcd ::1d.: UHCI Host Controller
[ 3.425283] uhci_hcd ::1d.: new USB bus registered, assigned bus number
[ 3.425315] uhci_hcd ::1d.: irq , io base 0x0000fe00
[ 3.425351] usb usb2: New USB device found, idVendor=1d6b, idProduct=
[ 3.425353] usb usb2: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.425355] usb usb2: Product: UHCI Host Controller
[ 3.425357] usb usb2: Manufacturer: Linux 3.2. uhci_hcd
[ 3.425359] usb usb2: SerialNumber: ::1d.
[ 3.425647] hub -:1.0: USB hub found
[ 3.425653] hub -:1.0: ports detected
[ 3.425743] uhci_hcd ::1d.: setting latency timer to
[ 3.425746] uhci_hcd ::1d.: UHCI Host Controller
[ 3.425753] uhci_hcd ::1d.: new USB bus registered, assigned bus number
[ 3.425790] uhci_hcd ::1d.: irq , io base 0x0000fd00
[ 3.425824] usb usb3: New USB device found, idVendor=1d6b, idProduct=
[ 3.425826] usb usb3: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.425828] usb usb3: Product: UHCI Host Controller
[ 3.425830] usb usb3: Manufacturer: Linux 3.2. uhci_hcd
[ 3.425832] usb usb3: SerialNumber: ::1d.
[ 3.425938] hub -:1.0: USB hub found
[ 3.425942] hub -:1.0: ports detected
[ 3.426010] uhci_hcd ::1d.: setting latency timer to
[ 3.426014] uhci_hcd ::1d.: UHCI Host Controller
[ 3.426020] uhci_hcd ::1d.: new USB bus registered, assigned bus number
[ 3.426051] uhci_hcd ::1d.: irq , io base 0x0000fc00
[ 3.426082] usb usb4: New USB device found, idVendor=1d6b, idProduct=
[ 3.426085] usb usb4: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.426087] usb usb4: Product: UHCI Host Controller
[ 3.426089] usb usb4: Manufacturer: Linux 3.2. uhci_hcd
[ 3.426091] usb usb4: SerialNumber: ::1d.
[ 3.426198] hub -:1.0: USB hub found
[ 3.426202] hub -:1.0: ports detected
[ 3.426273] uhci_hcd ::1d.: setting latency timer to
[ 3.426276] uhci_hcd ::1d.: UHCI Host Controller
[ 3.426283] uhci_hcd ::1d.: new USB bus registered, assigned bus number
[ 3.426314] uhci_hcd ::1d.: irq , io base 0x0000fb00
[ 3.426344] usb usb5: New USB device found, idVendor=1d6b, idProduct=
[ 3.426347] usb usb5: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.426349] usb usb5: Product: UHCI Host Controller
[ 3.426351] usb usb5: Manufacturer: Linux 3.2. uhci_hcd
[ 3.426353] usb usb5: SerialNumber: ::1d.
[ 3.426454] hub -:1.0: USB hub found
[ 3.426457] hub -:1.0: ports detected
[ 3.426522] ata_piix ::1f.: version 2.13
[ 3.426578] ata_piix ::1f.: setting latency timer to
[ 3.427370] scsi0 : ata_piix
[ 3.427473] scsi1 : ata_piix
[ 3.427936] ata1: PATA max UDMA/ cmd 0x1f0 ctl 0x3f6 bmdma 0xfa00 irq
[ 3.427939] ata2: PATA max UDMA/ cmd 0x170 ctl 0x376 bmdma 0xfa08 irq
[ 3.427974] ata_piix ::1f.: MAP [ P0 P2 P1 P3 ]
[ 3.428046] ata_piix ::1f.: setting latency timer to
[ 3.428496] ata2: port disabled--ignoring
[ 3.428513] scsi2 : ata_piix
[ 3.428907] scsi3 : ata_piix
[ 3.429356] ata3: SATA max UDMA/ cmd 0xf900 ctl 0xf800 bmdma 0xf500 irq
[ 3.429359] ata4: SATA max UDMA/ cmd 0xf700 ctl 0xf600 bmdma 0xf508 irq
[ 3.600351] ata3.: ATA-: ST3250318AS, CC38, max UDMA/
[ 3.600358] ata3.: sectors, multi : LBA48 NCQ (depth /)
[ 3.616337] ata3.: configured for UDMA/
[ 3.736020] usb -: new high-speed USB device number using ehci_hcd
[ 3.760302] ata1.: ATAPI: ATAPI iHDP118 , GL05, max UDMA/
[ 3.776191] ata1.: configured for UDMA/
[ 3.778163] scsi :::: CD-ROM ATAPI iHDP118 GL05 PQ: ANSI:
[ 3.778453] scsi :::: Direct-Access ATA ST3250318AS CC38 PQ: ANSI:
[ 3.783064] sd :::: [sda] -byte logical blocks: ( GB/ GiB)
[ 3.783126] sd :::: [sda] Write Protect is off
[ 3.783128] sd :::: [sda] Mode Sense: 3a
[ 3.783148] sd :::: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3.785910] sr0: scsi3-mmc drive: 48x/48x cd/rw xa/form2 cdda tray
[ 3.785915] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 3.786106] sr :::: Attached scsi CD-ROM sr0
[ 3.836020] Refined TSC clocksource calibration: 2510.403 MHz.
[ 3.836028] Switching to clocksource tsc
[ 3.842587] sda: sda1 sda2 < sda5 sda6 sda7 sda8 > sda3
[ 3.843109] sd :::: [sda] Attached SCSI disk
[ 3.845469] sr :::: Attached scsi generic sg0 type
[ 3.845545] sd :::: Attached scsi generic sg1 type
[ 3.868682] usb -: New USB device found, idVendor=1a40, idProduct=
[ 3.868685] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ 3.868687] usb -: Product: USB 2.0 Hub
[ 3.868967] hub -:1.0: USB hub found
[ 3.869062] hub -:1.0: ports detected
[ 4.092020] usb -: new high-speed USB device number using ehci_hcd
[ 4.224322] usb -: New USB device found, idVendor=0b1e, idProduct=
[ 4.224328] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ 4.464020] usb -: new low-speed USB device number using uhci_hcd
[ 4.633397] PM: Starting manual resume from disk
[ 4.633400] PM: Hibernation image partition : present
[ 4.633401] PM: Looking for hibernation image.
[ 4.639360] usb -: New USB device found, idVendor=046d, idProduct=c05a
[ 4.639365] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ 4.639370] usb -: Product: USB Optical Mouse
[ 4.639373] usb -: Manufacturer: Logitech
[ 4.642104] PM: Image not found (code -)
[ 4.642108] PM: Hibernation image not present or could not be loaded.
[ 4.660932] input: Logitech USB Optical Mouse as /devices/pci0000:/::1d./usb2/-/-:1.0/input/input0
[ 4.661130] generic-usb :046D:C05A.: input,hidraw0: USB HID v1. Mouse [Logitech USB Optical Mouse] on usb-::1d.-/input0
[ 4.661410] usbcore: registered new interface driver usbhid
[ 4.661414] usbhid: USB HID core driver
[ 4.697910] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
[ 4.880034] usb -: new low-speed USB device number using uhci_hcd
[ 5.054840] usb -: New USB device found, idVendor=413c, idProduct=
[ 5.054846] usb -: New USB device strings: Mfr=, Product=, SerialNumber=
[ 5.054851] usb -: Product: Dell USB Keyboard
[ 5.054855] usb -: Manufacturer: Dell
[ 5.073163] input: Dell Dell USB Keyboard as /devices/pci0000:/::1d./usb3/-/-:1.0/input/input1
[ 5.073218] generic-usb :413C:2003.0002: input,hidraw1: USB HID v1. Keyboard [Dell Dell USB Keyboard] on usb-::1d.-/input0
[ 5.160076] usb -1.2: new full-speed USB device number using ehci_hcd
[ 5.286065] usb -1.2: New USB device found, idVendor=0a12, idProduct=
[ 5.286071] usb -1.2: New USB device strings: Mfr=, Product=, SerialNumber=
[ 5.286076] usb -1.2: Product: CSR8510 A10
[ 6.269206] udevd[]: starting version
[ 7.039765] input: Power Button as /devices/LNXSYSTM:/LNXSYBUS:/PNP0C0C:/input/input2
[ 7.039771] ACPI: Power Button [PWRB]
[ 7.039844] input: Power Button as /devices/LNXSYSTM:/LNXPWRBN:/input/input3
[ 7.039847] ACPI: Power Button [PWRF]
[ 7.324496] parport_pc :0a: reported by Plug and Play ACPI
[ 7.324543] parport0: PC-style at 0x378, irq [PCSPP,TRISTATE]
[ 7.404696] input: PC Speaker as /devices/platform/pcspkr/input/input4
[ 7.617971] intel_rng: FWH not detected
[ 7.634755] ACPI: Requesting acpi_cpufreq
[ 7.853073] iTCO_vendor_support: vendor-support=
[ 8.052264] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.
[ 8.052389] iTCO_wdt: Found a ICH7 or ICH7R TCO device (Version=, TCOBASE=0x0460)
[ 8.053003] iTCO_wdt: initialized. heartbeat= sec (nowayout=)
[ 8.076816] leds_ss4200: no LED devices found
[ 8.370595] [drm] Initialized drm 1.1.
[ 8.747593] i915 ::02.0: setting latency timer to
[ 8.760313] i915 ::02.0: irq for MSI/MSI-X
[ 8.760319] [drm] Supports vblank timestamp caching Rev (10.10.).
[ 8.760320] [drm] Driver supports precise vblank timestamp query.
[ 8.760356] vgaarb: device changed decodes: PCI:::02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 8.776641] [drm] initialized overlay support
[ 8.816602] fbcon: inteldrmfb (fb0) is primary device
[ 8.835633] Bluetooth: Core ver 2.16
[ 8.835655] NET: Registered protocol family
[ 8.835657] Bluetooth: HCI device and connection manager initialized
[ 8.835660] Bluetooth: HCI socket layer initialized
[ 8.835662] Bluetooth: L2CAP socket layer initialized
[ 8.835667] Bluetooth: SCO socket layer initialized
[ 8.865022] Console: switching to colour frame buffer device 170x48
[ 8.866983] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 8.867154] usbcore: registered new interface driver btusb
[ 8.870725] fb0: inteldrmfb frame buffer device
[ 8.870727] drm: registered panic notifier
[ 8.870768] [drm] Initialized i915 1.6. for ::02.0 on minor
[ 8.870925] snd_hda_intel ::1b.: irq for MSI/MSI-X
[ 8.870950] snd_hda_intel ::1b.: setting latency timer to
[ 8.935263] hda_codec: ALC883: BIOS auto-probing.
[ 10.846909] Adding 3903756k swap on /dev/sda8. Priority:- extents: across:3903756k
[ 10.869521] EXT4-fs (sda3): re-mounted. Opts: (null)
[ 11.071475] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro
[ 11.167181] loop: module loaded
[ 12.550865] RPC: Registered named UNIX socket transport module.
[ 12.550867] RPC: Registered udp transport module.
[ 12.550869] RPC: Registered tcp transport module.
[ 12.550871] RPC: Registered tcp NFSv4. backchannel transport module.
[ 12.643563] FS-Cache: Loaded
[ 12.805036] FS-Cache: Netfs 'nfs' registered for caching
[ 12.868680] Installing knfsd (copyright (C) okir@monad.swb.de).
[ 14.619193] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[ 14.626912] NFSD: starting -second grace period
[ 14.737908] input: ACPI Virtual Keyboard Device as /devices/virtual/input/input5
[ 16.545242] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 16.545247] Bluetooth: BNEP filters: protocol multicast
[ 16.726667] Bluetooth: RFCOMM TTY layer initialized
[ 16.726672] Bluetooth: RFCOMM socket layer initialized
[ 16.726674] Bluetooth: RFCOMM ver 1.11
[ 18.628542] lp0: using parport0 (interrupt-driven).
[ 18.655965] ppdev: user-space parallel port driver
[ 19.367106] r8169 ::00.0: eth0: link down
[ 19.367112] r8169 ::00.0: eth0: link down
[ 19.367264] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 21.042351] r8169 ::00.0: eth0: link up
[ 21.042587] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

start_kernel(init/main.c)是入口函数,先从这个函数开始看代码。

start_kernel调用cpugroup_early_init,然后cpugroup_early_init(kernel/cgroup.c)中对于每个subsys输出信息。

include/linux/cgroup_subsys.h中定义了SUBSYS(cpuset)和SUBSYS(cpu_cgroup)。
查看cpuset_subsys和cpu_cgroup的定义可以知道其名称分别是cpuset和cpu。
所以会输出下面信息:

[    0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu

然后在start_kernel中输出linux_banner的信息,linux_banner定义如下(init/version.c):

const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";

而几个字符串定义分别是:

#define UTS_RELEASE "3.2.57"
#define LINUX_COMPILE_BY "host"
#define LINUX_COMPILE_HOST "debian"
#define LINUX_COMPILER "gcc version 4.7.2 (Debian 4.7.2-5) "
#define UTS_VERSION "#1 SMP Fri Jun 20 10:02:51 CST 2014"

所以输出linux_banner得到下面输出:

[    0.000000] Linux version 3.2. (host@debian) (gcc version 4.7. (Debian 4.7.-) ) # SMP Fri Jun  :: CST 

在linux内核源代码下搜索:

 find . -name '*.[ch]' -exec grep -rnHi 'BIOS-provided' {} \;
./arch/x86/kernel/e820.c:: * The e820_saved is directly saved after the BIOS-provided memory map is
./arch/x86/kernel/e820.c:: printk(KERN_INFO "BIOS-provided physical RAM map:\n");

start_kernel函数中接下来执行setup_arch(command_line).

setup_arch(arch/x86/kernel/setup.c)执行setup_memory_map函数。在setup_memory_map中输出下面信息:

[    0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: - 000000000009f800 (usable)
[ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000f0000 - (reserved)
[ 0.000000] BIOS-e820: - 000000007f590000 (usable)
[ 0.000000] BIOS-e820: 000000007f590000 - 000000007f5e3000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007f5e3000 - 000000007f5f0000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007f5f0000 - 000000007f600000 (reserved)
[ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - (reserved)

setup_arch中调用x86_report_nx,  在该函数中输出下面信息:

[    0.000000] NX (Execute Disable) protection: active

setup_arch接下来调用dmi_scan_machine,dmi_scan_machine(drivers/firmware/dmi_scan.c)调用dmi_present.

dmi_present函数中输出下面信息:

[    0.000000] SMBIOS 2.5 present.

dmi_present还调用dmi_dump_ids函数,输出下面信息:

DMI: OEM OEM/SY-I5G31-L V2., BIOS 6.00 PG //

setup_arch函数继续调用trim_bios_range,trim_bios_range调用e820_update_range.e820_update_range调用__e820_update_range。

在__e820_update_range函数输出下面信息:

[    0.000000] e820 update range:  -  (usable) ==> (reserved)

trim_bios_range接下来调用e820_remove_range,在e820_remove_range中输出下面信息:

[    0.000000] e820 remove range: 00000000000a0000 -  (usable)

setup_arch中接着调用e820_end_of_ran_pfn.e820_end_of_ram_pfn调用e820_end_fn,在此函数中输出下面信息:

[    0.000000] last_pfn = 0x7f590 max_arch_pfn = 0x1000000

setup_arch中接着调用mtrr_bp_init,mtrr_bp_init中调用get_mtrr_state,get_mtrr_state中调用print_mtrr_state,print_mtrr_state中输出下面信息:

[    0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] -9FFFF write-back
[ 0.000000] A0000-BFFFF uncachable
[ 0.000000] C0000-CAFFF write-protect
[ 0.000000] CB000-EFFFF uncachable
[ 0.000000] F0000-FFFFF write-through
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] base mask F80000000 write-back
[ 0.000000] base 07F700000 mask FFFF00000 uncachable
[ 0.000000] base 07F800000 mask FFF800000 uncachable
[ 0.000000] base 07F600000 mask FFFF00000 uncachable
[ 0.000000] disabled
[ 0.000000] disabled
[ 0.000000] disabled
[ 0.000000] disabled

get_mtrr_state中接着调用pat_init,在pat_init函数输出下面信息:

[    0.000000] x86 PAT enabled: cpu , old 0x7040600070406, new 0x7010600070106

setup_arch中接下来执行find_smp_config,find_smp_config执行x86_init.mpparse.find_smp_config.

而x86_init.mmparse.find_smp_config=default_find_smp_config(arch/x86/kernel/x86_init.c),所以此时执行default_find_smp_config函数。

default_find_smp_config函数执行smp_scan_config,在smp_scan_config中输出下面信息:

[    0.000000] found SMP MP-table at [c00f3b50] f3b50

setup_arch中接着输出下面信息:

[    0.000000] initial memory mapped :  - 01a00000

setup_arch接着调用setup_trampolines函数,在此函数中输出下面信息:

[    0.000000] Base memory trampoline at [c009b000] 9b000 size 

setup_arch中接着调用init_memory_mapping,在此函数中输出下面信息:

[    0.000000] init_memory_mapping: -00000000379fe000
[ 0.000000] - page 4k
[ 0.000000] - page 2M
[ 0.000000] - 00379fe000 page 4k

在init_memory_mapping中接着调用find_early_table_space,在此函数中输出下面信息:

[    0.000000] kernel direct mapping tables up to 379fe000 @ 19f9000-1a00000

setup_arch中接着调用reserve_initrd,在此函数中输出下面信息:

[    0.000000] RAMDISK: 29bdc000 - 30de6000

setup_arch接着调用acpi_boot_table_init,acpi_boot_table_init调用acpi_table_init,acpi_table_init调用acpi_initialize_tables,

acpi_initialize_tables调用acpi_tb_parse_root_table,acpi_tb_parse_root_table调用acpi_tb_print_table_header,在此函数输出信息:

[    0.000000] ACPI: RSDP 000f7d20  (v00 IntelR)

acpi_boot_table_init中输出其它信息(有点复杂,不再详细分析):

[    0.000000] ACPI: RSDT 7f5e3000  (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: FACP 7f5e3080 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: DSDT 7f5e3100 04A18 (v01 INTELR AWRDACPI MSFT )
[ 0.000000] ACPI: FACS 7f590000
[ 0.000000] ACPI: HPET 7f5e7c00 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: MCFG 7f5e7c40 0003C (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: APIC 7f5e7b40 (v01 IntelR AWRDACPI 42302E31 AWRD )
[ 0.000000] ACPI: SSDT 7f5e83a0 009FF (v01 PmRef CpuPm INTL )

setup_arch接着调用early_acpi_boot_init,early_acpi_boot_init调用early_acpi_process_madt,early_acpi_process_madt调用acpi_table_parse。

acpi_table_parse(ACPI_SIG_MADT,acpi_parse_madt),从而会调用acpi_parse_madt,输出下面信息:

[    0.000000] ACPI: Local APIC address 0xfee00000

setup_arch中接着调用initmem_init,此函数中输出下面信息:

[    0.000000] 1147MB HIGHMEM available.
[ 0.000000] 889MB LOWMEM available.

initmem_init中还调用setup_bootmem_allocator函数,输出下面信息:

[    0.000000] 1147MB HIGHMEM available.
[ 0.000000] 889MB LOWMEM available.

setup_arch接着调用paging_init,paging_init中调用zone_sizes_init,zone_sizes_init调用free_area_init_nodes, 此函数中输出:

[    0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000010 -> 0x00001000
[ 0.000000] Normal 0x00001000 -> 0x000379fe
[ 0.000000] HighMem 0x000379fe -> 0x0007f590
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[] active PFN ranges
[ 0.000000] : 0x00000010 -> 0x0000009f
[ 0.000000] : 0x00000100 -> 0x0007f590

free_area_init_nodes中还会调用free_area_init_node,free_area_init_node调用calculate_node_totalpages,输出下面信息:

[    0.000000] On node  totalpages: 

free_area_init_node中调用free_area_init_core,此函数对DMA、HIGHMEM、LOWMEM分别输出信息:

[    0.000000] free_area_init_node: node 0, pgdat c141e800, node_mem_map f6a0d200
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 3951 pages, LIFO batch:0
[ 0.000000] Normal zone: 1748 pages used for memmap
[ 0.000000] Normal zone: 221994 pages, LIFO batch:31
[ 0.000000] HighMem zone: 2296 pages used for memmap
[ 0.000000] HighMem zone: 291482 pages, LIFO batch:

setup_arch中继续调用generic_apic_probe,在此函数中输出下面信息:

[    0.000000] Using APIC driver default

setup_arch中接着调用acpi_boot_init,acpi_boot_init调用acpi_parse_fadt,该函数输出信息:

[    0.000000] ACPI: PM-Timer IO Port: 0x408

acpi_boot_init中接着调用acpi_process_madt, acpi_process_madt调用acpi_parse_madt,输出下面信息:

[    0.000000] ACPI: Local APIC address 0xfee00000

acpi_process_madt中接着调用acpi_parse_madt_lapic_entries,acpi_parse_madt_lapic_entries对表中每一项调用acpi_parse_lapic,

acpi_parse_lapic调用acpi_table_print_madt_entry,多次调用该函数输出下面信息:

[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[])

acpic_process_madt接着调用acpi_parse_madt_ioapic_entries,acpi_parse_madt_ioapic_entries执行下面语句:

 count =acpi_table_parse_madt(ACPI_MADT_TYPE_IO_APIC, acpi_parse_ioapic,
MAX_IO_APICS);

acpi_parse_ioapic调用mp_register_ioapic函数,输出下面信息:

[    0.000000] IOAPIC[]: apic_id , version , address 0xfec00000, GSI -

acpi_parse_madt_ioapic_entries中执行下面代码:

count = acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr,
nr_irqs);

acpi_parse_int_src_ovr中执行acpi_table_print_madt_entry,输出下面信息:

[    0.000000] ACPI: INT_SRC_OVR (bus  bus_irq  global_irq  dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus bus_irq global_irq high level)

acpi_parse_madt_ioapic_entries接着调用mp_config_acpi_legacy_irqs,输出下面信息:

[    0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.

acpi_process_madt接着输出下面信息:

[    0.000000] Using ACPI (MADT) for SMP configuration information

acpi_boot_init中接着调用acpi_parse_hpet,输出下面信息:

[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000

setup_arch中接着调用prefill_possible_map,此函数中输出下面信息:

[    0.000000] SMP: Allowing  CPUs,  hotplug CPUs

setup_arch中接着调用ioapic_and_gsi_init, ioapic_and_gsi_init调用probe_nr_irqs_gsi,输出下面信息:

[    0.000000] nr_irqs_gsi: 

setup_arch中将诶这调用e820_mark_nosave_regions,e820_mark_nosave_region多次调用register_nosave_region,

register_nosave_region调用__register_nosave_region,输出下面信息:

[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000
[ 0.000000] PM: Registered nosave memory: 00000000000f0000 -

setup_arch中继续调用e820_setup_gap,该函数中输出信息:

[    0.000000] Allocating PCI resources starting at 7f600000 (gap: 7f600000:60a00000)

setup_arch中接着调用x86_init.oem.banner,即default_banner,输出下面信息:

[    0.000000] Booting paravirtualized kernel on bare hardware

回到start_kernel函数,start_kernel调用setup_per_cpu_areas,输出下面信息:

[    0.000000] setup_percpu: NR_CPUS: nr_cpumask_bits: nr_cpu_ids: nr_node_ids:

setup_per_cpu_areas调用pcpu_embed_first_chunk,输出下面信息:

[    0.000000] PERCPU: Embedded  pages/cpu @f69c9000 s33280 r0 d24064 u57344

setup_per_cpu_areas接着调用pcpu_setup_first_chunk,pcpu_setup_first_chunk调用pcpu_dump_alloc_info,输出下面信息:

[    0.000000] pcpu-alloc: s33280 r0 d24064 u57344 alloc=*
[ 0.000000] pcpu-alloc: [] [] [] []

start_kernel中接着调用build_all_zonelists,在该函数中输出下面信息:

[    0.000000] Built  zonelists in Zone order, mobility grouping on.  Total pages: 

start_kernel中输出下面信息:

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.2. root=UUID=c6cb3b0a--46d4-9ac7-6835d0a12e47 ro initrd=/install/initrd.gz quiet

start_kernel中接着调用pidhash_init,pidhash_init调用alloc_large_system_hash,此函数输出下面信息:

[    0.000000] PID hash table entries:  (order: ,  bytes)

start_kernel中接着调用vfs_caches_init_early,vfs_caches_init_early调用dcache_init_early,输出下面信息:

[    0.000000] Dentry cache hash table entries:  (order: ,  bytes)

vfs_caches_init_early还调用inode_init_early,输出下面信息:

[    0.000000] Inode-cache hash table entries:  (order: ,  bytes)

start_kernel接着执行trap_init,trap_init调用cpu_init,cpu_init中输出下面信息:

[    0.000000] Initializing CPU#

cpu_init中调用xsave_init, xsave_init调用xstate_enable_boot_cpu,输出下面信息:

[    0.000000] xsave/xrstor: enabled xstate_bv 0x3, cntxt size 0x240

start_kernel中调用mm_init,mm_init中调用mem_init,mem_init调用set_highmem_pages_init,在该函数中输出下面信息:

[    0.000000] Initializing HighMem for node  (000379fe:0007f590)

mem_init接着输出下面信息:

[    0.000000] Memory: 1946540k/2086464k available (2881k kernel code, 139472k reserved, 1380k data, 428k init, 1175112k highmem)
[ 0.000000] virtual kernel memory layout:
[ 0.000000] fixmap : 0xffd36000 - 0xfffff000 (2852 kB)
[ 0.000000] pkmap : 0xffa00000 - 0xffc00000 (2048 kB)
[ 0.000000] vmalloc : 0xf81fe000 - 0xff9fe000 ( 120 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf79fe000 ( 889 MB)
[ 0.000000] .init : 0xc142a000 - 0xc1495000 ( 428 kB)
[ 0.000000] .data : 0xc12d07ac - 0xc1429a40 (1380 kB)
[ 0.000000] .text : 0xc1000000 - 0xc12d07ac (2881 kB)

mem_init中调用test_wp_init,输出下面信息:

[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.

start_kernel接着调用rcu_init,rcu_init调用rcu_bootup_announce,输出下面信息:

[    0.000000] Hierarchical RCU implementation.

rcu_bootup_announce调用rcu_bootup_announce_oddness,该函数中输出下面信息:

[    0.000000]     RCU dyntick-idle grace-period acceleration is enabled.

start_kernel接着调用early_irq_init,该函数中输出下面信息:

[    0.000000] NR_IRQS: nr_irqs: 

start_kernel调用init_IRQ,init_IRQ调用x86_init.irqs.intr_init,即native_init_IRQ,native_init_IRQ调用irq_ctx_init,在此函数中输出下面信息:

[    0.000000] CPU  irqstacks, hard=f6406000 soft=f6408000

start_kernel接着调用console_init,console_init执行下面语句:

     call = __con_initcall_start;
while (call < __con_initcall_end) {
(*call)();
call++;
}

这些语句将__con_initcall_start和__con_init_end之间的所有函数全部执行一遍。

文件drivers/tty/vt/vt.c中有下面一行代码:

console_initcall(con_init);

console_initcall的定义如下:

 #define console_initcall(fn) \
static initcall_t __initcall_##fn \
__used __section(.con_initcall.init) = fn

所以前一行console_initcall(con_init)可以展开成:

static initcall_t __initcall_con_init __used __section(.con_initcall.init) = con_init

即将con_init函数代码放入到目标文件的.con_initcall.init段中。

在arch/x86/kernel/vmlinux.lds中有一行内容:

__con_initcall_start = .; *(.con_initcall.init) __con_initcall_end = .; 

所以会执行con_init函数,在con_init中输出信息:

[    0.000000] Console: colour VGA+ 80x25

con_init还调用register_console函数,输出下面信息:

[    0.000000] console [tty0] enabled

start_kernel中接着调用late_time_init,之前已经调用了time_init函数将late_time_init赋值为x86_late_time_init,此处调用x86_late_time_init。

x86_late_time_init调用x86.timers_timer_init,即hpet_timer_init函数。hpet_time_init调用hpet_enable,

hpet_enable调用hpet_legacy_clockevent_register,在此函数中输出下面信息:

[    0.000000] hpet clockevent registered

x86_late_time_init接着调用tsc_init函数,tsc_init调用

x86_platform.calibrate_tsc函数,即native_calibrate_tsc函数,native_calibrate_tsc调用quick_pit_calibrate函数,输出下面信息:

[    0.000000] Fast TSC calibration using PIT

tsc_init中接着输出下面信息:

[    0.000000] Detected 2510.571 MHz processor.

start_kernel中接着调用calibrate_delay函数,calibrate_delay中输出下面信息:

[    0.004002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5021.14 BogoMIPS (lpj=)

start_kernel中接着调用pid_max,输出下面信息:

[    0.004006] pid_max: default:  minimum: 

start_kernel中接着调用security_init,输出下面信息:

[    0.004038] Security Framework initialized

start_kernel中调用security_init,security_init中调用do_security_initcalls,和前面的console_init类似,此处代码如下:

       call = __security_initcall_start;
while (call < __security_initcall_end) {
(*call) ();
call++;
}

security/apparmor/lsm.c中最后一行代码如下:

security_initcall(apparmor_init);

security_initcall定义如下:

 #define security_initcall(fn) \
static initcall_t __initcall_##fn \
__used __section(.security_initcall.init) = fn

所以这里会执行apparmor_init函数。在该函数中输出下面信息:

[    0.004054] AppArmor: AppArmor disabled by boot time parameter

start_kernel中接着调用vfs_caches_init函数,vfs_caches_init调用mnt_init,在其中输出下面信息:

[    0.004067] Mount-cache hash table entries: 

start_kernel接着调用cgroup_init,cgroup_init中对其中每个subsys执行cgroup_init_subsy,输出下面信息:

[    0.004187] Initializing cgroup subsys cpuacct
[ 0.004192] Initializing cgroup subsys memory
[ 0.004200] Initializing cgroup subsys devices
[ 0.004202] Initializing cgroup subsys freezer
[ 0.004204] Initializing cgroup subsys net_cls
[ 0.004205] Initializing cgroup subsys blkio
[ 0.004211] Initializing cgroup subsys perf_event

start_kernel接着调用check_bugs,check_bugs接着调用identify_boot_cpu,identify_boot_cpu调用identify_cpu,

identify_cpu调用this_cpu->c_init,即init_intel,init_intel中调用detect_ht,在此函数中输出下面信息:

[    0.004239] CPU: Physical Processor ID:
[ 0.004240] CPU: Processor Core ID:

init_intel中接着调用mcheck_cpu_init,mcheck_cpu_init调用__mcheck_cpu_cap_init函数,此函数中输出下面信息:

[    0.004243] mce: CPU supports  MCE banks

mcheck_cpu_init接着调用__mcheck_cpu_init_vendor,__mcheck_cpu_init_vendor调用mce_intel_feature_init,

mce_intel_feature_init调用intel_init_thermal,输出下面信息:

[    0.004250] CPU0: Thermal monitoring enabled (TM2)

identify_cpu接着调用select_idle_routine,输出下面信息:

[    0.004253] using mwait in idle threads.

回到start_kernel函数,调用acpi_early_init,输出下面信息:

[    0.004638] ACPI: Core revision 

start_kernel调用rest_init.

rest_init创建内核线程,其执行函数是kernel_init.

kernel_init调用smp_init, smp_init调用APIC_init_uniprocessor,APIC_init_uniprocesor调用default_setup_apic_routing,

default_setup_apic_routing调用apic->setup_apic_routing,即setup_apic_flat_routing。

setup_apic_flat_routing输出下面信息:

[    0.009086] Enabling APIC mode:  Flat.  Using  I/O APICs

APIC_init_uniprocessor中接着调用setup_IO_APIC,setup_IO_APIC调用check_timer,check_timer中输出信息:

[    0.009444] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-

下面信息我没搜索到对应代码:

[    0.049139] CPU0: Intel Pentium(R) Dual-Core  CPU      E5200  @ .50GHz stepping 0a

kernel_init中接着调用do_pre_smp_initcalls,与前面类似,该函数中有下面代码:

   for (fn = __initcall_start; fn < __early_initcall_end; fn++)
do_one_initcall(*fn);

do_one_initcall中主要功能是调用fn。

上面代码是将__initcall_start和__early_initcall_end之间所有函数全部执行一遍。

arch/x86/kernel/cpu/perf_event中有下面代码:

early_initcall(init_hw_perf_events);

early_initcall定义如下:

#define early_initcall(fn)      __define_initcall("early",fn,early)

__define_initcall定义如下:

#define __define_initcall(level,fn,id) \
static initcall_t __initcall_##fn##id __used \
__attribute__((__section__(".initcall" level ".init"))) = fn

上面定义扩展成:

static initcall_t __initcall_init_hw_perf_events_early __used __attributes__((__section (.initcallearly.init)))=init_hw_perf_events

在arch/x86/kernel/vmlinux.lds中有下面定义:

__initcall_start = .; *(.initcallearly.init) __early_initcall_end = .; 

此处会调用init_hw_pref_events_early,在此函数中输出下面信息:

[    0.052002] Performance Events: PEBS fmt0+, Core2 events, Intel PMU driver.
[ 0.052002] ... version:
[ 0.052002] ... bit width:
[ 0.052002] ... generic registers:
[ 0.052002] ... value mask: 000000ffffffffff
[ 0.052002] ... max period: 000000007fffffff
[ 0.052002] ... fixed-purpose events:
[ 0.052002] ... event mask:

kernel_init中接着调用lockup_detector_init,lockup_detector_init调用cpu_callback,cpu_callback调用watchdog_enable.

watchdog_enable调用 watchdog_nmi_enable,输出下面信息:

[    0.052002] NMI watchdog enabled, takes one hw-pmu counter.

kernel_init接着调用smp_init,smp_init调用cpu_up,cpu_up此处等于native_cpu_up,native_cpu_up调用do_boot_cpu,

do_boot_cpu 调用irq_ctx_init,其中输出下面信息:

[    0.052002] CPU  irqstacks, hard=f64d4000 soft=f64d6000

do_boot_cpu中接着调用announce_cpu,输出下面信息:

[    0.052002] Booting Node   , Processors  #

do_boot_cpu中接着输出下面信息:

[    0.052002] smpboot cpu : start_ip = 9b000

do_boot_cpu中initial_code=start_secondary(但不清楚如何调用start_secondary),调用start_secondary,

start_secondary调用cpu_init,cpu_init中输出下面信息:

[    0.008000] Initializing CPU#

不知道怎么输出下面信息:

[    0.140036] NMI watchdog enabled, takes one hw-pmu counter.

smp_init输出下面信息:

[    0.140070] Brought up  CPUs

smp_init调用smp_cpus_done,smp_cpus_done调用smp_ops.smp_cpus_done,即native_smp_cpus_done函数。

native_smp_cpus_done调用impress_friends,此函数输出下面信息:

[    0.140072] Total of  processors activated (10041.88 BogoMIPS).

回到kernel_init,调用do_basic_setup,do_basic_setup调用driver_init,driver_init调用devtmpfs_init,

devtmpfs_init中创建内核线程kdevtmpfs,线程函数是devtmpfsd。

在当前系统下可以搜索到该线程:

$ ps aux | grep kdevtmpfs
root 0.0 0.0 ? S : : [kdevtmpfs]
host 0.0 0.0 pts/ S+ : : grep kdevtmpfs

只有第一行信息与该线程有关,第二行信息是我搜索时产生的进程。

devtmpfsd函数内容如下:

static int devtmpfsd(void *p)
{
char options[] = "mode=0755";
int *err = p;
*err = sys_unshare(CLONE_NEWNS);
if (*err)
goto out;
*err = sys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, options);
if (*err)
goto out;
sys_chdir("/.."); /* will traverse into overmounted root */
sys_chroot(".");
complete(&setup_done);
while () {
spin_lock(&req_lock);
while (requests) {
struct req *req = requests;
requests = NULL;
spin_unlock(&req_lock);
while (req) {
struct req *next = req->next;
req->err = handle(req->name, req->mode, req->dev);
complete(&req->done);
req = next;
}
spin_lock(&req_lock);
}
set_current_state(TASK_INTERRUPTIBLE);
spin_unlock(&req_lock);
schedule();
__set_current_state(TASK_RUNNING);
}
return ;
out:
complete(&setup_done);
return *err;
}

devtmpfsd挂载/文件夹,循环处理request中的每个请求,如果没请求,请求处理后就会调度其他进程来执行。

devtmpfs_init中还输出下面信息:

[    0.141484] devtmpfs: initialized

driver_init中还调用了devices_init,该函数创建/sys/devices,/dev/以及/dev/block和/dev/char。

driver_init中接着调用buses_init,该函数创建/sys/bus以及/sys/devices/syste

driver_init接着调用classes_init,该函数创建/sys/class.

driver_init接着调用firmware_init,该函数创建/sys/firmware.

driver_init接着调用hipervisor_init,该函数创建/sys/hipervisor

driver_init接着调用platform_bus_init,该函数创建/sys/devices/platform和/sys/bus/platform

driver_init接着调用cpu_dev_init,该函数注册cpu_subsys,创建/sys/devices/cpu和/sys/bus/cpu。

driver_init接着调用memory_dev_init,该函数创建/sys/bus/mem.

do_basic_setup中接着调用init_irq_proc,创建/proc/irq,并为所有中断在/proc/irq下创建相应的文件夹。

do_basic_setup接着调用do_initcalls,与前面类似,其函数定义如下:

 static void __init do_initcalls(void)
{
initcall_t *fn; for (fn = __early_initcall_end; fn < __initcall_end; fn++)
do_one_initcall(*fn);
}

arch/x86/kernel/vmlinux.lds中有下面定义:

__early_initcall_end = .; *(.initcall0.    init) *(.initcall0s.init) *(.initcall1.init) *(.initcall1s.init) *(.initcall2.init) *(.initcall2s.init) *(.initcall3.init) *(.init    call3s.init) *(.initcall4.init) *(.initcall4s.init) *(.initcall5.init) *(.initcall5s.init) *(.initcallrootfs.init) *(.initcall6.in    it) *(.initcall6s.init) *(.initcall7.init) *(.initcall7s.init) __initcall_end = .;

include/linux/init.h中有下面定义:

#define __define_initcall(level,fn,id) \
static initcall_t __initcall_##fn##id __used \
__attribute__((__section__(".initcall" level ".init"))) = fn #define pure_initcall(fn) __define_initcall("0",fn,0) #define core_initcall(fn) __define_initcall("1",fn,1)
#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
#define postcore_initcall(fn) __define_initcall("2",fn,2)
#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)
#define arch_initcall(fn) __define_initcall("3",fn,3)
#define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)
#define subsys_initcall(fn) __define_initcall("4",fn,4)
#define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)
#define fs_initcall(fn) __define_initcall("5",fn,5)
#define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)
#define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)
#define device_initcall(fn) __define_initcall("6",fn,6)
#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)
#define late_initcall(fn) __define_initcall("7",fn,7)
#define late_initcall_sync(fn) __define_initcall("7s",fn,7s)

所以所有与上面定义的从pure_initcall到late_initcall_sync所有宏定义的函数都会在此处被执行。

arch/x86/kernel/e820.c中有下面代码:

core_initcall(e820_mark_nvs_memory);

所以e820_mark_nvs_memory会被调用,e820_mark_nvs_memory调用suspend_nvs_register,输出下面信息:

[    0.141484] PM: Registering ACPI NVS region at 7f590000 ( bytes)

drivers/regulator/core.c中有下面代码:

core_initcall(regulator_init);

此处会执行regulator_init,创建/sys/class/regulator,在debugfs下创建regulator文件夹,然后执行regulator_dummy_init,

添加dummy设备以及驱动,输出下面信息:

[    0.141484] print_constraints: dummy:

net/netlink/af_netlink.c中有下面代码:

core_initcall(netlink_proto_init);

此处会执行netlink_proto_init函数,netlink_proto_init调用sock_register(&netlink_family_ops),输出下面信息:

[    0.141484] NET: Registered protocol family 

include/linux/socket.h中有AF_NETLINK协议簇的定义:

#define AF_NETLINK  16

drives/pci/pci-acpi.c中有下面代码:

arch_initcall(acpi_pci_init);

此处会执行acpi_pci_init函数,该函数中调用register_acpi_bus_type(&apci_pci_bus),输出下面信息:

[    0.141484] ACPI: bus type pci registered

arch/x86/pci/init.c中有下面代码:

arch_initcall(pci_arch_init);

此处会执行pci_arch_init函数,pci_arch_init调用pci_mmcfg_early_init,然后调用几个函数后会调用pci_mmconfig_add,

输出下面信息:

[    0.141484] PCI: MMCONFIG for domain  [bus -ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)

经过多次调用后会调用is_mmconfig_reserved,输出下面信息:

[    0.141484] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820

经过多次调用后会调用pci_mmconfig_arch_init,输出下面信息:

[    0.141484] PCI: Using MMCONFIG for extended config space

pci_arch_init还调用了pci_direct_init,该函数输出下面信息:

[    0.141484] PCI: Using configuration type  for base access

fs/bio.c中有下面代码:

subsys_initcall(init_bio);

此处会执行init_bio,init_bio调用bioset_create,bioset_create调用bio_find_or_create_slab,此函数中输出下面信息:

[    0.141484] bio: create slab <bio-> at 

drivers/acpi/bus中有下面代码:

subsys_initcall(acpi_init);

此处会调用acpi_init,acpi_init调用acpi_bus_init,acpi_bus_init调用acpi_os_initialize1,acpi_os_initialize1调用acpi_osi_setup_late,

acpi_osi_setup_late输出下面信息:

[    0.141484] ACPI: Added _OSI(Module Device)
[ 0.141484] ACPI: Added _OSI(Processor Device)
[ 0.141484] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.141484] ACPI: Added _OSI(Processor Aggregator Device)

acpi_bus_init中调用acpi_ec_ecdt_probe,该函数输出下面信息:

[    0.141484] ACPI: EC: Look up EC in DSDT

debian内核代码执行流程(一)的更多相关文章

  1. debian内核代码执行流程(三)

    接续<debian内核代码执行流程(二)>未完成部分 下面这行输出信息是启动udevd进程产生的输出信息: [ ]: starting version 175是udevd的版本号. 根据& ...

  2. debian内核代码执行流程(二)

    继续上一篇文章<debian内核代码执行流程(一)>未完成部分. acpi_bus_init调用acpi_initialize_objects,经过一系列复杂调用后输出下面信息: [ IN ...

  3. kbengine Unity3d demo 代码执行流程(4)

    当服务端成功启动,客户端链接服务端后进入demo中的游戏界面,demo中的功能包括注册.登录.角色管理.战斗.场景等等. 对于新接触kbengine的人,看见客户端的代码后会觉得很迷茫,有些无从下手. ...

  4. 第一章 Java代码执行流程

    说明:本文主要参考自<分布式Java应用:基础与实践> 1.Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内 ...

  5. Java 代码执行流程

    Java 代码执行流程 类加载过程 加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载 类加载时机:代码使用到这个类时 验证阶段 &qu ...

  6. Java中异常发生时代码执行流程

    异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员) ...

  7. 当try-catch-finally代码块遇上return,代码执行流程是怎样

    这里打算用一个Java读取文件内容的例子来测试,文件存在,不抛异常,文件不存在,则抛出FileNotFoundException: Java读取文件代码如下: /** * 根据路径和文件名获取内容 * ...

  8. PHP代码执行流程

    怎么样?有点了解了么.说实话,单看这个,我本人是有点懵的,不过,不要怕.咱们来慢慢地看下. 首先,在网上找的信息说PHP代码执行的顺序是这样的,第一步是词法分析,第二步是语法分析,第三步是转化为opc ...

  9. pdfium 代码执行流程

    1.FPDF_InitLibrary(NULL); CPDF_CustomAccess::CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess) {     i ...

随机推荐

  1. Struts2 结果和结果类型

    正如前面提到的,<results>标签在Struts2的MVC框架的视图中所扮演的角色.动作是负责执行业务逻辑.执行业务逻辑后,接下来的步骤是使用<results>标签显示的视 ...

  2. struts.xml文件:

    struts.xml文件中包含的配置信息,你将修改所采取的措施的开发.这个文件可以被用来覆盖默认设置的应用程序,例如struts.devMode=false和其他设置中定义的属性文件.这个文件可以创建 ...

  3. UML Rose2003完美破解攻略

    Rational Rose 2003 软件project画图软件 ,当然还不止画图,对于那些不想用英文版Rational Rose2003的同志们.这个Rational Rose2003 版本号已经汉 ...

  4. 字符串匹配(KMP 算法 含代码)

    主要是针对字符串的匹配算法进行解说 有关字符串的基本知识 传统的串匹配法 模式匹配的一种改进算法KMP算法 网上一比較易懂的解说 小样例 1计算next 2计算nextval 代码 有关字符串的基本知 ...

  5. 当公有云Azure拥抱Docker容器技术

    本文转载至 http://3387405.blog.51cto.com/3377405/1598977 预见未来看似是一件不太可能的事情,然而现在企业科技高速发展的态势完全超乎想象. 就在几周前Inf ...

  6. 50、Toast自定义布局

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  7. [网络通信] OSI七层模型思维导图

    ISO:国际标准化组织:OSI:开放系统互联 (部分描述不准确和不详细)

  8. 在Visual Studio 2015的Cordova项目中使用Gulp

    之前一直是在vs 2013中使用Cordova来开发移动app(目前有iPad版/iPhone版/安卓版),准备到下一个milestone的时候升级到2015,这两天在尝试各种东西. 2015中的co ...

  9. [翻译] flask-SocketIO

    最近开发工作需要用到websocket去替代老办法轮询,因为我们的web系统使用flask搭建,所以使用flask-SocketIO作为我们的websocket方案,因此顺手翻译官方文档 *** Fl ...

  10. Java的==与equals之辨

    =======================原理速记=================================== equals重载后比较内容,==比较指针.否则equls等同于== (Ja ...