debian内核代码执行流程(一)

本文根据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
上一篇:转接口IC ADV7280/ADV7280-M:CVBS转MIPI转接口芯片 10位、4倍过采样标清电视视频解码器,支持去隔行


下一篇:End up with More Teams UVA - 11088