我在具有 512MB RAM 的旧 x86 系统上重新安装了全新的 debian 10(一切正常)。
可用内存为 431MB。 (现在没有插入显卡)
我不认为旧的 3.x 内核上“保留”了那么多内存
$ free -m
total used free shared buff/cache available
Mem: 431 59 311 4 60 355
$ cat /proc/meminfo
MemTotal: 441568 kB
日志中有更多关于内存的内容,不确定哪些是相关的。我只是好奇丢失的内存去哪儿了。
编辑:整个 dmesg
[ 0.000000] Linux version 4.19.0-5-686-pae ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-7)) #1 SMP Debian 4.19.37-3 (2019-05-15)
[ 0.000000] x86/fpu: x87 FPU will use FXSAVE
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000dffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ffff0000-0x00000000ffffffff] reserved
[ 0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[ 0.000000] Legacy DMI 2.0 present.
[ 0.000000] DMI: Micro-Star Inc. INTEL 440LX/INTEL 440LX, BIOS 0627 07/15/95
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 334.067 MHz processor
[ 0.003598] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.003633] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.003684] last_pfn = 0x20000 max_arch_pfn = 0x1000000
[ 0.003731] MTRR default type: uncachable
[ 0.003741] MTRR fixed ranges enabled:
[ 0.003758] 00000-9FFFF write-back
[ 0.003773] A0000-FFFFF uncachable
[ 0.003782] MTRR variable ranges enabled:
[ 0.003798] 0 base 000000000 mask FE0000000 write-back
[ 0.003807] 1 disabled
[ 0.003815] 2 disabled
[ 0.003823] 3 disabled
[ 0.003831] 4 disabled
[ 0.003839] 5 disabled
[ 0.003847] 6 disabled
[ 0.003855] 7 disabled
[ 0.007325] x86/PAT: PAT not supported by CPU.
[ 0.007771] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC
[ 0.050001] found SMP MP-table at [mem 0x000fb250-0x000fb25f]
[ 0.112510] initial memory mapped: [mem 0x00000000-0x1affffff]
[ 0.112544] Base memory trampoline at [(ptrval)] 9b000 size 16384
[ 0.112573] Kernel/User page tables isolation: disabled on command line.
[ 0.113047] BRK [0x1ab82000, 0x1ab83fff] PGTABLE
[ 0.113082] BRK [0x1ab84000, 0x1ab84fff] PGTABLE
[ 0.113105] BRK [0x1ab85000, 0x1ab85fff] PGTABLE
[ 0.113219] RAMDISK: [mem 0x1e40a000-0x1f885fff]
[ 0.113277] 0MB HIGHMEM available.
[ 0.113291] 512MB LOWMEM available.
[ 0.113299] mapped low ram: 0 - 20000000
[ 0.113307] low ram: 0 - 20000000
[ 0.113367] BRK [0x1ab86000, 0x1ab86fff] PGTABLE
[ 0.113399] Zone ranges:
[ 0.113408] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.113425] Normal [mem 0x0000000001000000-0x000000001fffffff]
[ 0.113440] HighMem empty
[ 0.113451] Movable zone start for each node
[ 0.113457] Early memory node ranges
[ 0.113469] node 0: [mem 0x0000000000001000-0x000000000009efff]
[ 0.113480] node 0: [mem 0x0000000000100000-0x000000001fffffff]
[ 0.113496] Initmem setup node 0 [mem 0x0000000000001000-0x000000001fffffff]
[ 0.113513] On node 0 totalpages: 130974
[ 0.142335] DMA zone: 40 pages used for memmap
[ 0.142352] DMA zone: 0 pages reserved
[ 0.142364] DMA zone: 3998 pages, LIFO batch:0
[ 0.143743] Normal zone: 1240 pages used for memmap
[ 0.143760] Normal zone: 126976 pages, LIFO batch:31
[ 0.185825] Using APIC driver default
[ 0.185978] SFI: Simple Firmware Interface v0.81 http://simplefirmware.org
[ 0.194121] Intel MultiProcessor Specification v1.1
[ 0.194130] Virtual Wire compatibility mode.
[ 0.194215] MPTABLE: OEM ID: MSI
[ 0.194223] MPTABLE: Product ID:
[ 0.194233] MPTABLE: APIC at: 0xFEE00000
[ 0.194254] Processor #0 (Bootup-CPU)
[ 0.194272] Processor #1
[ 0.194367] IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
[ 0.194468] Processors: 2
[ 0.194485] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[ 0.194647] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.194669] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[ 0.194679] PM: Registered nosave memory: [mem 0x000a0000-0x000dbfff]
[ 0.194688] PM: Registered nosave memory: [mem 0x000dc000-0x000dffff]
[ 0.194697] PM: Registered nosave memory: [mem 0x000e0000-0x000effff]
[ 0.194706] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[ 0.194733] [mem 0x20000000-0xfebfffff] available for PCI devices
[ 0.194744] Booting paravirtualized kernel on bare hardware
[ 0.194780] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[ 0.194914] random: get_random_bytes called from start_kernel+0x81/0x45f with crng_init=0
[ 0.194994] setup_percpu: NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:2 nr_node_ids:1
[ 0.197559] percpu: Embedded 29 pages/cpu s89932 r0 d28852 u118784
[ 0.197634] pcpu-alloc: s89932 r0 d28852 u118784 alloc=29*4096
[ 0.197648] pcpu-alloc: [0] 0 [0] 1
[ 0.197835] Built 1 zonelists, mobility grouping on. Total pages: 129694
[ 0.197861] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.19.0-5-686-pae root=UUID=375c43d8-1ed9-48c6-a196-9787ccb61863 ro quiet acpi=off nopti nospectre_v2 nospec_store_bypass_disable
[ 0.200664] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.201381] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.201402] BRK [0x1ab87000, 0x1ab87fff] PGTABLE
[ 0.201574] Initializing CPU#0
[ 0.585340] Initializing HighMem for node 0 (00000000:00000000)
[ 0.648160] Memory: 419336K/523896K available (6751K kernel code, 660K rwdata, 2068K rodata, 880K init, 452K bss, 104560K reserved, 0K cma-reserved, 0K highmem)
[ 0.648224] virtual kernel memory layout:
fixmap : 0xffd35000 - 0xfffff000 (2856 kB)
cpu_entry : 0xff400000 - 0xff8e1000 (4996 kB)
pkmap : 0xff000000 - 0xff200000 (2048 kB)
vmalloc : 0xe0800000 - 0xfeffe000 ( 487 MB)
lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
.init : 0xda955000 - 0xdaa31000 ( 880 kB)
.data : 0xda697dd8 - 0xda945300 (2741 kB)
.text : 0xda000000 - 0xda697dd8 (6751 kB)
[ 0.648233] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.649959] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.649986] ftrace: allocating 29700 entries in 59 pages
[ 0.917280] rcu: Hierarchical RCU implementation.
[ 0.917307] rcu: RCU restricting CPUs from NR_CPUS=32 to nr_cpu_ids=2.
[ 0.917321] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.971555] NR_IRQS: 2304, nr_irqs: 440, preallocated irqs: 16
[ 0.972398] CPU 0 irqstacks, hard=(ptrval) soft=(ptrval)
[ 0.973212] Console: colour dummy device 80x25
[ 0.973266] console [tty0] enabled
[ 0.973397] APIC: Switch to symmetric I/O mode setup
[ 0.973423] Enabling APIC mode: Flat. Using 1 I/O APICs
[ 0.973801] ExtINT not setup in hardware but reported by MP table
[ 0.975451] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=0 pin2=0
[ 0.993429] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x4d0bcc23f1, max_idle_ns: 440795205856 ns
[ 0.993549] Calibrating delay loop (skipped), value calculated using timer frequency.. 668.13 BogoMIPS (lpj=1336268)
[ 0.993579] pid_max: default: 32768 minimum: 301
[ 0.994118] Security Framework initialized
[ 0.994137] Yama: disabled by default; enable with sysctl kernel.yama.*
[ 0.994428] AppArmor: AppArmor initialized
[ 0.994682] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.994726] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.997334] mce: CPU supports 5 MCE banks
[ 0.997553] Last level iTLB entries: 4KB 32, 2MB 0, 4MB 2
[ 0.997567] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 8, 1GB 0
[ 0.997586] Speculative Store Bypass: Vulnerable
[ 0.997761] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[ 0.998665] Freeing SMP alternatives memory: 24K
[ 1.117524] smpboot: CPU0: Intel Pentium II (Deschutes) (family: 0x6, model: 0x5, stepping: 0x1)
[ 1.119725] Performance Events: p6 PMU driver.
[ 1.119776] ... version: 0
[ 1.119785] ... bit width: 32
[ 1.119791] ... generic registers: 2
[ 1.119800] ... value mask: 00000000ffffffff
[ 1.119808] ... max period: 000000007fffffff
[ 1.119814] ... fixed-purpose events: 0
[ 1.119821] ... event mask: 0000000000000003
[ 1.120534] rcu: Hierarchical SRCU implementation.
[ 1.126044] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[ 1.126734] smp: Bringing up secondary CPUs ...
[ 1.128629] CPU 1 irqstacks, hard=(ptrval) soft=(ptrval)
[ 1.128641] x86: Booting SMP configuration:
[ 1.128652] .... node #0, CPUs: #1
[ 0.005020] Initializing CPU#1
[ 0.005020] [Firmware Bug]: CPU1: APIC id mismatch. Firmware: 1 APIC: 0
[ 1.214072] smp: Brought up 1 node, 2 CPUs
[ 1.214072] smpboot: Max logical packages: 2
[ 1.214072] smpboot: Total of 2 processors activated (1336.36 BogoMIPS)
[ 1.221630] devtmpfs: initialized
[ 1.225770] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 1.225808] futex hash table entries: 512 (order: 3, 32768 bytes)
[ 1.226504] pinctrl core: initialized pinctrl subsystem
[ 1.228901] NET: Registered protocol family 16
[ 1.230743] audit: initializing netlink subsys (disabled)
[ 1.231149] audit: type=2000 audit(1558406150.256:1): state=initialized audit_enabled=0 res=1
[ 1.231162] cpuidle: using governor ladder
[ 1.231240] cpuidle: using governor menu
[ 1.234422] PCI: Using configuration type 1 for base access
[ 1.249805] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 1.250780] ACPI: Interpreter disabled.
[ 1.254036] vgaarb: loaded
[ 1.254384] EDAC MC: Ver: 3.0.0
[ 1.255121] PCI: Probing PCI hardware
[ 1.255121] PCI: root bus 00: using default resources
[ 1.255121] PCI: Probing PCI hardware (bus 00)
[ 1.255121] PCI host bridge to bus 0000:00
[ 1.255121] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[ 1.255121] pci_bus 0000:00: root bus resource [mem 0x00000000-0xfffffffff]
[ 1.255121] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 1.255121] pci 0000:00:00.0: [8086:7180] type 00 class 0x060000
[ 1.255121] pci 0000:00:00.0: reg 0x10: [mem 0xe8000000-0xebffffff pref]
[ 1.257972] pci 0000:00:01.0: [8086:7181] type 01 class 0x060400
[ 1.258520] pci 0000:00:07.0: [8086:7110] type 00 class 0x060100
[ 1.259061] pci 0000:00:07.1: [8086:7111] type 00 class 0x010180
[ 1.259161] pci 0000:00:07.1: reg 0x20: [io 0xffa0-0xffaf]
[ 1.259210] pci 0000:00:07.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7]
[ 1.259226] pci 0000:00:07.1: legacy IDE quirk: reg 0x14: [io 0x03f6]
[ 1.259242] pci 0000:00:07.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177]
[ 1.259256] pci 0000:00:07.1: legacy IDE quirk: reg 0x1c: [io 0x0376]
[ 1.259693] pci 0000:00:07.2: [8086:7112] type 00 class 0x0c0300
[ 1.259814] pci 0000:00:07.2: reg 0x20: [io 0xda00-0xda1f]
[ 1.260284] pci 0000:00:07.3: [8086:7113] type 00 class 0x068000
[ 1.260308] * Found PM-Timer Bug on the chipset. Due to workarounds for a bug,
* this clock source is slow. Consider trying other clock sources
[ 1.260473] pci 0000:00:07.3: quirk: [io 0x6100-0x613f] claimed by PIIX4 ACPI
[ 1.260497] pci 0000:00:07.3: quirk: [io 0x5f00-0x5f0f] claimed by PIIX4 SMB
[ 1.260979] pci 0000:00:0f.0: [13c1:1001] type 00 class 0x010400
[ 1.261046] pci 0000:00:0f.0: reg 0x10: [io 0xde00-0xde0f]
[ 1.261083] pci 0000:00:0f.0: reg 0x14: [mem 0xeffffff0-0xefffffff]
[ 1.261118] pci 0000:00:0f.0: reg 0x18: [mem 0xef000000-0xef7fffff]
[ 1.261193] pci 0000:00:0f.0: reg 0x30: [mem 0xeffe0000-0xeffeffff pref]
[ 1.261282] pci 0000:00:0f.0: supports D1
[ 1.261832] pci 0000:00:12.0: [8086:1026] type 00 class 0x020000
[ 1.261917] pci 0000:00:12.0: reg 0x10: [mem 0xeffc0000-0xeffdffff 64bit]
[ 1.261962] pci 0000:00:12.0: reg 0x18: [mem 0xeff80000-0xeffbffff 64bit]
[ 1.261996] pci 0000:00:12.0: reg 0x20: [io 0xdc00-0xdc3f]
[ 1.262046] pci 0000:00:12.0: reg 0x30: [mem 0xeff40000-0xeff7ffff pref]
[ 1.262150] pci 0000:00:12.0: PME# supported from D0 D3hot D3cold
[ 1.262701] pci_bus 0000:01: extended config space not accessible
[ 1.263002] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 1.263028] pci 0000:00:01.0: bridge window [io 0xc000-0xcfff]
[ 1.263050] pci 0000:00:01.0: bridge window [mem 0xeed00000-0xeedfffff]
[ 1.263071] pci 0000:00:01.0: bridge window [mem 0xe6b00000-0xe6bfffff pref]
[ 1.263118] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[ 1.263753] pci 0000:00:07.0: PIIX/ICH IRQ router [8086:7110]
[ 1.263797] PCI: pci_cache_line_size set to 32 bytes
[ 1.263899] e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
[ 1.266414] clocksource: Switched to clocksource tsc-early
[ 1.447210] VFS: Disk quotas dquot_6.6.0
[ 1.447437] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 1.449141] AppArmor: AppArmor Filesystem Enabled
[ 1.449344] pnp: PnP ACPI: disabled
[ 1.449366] PnPBIOS: Scanning system for PnP BIOS support...
[ 1.449800] PnPBIOS: Found PnP BIOS installation structure at 0x(ptrval)
[ 1.449823] PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0x6dae, dseg 0xf0000
[ 1.450617] pnp 00:00: [mem 0x00000000-0x0009fbff]
[ 1.450638] pnp 00:00: [mem 0x0009fc00-0x0009ffff]
[ 1.450655] pnp 00:00: [mem 0x000dc000-0x000dffff]
[ 1.450670] pnp 00:00: [mem 0x000f0000-0x000fffff]
[ 1.450687] pnp 00:00: [mem 0x00100000-0x1fffffff]
[ 1.450705] pnp 00:00: [mem 0xfffffffffec00000-0xfffffffffec00fff]
[ 1.450723] pnp 00:00: [mem 0xfffffffffee00000-0xfffffffffee00fff]
[ 1.450741] pnp 00:00: [mem 0xffffffffffff0000-0xffffffffffffffff]
[ 1.451159] system 00:00: [mem 0x00000000-0x0009fbff] could not be reserved
[ 1.451184] system 00:00: [mem 0x0009fc00-0x0009ffff] could not be reserved
[ 1.451206] system 00:00: [mem 0x000dc000-0x000dffff] could not be reserved
[ 1.451227] system 00:00: [mem 0x000f0000-0x000fffff] could not be reserved
[ 1.451247] system 00:00: [mem 0x00100000-0x1fffffff] could not be reserved
[ 1.451269] system 00:00: [mem 0xfffffffffec00000-0xfffffffffec00fff] could not be reserved
[ 1.451291] system 00:00: [mem 0xfffffffffee00000-0xfffffffffee00fff] could not be reserved
[ 1.451313] system 00:00: [mem 0xffffffffffff0000-0xffffffffffffffff] could not be reserved
[ 1.451377] system 00:00: Plug and Play BIOS device, IDs PNP0c01 (active)
[ 1.451513] pnp 00:01: [io 0x0020-0x0021]
[ 1.451531] pnp 00:01: [io 0x00a0-0x00a1]
[ 1.451551] pnp 00:01: [irq 2]
[ 1.451749] pnp 00:01: Plug and Play BIOS device, IDs PNP0000 (active)
[ 1.451906] pnp 00:02: [dma 4]
[ 1.451924] pnp 00:02: [io 0x0000-0x000f]
[ 1.451941] pnp 00:02: [io 0x0080-0x0090]
[ 1.451957] pnp 00:02: [io 0x0094-0x009f]
[ 1.451974] pnp 00:02: [io 0x00c0-0x00de]
[ 1.452200] pnp 00:02: Plug and Play BIOS device, IDs PNP0200 (active)
[ 1.452437] pnp 00:03: [irq 0]
[ 1.452457] pnp 00:03: [io 0x0040-0x0043]
[ 1.452662] pnp 00:03: Plug and Play BIOS device, IDs PNP0100 (active)
[ 1.452853] pnp 00:04: [irq 8]
[ 1.452872] pnp 00:04: [io 0x0070-0x0071]
[ 1.453068] pnp 00:04: Plug and Play BIOS device, IDs PNP0b00 (active)
[ 1.453277] pnp 00:05: [irq 1]
[ 1.453296] pnp 00:05: [io 0x0060]
[ 1.453312] pnp 00:05: [io 0x0064]
[ 1.453534] pnp 00:05: Plug and Play BIOS device, IDs PNP0303 (active)
[ 1.453761] pnp 00:06: [io 0x0061]
[ 1.453964] pnp 00:06: Plug and Play BIOS device, IDs PNP0800 (active)
[ 1.454248] pnp 00:07: [irq 13]
[ 1.454268] pnp 00:07: [io 0x00f0-0x00ff]
[ 1.454468] pnp 00:07: Plug and Play BIOS device, IDs PNP0c04 (active)
[ 1.454798] pnp 00:08: [io 0x6100-0x613f]
[ 1.454816] pnp 00:08: [io 0x5f00-0x5f0f]
[ 1.454833] pnp 00:08: [io 0x04d0-0x04d1]
[ 1.454849] pnp 00:08: [io 0x0cf8-0x0cff]
[ 1.454866] pnp 00:08: [io 0x0294-0x0297]
[ 1.455088] pnp 00:08: Plug and Play BIOS device, IDs PNP0a03 (active)
[ 1.455104] PnPBIOS: 9 nodes reported by PnP BIOS; 9 recorded by driver
[ 1.483560] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 1.483590] pci 0000:00:01.0: bridge window [io 0xc000-0xcfff]
[ 1.483619] pci 0000:00:01.0: bridge window [mem 0xeed00000-0xeedfffff]
[ 1.483642] pci 0000:00:01.0: bridge window [mem 0xe6b00000-0xe6bfffff pref]
[ 1.483684] pci_bus 0000:00: resource 4 [io 0x0000-0xffff]
[ 1.483701] pci_bus 0000:00: resource 5 [mem 0x00000000-0xfffffffff]
[ 1.483719] pci_bus 0000:01: resource 0 [io 0xc000-0xcfff]
[ 1.483735] pci_bus 0000:01: resource 1 [mem 0xeed00000-0xeedfffff]
[ 1.483752] pci_bus 0000:01: resource 2 [mem 0xe6b00000-0xe6bfffff pref]
[ 1.484194] NET: Registered protocol family 2
[ 1.486277] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[ 1.486370] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 1.486499] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[ 1.486722] TCP: Hash tables configured (established 4096 bind 4096)
[ 1.487123] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 1.487199] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 1.487734] NET: Registered protocol family 1
[ 1.487803] NET: Registered protocol family 44
[ 1.487854] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[ 1.488032] pci 0000:00:07.2: PCI->APIC IRQ transform: INT D -> IRQ 19
[ 1.488142] PCI: CLS 32 bytes, default 32
[ 1.488902] Unpacking initramfs...
[ 6.074902] Freeing initrd memory: 20976K
[ 6.074945] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 6.074962] software IO TLB: mapped [mem 0x16000000-0x1a000000] (64MB)
[ 6.082796] Initialise system trusted keyrings
[ 6.082913] Key type blacklist registered
[ 6.083606] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[ 6.105277] zbud: loaded
[ 6.106749] pstore: using deflate compression
[ 7.084935] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x4d0bcc23f1, max_idle_ns: 440795205856 ns
[ 7.085417] clocksource: Switched to clocksource tsc
[ 13.550142] Key type asymmetric registered
[ 13.550166] Asymmetric key parser 'x509' registered
[ 13.550341] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 13.550843] io scheduler noop registered
[ 13.550856] io scheduler deadline registered
[ 13.551678] io scheduler cfq registered (default)
[ 13.551693] io scheduler mq-deadline registered
[ 13.553675] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 13.553857] intel_idle: does not run on family 6 model 5
[ 13.554345] isapnp: Scanning for PnP cards...
[ 13.909492] isapnp: No Plug & Play device found
[ 13.910403] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 13.916097] Linux agpgart interface v0.103
[ 13.917233] agpgart-intel 0000:00:00.0: Intel 440LX Chipset
[ 13.931948] agpgart-intel 0000:00:00.0: AGP aperture is 64M @ 0xe8000000
[ 13.933568] i8042: PNP: PS/2 Controller [PNP0303] at 0x60,0x64 irq 1
[ 13.933580] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[ 13.935121] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 13.936491] mousedev: PS/2 mouse device common for all mice
[ 13.937133] rtc rtc0: invalid alarm value: 2019-5-21 22:62:30
[ 13.937659] rtc_cmos 00:04: registered as rtc0
[ 13.937885] rtc_cmos 00:04: alarms up to one day, 114 bytes nvram
[ 13.938244] ledtrig-cpu: registered to indicate activity on CPUs
[ 13.942928] NET: Registered protocol family 10
[ 14.055107] Segment Routing with IPv6
[ 14.055356] mip6: Mobile IPv6
[ 14.055378] NET: Registered protocol family 17
[ 14.055902] mpls_gso: MPLS GSO support
[ 14.058256] microcode: sig=0x651, pf=0x1, revision=0x29
[ 14.058821] microcode: Microcode Update Driver: v2.2.
[ 14.058856] Using IPI No-Shortcut mode
[ 14.058925] sched_clock: Marking stable (14057713765, 1020469)->(14183988558, -125254324)
[ 14.060943] registered taskstats version 1
[ 14.060953] Loading compiled-in X.509 certificates
[ 15.760453] Loaded X.509 cert 'Debian Secure Boot CA: 6ccece7e4c6c0d1f6149f3dd27dfcc5cbb419ea1'
[ 15.760690] Loaded X.509 cert 'Debian Secure Boot Signer: 00a7468def'
[ 15.760897] zswap: loaded using pool lzo/zbud
[ 15.761440] AppArmor: AppArmor sha1 policy hashing enabled
[ 15.763226] rtc_cmos 00:04: setting system clock to 2019-05-21 02:36:05 UTC (1558406165)
[ 15.780688] Freeing unused kernel image memory: 880K
[ 15.798080] Write protecting the kernel text: 6752k
[ 15.798691] Write protecting the kernel read-only data: 2076k
[ 15.798752] Run /init as init process
[ 16.675094] piix4_smbus 0000:00:07.3: SMBus Host Controller at 0x5f00, revision 0
[ 16.812021] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[ 16.812035] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 16.812295] e1000 0000:00:12.0: PCI->APIC IRQ transform: INT A -> IRQ 19
[ 16.874559] SCSI subsystem initialized
[ 16.918301] 3ware Storage Controller device driver for Linux v1.26.02.003.
[ 16.918545] 3w-xxxx 0000:00:0f.0: PCI->APIC IRQ transform: INT A -> IRQ 17
[ 16.963692] usbcore: registered new interface driver usbfs
[ 16.963847] usbcore: registered new interface driver hub
[ 16.964206] usbcore: registered new device driver usb
[ 17.044883] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 17.100093] uhci_hcd: USB Universal Host Controller Interface driver
[ 17.100429] uhci_hcd 0000:00:07.2: PCI->APIC IRQ transform: INT D -> IRQ 19
[ 17.100531] uhci_hcd 0000:00:07.2: UHCI Host Controller
[ 17.100597] uhci_hcd 0000:00:07.2: new USB bus registered, assigned bus number 1
[ 17.100646] uhci_hcd 0000:00:07.2: detected 2 ports
[ 17.100846] uhci_hcd 0000:00:07.2: irq 19, io base 0x0000da00
[ 17.112769] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 4.19
[ 17.112788] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 17.112803] usb usb1: Product: UHCI Host Controller
[ 17.112817] usb usb1: Manufacturer: Linux 4.19.0-5-686-pae uhci_hcd
[ 17.112831] usb usb1: SerialNumber: 0000:00:07.2
[ 17.117845] hub 1-0:1.0: USB hub found
[ 17.117955] hub 1-0:1.0: 2 ports detected
[ 17.288567] e1000 0000:00:12.0 eth0: (PCI:33MHz:32-bit) 00:04:23:e0:09:16
[ 17.288626] e1000 0000:00:12.0 eth0: Intel(R) PRO/1000 Network Connection
[ 17.300598] e1000 0000:00:12.0 enp0s18: renamed from eth0
[ 23.253605] scsi host0: 3ware Storage Controller
[ 23.260297] 3w-xxxx: scsi0: Found a 3ware Storage Controller at 0xde00, IRQ: 17.
[ 23.266809] scsi 0:0:0:0: Direct-Access 3ware Logical Disk 0 1.2 PQ: 0 ANSI: 0
[ 23.389261] sd 0:0:0:0: [sda] 468862128 512-byte logical blocks: (240 GB/224 GiB)
[ 23.389368] sd 0:0:0:0: [sda] Write Protect is off
[ 23.389388] sd 0:0:0:0: [sda] Mode Sense: 00 00 00 00
[ 23.389934] sd 0:0:0:0: [sda] Write cache: enabled, read cache: disabled, supports DPO and FUA
[ 23.396290] sda: sda1 sda2 < sda5 >
[ 23.400739] sd 0:0:0:0: [sda] Attached SCSI disk
[ 23.754215] PM: Image not found (code -22)
[ 23.942763] random: fast init done
[ 24.167537] cryptd: max_cpu_qlen set to 1000
[ 24.854773] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 25.846221] systemd[1]: Inserted module 'autofs4'
[ 25.963217] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[ 25.964788] systemd[1]: Detected architecture x86.
[ 25.981252] systemd[1]: Set hostname to <crumble0>.
[ 27.477851] random: systemd: uninitialized urandom read (16 bytes read)
[ 27.494867] random: systemd: uninitialized urandom read (16 bytes read)
[ 27.495052] systemd[1]: Reached target System Time Synchronized.
[ 27.496154] random: systemd: uninitialized urandom read (16 bytes read)
[ 27.497675] systemd[1]: Listening on udev Kernel Socket.
[ 27.498640] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ 27.500200] systemd[1]: Listening on udev Control Socket.
[ 27.500545] systemd[1]: Reached target Remote File Systems.
[ 27.502280] systemd[1]: Listening on Syslog Socket.
[ 27.503755] systemd[1]: Listening on fsck to fsckd communication Socket.
[ 28.222652] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[ 28.279034] random: crng init done
[ 28.279061] random: 7 urandom warning(s) missed due to ratelimiting
[ 29.799983] systemd-journald[164]: Received request to flush runtime journal from PID 1
[ 30.352511] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 32.152329] Adding 522236k swap on /dev/sda5. Priority:-2 extents:1 across:522236k FS
[ 32.721332] IPv6: ADDRCONF(NETDEV_UP): enp0s18: link is not ready
[ 32.726115] e1000: enp0s18 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[ 32.726351] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s18: link becomes ready
编辑 :
$ sudo cat /proc/iomem
00000000-00000fff : Reserved
00001000-0009fbff : System RAM
0009fc00-0009ffff : Reserved
000a0000-000bffff : Video RAM area
000c8000-000c8fff : Adapter ROM
000dc000-000dffff : Reserved
000f0000-000fffff : Reserved
000f0000-000fffff : System ROM
00100000-1fffffff : System RAM
1a000000-1a697dd7 : Kernel code
1a697dd8-1a9452ff : Kernel data
1aa38000-1aaa8fff : Kernel bss
e6b00000-e6bfffff : PCI Bus 0000:01
e8000000-ebffffff : 0000:00:00.0
eed00000-eedfffff : PCI Bus 0000:01
ef000000-ef7fffff : 0000:00:0f.0
ef000000-ef7fffff : 3w-xxxx
eff40000-eff7ffff : 0000:00:12.0
eff80000-effbffff : 0000:00:12.0
eff80000-effbffff : e1000
effc0000-effdffff : 0000:00:12.0
effc0000-effdffff : e1000
effe0000-effeffff : 0000:00:0f.0
effffff0-efffffff : 0000:00:0f.0
effffff0-efffffff : 3w-xxxx
fec00000-fec00fff : Reserved
fec00000-fec003ff : IOAPIC 0
fee00000-fee00fff : Local APIC
fee00000-fee00fff : Reserved
ffff0000-ffffffff : Reserved
答案1
您的系统上正在启用 SWIOTLB。默认情况下保留 64M RAM。仅当您拥有超过 4G RAM 并且无法使用硬件 IOMMU,或者您在没有嵌套页表的 Xen 虚拟化下运行时才需要它。恭喜。您在内核中发现了一个错误:-)。
以下启动选项之一应该可以正常工作:
iommu=off
- 禁用 SWIOTLB。swiotlb=1
- 将 SWIOTLB 减少到一个“slab”= 128K。
或者您可以尝试修补内核源代码。请参阅下面的补丁以及它修复的错误的说明:-)。
问题分析
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000dffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
你的物理RAM的映射范围是0-512M。我们从正常的遗留废话开始,但这仅影响 1M 以下的区域 ( 0x100000
)。
[ 0.113219] RAMDISK: [mem 0x1e40a000-0x1f885fff]
初始ramdisk约占20M。
[ 0.648160] Memory: 419336K/523896K available (6751K kernel code, 660K rwdata, 2068K rodata, 880K init, 452K bss, 104560K reserved, 0K cma-reserved, 0K highmem)
但现在我们预留了104M。我认为这包括稍后释放的 initrd。
[ 6.074902] Freeing initrd memory: 20976K
我认为大部分损失都在这里:
[ 6.074945] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 6.074962] software IO TLB: mapped [mem 0x16000000-0x1a000000] (64MB)
64M是默认尺寸分配给反弹缓冲区。
swiotlb 是一种与无法访问所有系统内存的 [DMA] 设备一起使用的反弹缓冲机制。
swiotlb 代码只是在引导过程的早期分配一大块低内存;然后分配该内存以响应 DMA 分配请求。在许多情况下,swiotlb 内存的使用涉及创建“反弹缓冲区”,其中数据在驱动程序缓冲区和设备可访问的 swiotlb 空间之间复制。用于 swiotlb 的内存已从正常的 Linux 内存管理机制中删除,因此除了 DMA 缓冲区之外,其他任何用途都无法访问。由于这些原因,swiotlb 充其量被认为是不优雅的。
DMA 问题,第 2 部分,LWN.net,2004。
这个解释的奇怪之处在于它说 swiotlb 是英特尔最初实现的一个解决方法x86-64。看来您已经与 x86-32 Linux 当前的破旧状态发生了冲突。也许是 Linux“统一”许多 x86-32 和 x86-64 代码时的疏忽?
这SWIOTLB初始化代码意味着它不应该在 4GB 或更少的系统上启用...但我认为它已经损坏了:-D。
/* 4GB broken PCI/AGP hardware bus master zone */
#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
...
* If 4GB or more detected (and iommu=off not set) or if SME is active
* then set swiotlb to 1 and return 1.
*/
int __init pci_swiotlb_detect_4gb(void)
{
/* don't initialize swiotlb if iommu=off (no_iommu=1) */
if (!no_iommu && max_possible_pfn > MAX_DMA32_PFN)
swiotlb = 1;
当构建 32 位时,问题的4UL * 1024 * 1024 * 1024
计算结果为:-D。0
修复应该是这样的
arch/x86/include/asm/dma.h:
-#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
+#define MAX_DMA32_PFN (4UL * ((1024 * 1024 * 1024) >> PAGE_SHIFT)))
我在 GPL2 下发布了这个内核补丁(也进入了公共领域)。我没有计划测试或提交它。用这些知识做你想做的事。