質問: 起動時にmtrrが不足しています 私のラップトップ(acer aspire one aoa150)は起動時にmtrrが不足しているようです。私はこの問題についてグーグルで調べたところ、mtrrサニタイズをオンにして修正することを人々が推奨していることを読みましたが、それでも発生します。 arch linuxを実行しています(ただし、それは問題ではありません)。ここでmtrrサニタイズを有効にしたことがわかります。[chris@helios ~]$ zgrep 'sanitizer' /proc/config.gz config_mtrr_sanitizer=y config_mtrr_sanitizer_enable_default=1 config_mtrr_sanitizer_spare_reg_nr_default=1 これが私の関連するシステム情報です:uname -a:linux helios 2.6.38-aao-light #1 smp preempt fri apr 1 03:02:37 bst 2011 i686 intel(r) atom(tm) cpu n270 @ 1.60ghz genuineintel gnu/linux dmesgの潜在的な警告:[ 0.000000] notice: nx (execute disable) protection missing in cpu! [ 0.000000] rcu-based detection of stalled cpus is disabled. [ 0.000000] verbose stalled-cpus detection is disabled. [ 0.157222] acpi error: [capb] namespace lookup failure, ae_already_exists (20110112/dsfield-143) [ 0.157393] acpi error: method parse/execution failed [\_sb_.pci0._osc] (node f682fca8), ae_already_exists (20110112/psparse-536) [ 0.157578] acpi: marking method _osc as serialized because of ae_already_exists error [ 0.160212] pci 0000:00:1b.0: pme# disabled [ 0.160354] pci 0000:00:1c.0: pme# disabled [ 0.160498] pci 0000:00:1c.1: pme# disabled [ 0.160642] pci 0000:00:1c.2: pme# disabled [ 0.160787] pci 0000:00:1c.3: pme# disabled [ 0.161441] pci 0000:00:1d.7: pme# disabled [ 0.162043] pci 0000:00:1f.2: pme# disabled [ 0.162677] pci 0000:02:00.0: pme# disabled [ 0.166197] pci 0000:00:1e.0: bridge window [io 0xf000-0x0000] (disabled) [ 0.166207] pci 0000:00:1e.0: bridge window [mem 0xfff00000-0x000fffff] (disabled) [ 0.166219] pci 0000:00:1e.0: bridge window [mem 0xfff00000-0x000fffff pref] (disabled) [ 0.167559] acpi error: [capb] namespace lookup failure, ae_already_exists (20110112/dsfield-143) [ 0.167729] acpi error: method parse/execution failed [\_sb_.pci0._osc] (node f682fca8), ae_already_exists (20110112/psparse-536) [ 0.168113] acpi error: [capb] namespace lookup failure, ae_already_exists (20110112/dsfield-143) [ 0.168279] acpi error: method parse/execution failed [\_sb_.pci0._osc] (node f682fca8), ae_already_exists (20110112/psparse-536) [ 0.178246] acpi: pci interrupt link [lnke] (irqs 3 4 5 7 9 10 11 12) *0, disabled. [ 0.178612] acpi: pci interrupt link [lnkf] (irqs 3 4 5 7 9 10 11 12) *0, disabled. [ 0.179008] acpi: pci interrupt link [lnkg] (irqs 3 4 5 7 9 10 11 12) *0, disabled. [ 0.179375] acpi: pci interrupt link [lnkh] (irqs 3 4 5 7 9 10 11 12) *0, disabled. [ 0.190814] pnp 00:04: [irq 0 disabled] [ 0.235056] pci 0000:00:1e.0: bridge window [io disabled] [ 0.235135] pci 0000:00:1e.0: bridge window [mem disabled] [ 0.235212] pci 0000:00:1e.0: bridge window [mem pref disabled] [ 0.254489] marking tsc unstable due to tsc halts in idle states deeper than c2 [ 0.332589] [drm] mtrr allocation failed. graphics performance may suffer. zgrep -i mtrr /proc/config.gzconfig_mtrr=y config_mtrr_sanitizer=y config_mtrr_sanitizer_enable_default=1 config_mtrr_sanitizer_spare_reg_nr_default=2 / proc/iomem:00000000-0000ffff : reserved 00010000-0009fbff : system ram 0009fc00-0009ffff : reserved 000a0000-000bffff : pci bus 0000:00 000a0000-000bffff : video ram area 000c0000-000c7fff : video rom 000cf000-000cffff : adapter rom 000e0000-000fffff : reserved 000f0000-000fffff : system rom 00100000-3f375fff : system ram 01000000-0148cffe : kernel code 0148cfff-015e417f : kernel data 01646000-016b2fff : kernel bss 3f376000-3f3befff : reserved 3f3bf000-3f46cfff : system ram 3f46d000-3f4befff : acpi non-volatile storage 3f4bf000-3f4effff : system ram 3f4f0000-3f4fefff : acpi tables 3f4ff000-3f4fffff : system ram 3f500000-3fffffff : reserved 40000000-febfffff : pci bus 0000:00 40000000-4fffffff : 0000:00:02.0 50000000-50ffffff : pci bus 0000:01 51000000-520fffff : pci bus 0000:02 51000000-5100ffff : 0000:02:00.0 51000000-5100ffff : r8169 51010000-51010fff : 0000:02:00.0 51010000-51010fff : r8169 51020000-5103ffff : 0000:02:00.0 52100000-530fffff : pci bus 0000:03 53100000-540fffff : pci bus 0000:04 54100000-551fffff : pci bus 0000:04 55200000-562fffff : pci bus 0000:03 55200000-5520ffff : 0000:03:00.0 55200000-5520ffff : ath5k 56300000-572fffff : pci bus 0000:02 57300000-583fffff : pci bus 0000:01 58400000-5847ffff : 0000:00:02.1 58480000-584fffff : 0000:00:02.0 58500000-5853ffff : 0000:00:02.0 58540000-58543fff : 0000:00:1b.0 58540000-58543fff : ich hd audio 58544400-585447ff : 0000:00:1d.7 58544400-585447ff : ehci_hcd 58545000-58545fff : intel flush page e0000000-efffffff : pci mmconfig 0000 [bus 00-ff] e0000000-efffffff : reserved e0000000-efffffff : pnp 00:01 fec00000-fec00fff : reserved fec00000-fec003ff : ioapic 0 fed00000-fed003ff : hpet 0 fed14000-fed19fff : reserved fed14000-fed17fff : pnp 00:01 fed18000-fed18fff : pnp 00:01 fed19000-fed19fff : pnp 00:01 fed1c000-fed1ffff : reserved fed1c000-fed1ffff : pnp 00:01 fee00000-fee00fff : local apic fee00000-fee00fff : reserved fee00000-fee00fff : pnp 00:01 fff00000-ffffffff : reserved / proc/cpuinfo:processor : 0 vendor_id : genuineintel cpu family : 6 model : 28 model name : intel(r) atom(tm) cpu n270 @ 1.60ghz stepping : 2 cpu mhz : 1600.000 cache size : 512 kb physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3192.06 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: processor : 1 vendor_id : genuineintel cpu family : 6 model : 28 model name : intel(r) atom(tm) cpu n270 @ 1.60ghz stepping : 2 cpu mhz : 1600.000 cache size : 512 kb physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3191.83 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: / proc/mtrr:reg00: base=0x0fffe0000 ( 4095mb), size= 128kb, count=1: write-protect reg01: base=0x0fffc0000 ( 4095mb), size= 128kb, count=1: uncachable reg02: base=0x000000000 ( 0mb), size= 512mb, count=1: write-back reg03: base=0x020000000 ( 512mb), size= 512mb, count=1: write-back reg04: base=0x03f800000 ( 1016mb), size= 8mb, count=1: uncachable reg05: base=0x03f600000 ( 1014mb), size= 2mb, count=1: uncachable reg06: base=0x03f500000 ( 1013mb), size= 1mb, count=1: uncachable reg07: base=0x000000000 ( 0mb), size= 128kb, count=1: uncachable lshw:helios description: computer product: aoa150 (napa_fab5) vendor: acer version: 1 serial: lus050a0748370f93b2535 width: 32 bits capabilities: smbios-2.4 dmi-2.4 configuration: boot=normal family=intel_mobile sku=napa_fab5 uuid=e081a8c2-6ce0-d411-bb0b-001e68e42bca *-core description: motherboard vendor: acer physical id: 0 version: base board version serial: base board serial number slot: base board chassis location *-firmware description: bios vendor: acer physical id: 0 version: v0.3301 date: 05/09/2008 size: 1mib capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb *-memory description: system memory physical id: 14 slot: system board or motherboard size: 1gib *-bank:0 description: dimm ddr2 synchronous 533 mhz (1.9 ns) product: hymp164s64cp6-y5 vendor: hynix semiconductor (hyundai electronics) physical id: 0 serial: 0x00000000 slot: j2 size: 512mib width: 64 bits clock: 533mhz (1.9ns) *-bank:1 description: dimm ddr2 synchronous 533 mhz (1.9 ns) product: hymp164s64cp6-y5 vendor: hynix semiconductor (hyundai electronics) physical id: 1 serial: 0x00002337 slot: j6h2 size: 512mib width: 64 bits clock: 533mhz (1.9ns) *-cpu description: cpu product: intel(r) atom(tm) cpu n270 @ 1.60ghz vendor: intel corp. physical id: 1c bus info: cpu@0 version: 6.12.2 serial: 0001-06c2-0000-0000-0000-0000 slot: cpu size: 800mhz capacity: 1600mhz width: 32 bits clock: 533mhz capabilities: fpu fpu_exception wp vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm cpufreq configuration: id=0 *-cache:0 description: l2 cache physical id: 1d slot: unknown size: 512kib capacity: 512kib capabilities: synchronous internal write-back unified *-cache:1 description: l1 cache physical id: 1e slot: unknown size: 32kib capacity: 32kib capabilities: synchronous internal write-back instruction *-logicalcpu:0 description: logical cpu physical id: 0.1 width: 32 bits capabilities: logical *-logicalcpu:1 description: logical cpu physical id: 0.2 width: 32 bits capabilities: logical *-pci description: host bridge product: mobile 945gme express memory controller hub vendor: intel corporation physical id: 100 bus info: pci@0000:00:00.0 version: 03 width: 32 bits clock: 33mhz configuration: driver=agpgart-intel resources: irq:0 *-display:0 description: vga compatible controller product: mobile 945gme express integrated graphics controller vendor: intel corporation physical id: 2 bus info: pci@0000:00:02.0 version: 03 width: 32 bits clock: 33mhz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:16 memory:58480000-584fffff ioport:60c0(size=8) memory:40000000-4fffffff memory:58500000-5853ffff *-display:1 unclaimed description: display controller product: mobile 945gm/gms/gme, 943/940gml express integrated graphics controller vendor: intel corporation physical id: 2.1 bus info: pci@0000:00:02.1 version: 03 width: 32 bits clock: 33mhz capabilities: pm bus_master cap_list configuration: latency=0 resources: memory:58400000-5847ffff *-multimedia description: audio device product: n10/ich 7 family high definition audio controller vendor: intel corporation physical id: 1b bus info: pci@0000:00:1b.0 version: 02 width: 64 bits clock: 33mhz capabilities: pm msi pciexpress bus_master cap_list configuration: driver=hda intel latency=0 resources: irq:45 memory:58540000-58543fff *-pci:0 description: pci bridge product: n10/ich 7 family pci express port 1 vendor: intel corporation physical id: 1c bus info: pci@0000:00:1c.0 version: 02 width: 32 bits clock: 33mhz capabilities: pci pciexpress msi pm normal_decode bus_master cap_list configuration: driver=pcieport resources: irq:40 ioport:5000(size=4096) memory:57300000-583fffff ioport:50000000(size=16777216) *-pci:1 description: pci bridge product: n10/ich 7 family pci express port 2 vendor: intel corporation physical id: 1c.1 bus info: pci@0000:00:1c.1 version: 02 width: 32 bits clock: 33mhz capabilities: pci pciexpress msi pm normal_decode bus_master cap_list configuration: driver=pcieport resources: irq:41 ioport:3000(size=8192) memory:56300000-572fffff ioport:51000000(size=17825792) *-network disabled description: ethernet interface product: rtl8101e/rtl8102e pci express fast ethernet controller vendor: realtek semiconductor co., ltd. physical id: 0 bus info: pci@0000:02:00.0 logical name: eth0 version: 02 serial: 00:1e:68:e4:2b:ca size: 10mbit/s capacity: 100mbit/s width: 64 bits clock: 33mhz
回答: harrymcのおかげで、実際に/ proc/mtrrを書き換えることができることがわかりました。以下を/etc/rc.localに入れて再起動すると、mtrrテーブルは正しかった。echo "disable=7" > /proc/mtrr echo "disable=6" > /proc/mtrr echo "disable=5" > /proc/mtrr echo "disable=4" > /proc/mtrr echo "disable=3" > /proc/mtrr echo "disable=2" > /proc/mtrr echo "disable=1" > /proc/mtrr echo "disable=0" > /proc/mtrr echo "base=0x000000000 size=0x40000000 type=write-back" > /proc/mtrr echo "base=0x03f500000 size=0x00100000 type=uncachable" > /proc/mtrr echo "base=0x03f600000 size=0x00200000 type=uncachable" > /proc/mtrr echo "base=0x03f800000 size=0x00800000 type=write-back" > /proc/mtrr echo "base=0x040000000 size=0x10000000 type=write-combining" > /proc/mtrr また、カーネル開発に携わっている何人かの人々と話をした後、私はconfig_mtrr_sanitizerは過去数カーネルで壊れていたため、過去に他のカーネルで機能したのはなぜですか。