Activity log for bug #574733

Date Who What changed Old value New value Message
2010-05-03 19:53:06 Thomas Schlichter bug added bug
2010-05-03 19:53:06 Thomas Schlichter attachment added Fix uvesafb to use correct ioremap_* calls and create correct PAT entries http://launchpadlibrarian.net/47637167/uvesafb.diff
2010-05-03 19:54:45 Thomas Schlichter attachment added Fix for vesafb http://launchpadlibrarian.net/47637352/vesafb.diff
2010-05-03 23:00:40 Jeremy Foshee tags kj-triage
2010-06-04 02:21:58 Jeremy Foshee tags kj-triage kj-triage needs-kernel-logs
2010-06-04 02:22:01 Jeremy Foshee tags kj-triage needs-kernel-logs kj-triage needs-kernel-logs needs-upstream-testing
2010-06-04 02:22:08 Jeremy Foshee linux (Ubuntu): status New Incomplete
2010-06-06 23:21:59 Thomas Schlichter tags kj-triage needs-kernel-logs needs-upstream-testing apport-collected kj-triage needs-kernel-logs needs-upstream-testing
2010-06-06 23:22:03 Thomas Schlichter description Hi, when using uvesafb or vesafb, these drivers will create uncached-minus PAT entries for the framebuffer memory because they use ioremap(). WHen the framebuffer memory intersects with the video RAM used by Xorg, the complete video RAM will be mapped uncached-minus what results in a server performance penalty. Here are the correct MTRR entries created by uvesafb: schlicht@netbook:~$ cat /proc/mtrr reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back reg01: base=0x06ff00000 ( 1791MB), size= 1MB, count=1: uncachable reg02: base=0x070000000 ( 1792MB), size= 256MB, count=1: uncachable reg03: base=0x0d0000000 ( 3328MB), size= 16MB, count=1: write-combining And here are the problematic PAT entries: schlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list PAT memtype list: write-back @ 0x0-0x1000 uncached-minus @ 0x6fedd000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0xd0000000-0xe0000000 <-- created by xserver-xorg uncached-minus @ 0xd0000000-0xd1194000 <-- created by uvesafb uncached-minus @ 0xf4000000-0xf4009000 uncached-minus @ 0xf4200000-0xf4400000 uncached-minus @ 0xf5000000-0xf5010000 uncached-minus @ 0xf5100000-0xf5104000 uncached-minus @ 0xf5400000-0xf5404000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xfed00000-0xfed01000 Therefore I created the attached patch for uvesafb which uses ioremap_wc() to create the correct PAT entries, as shown below: schlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list PAT memtype list: write-back @ 0x0-0x1000 uncached-minus @ 0x6fedd000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 write-combining @ 0xd0000000-0xe0000000 write-combining @ 0xd0000000-0xd1194000 uncached-minus @ 0xf4000000-0xf4009000 uncached-minus @ 0xf4200000-0xf4400000 uncached-minus @ 0xf5000000-0xf5010000 uncached-minus @ 0xf5100000-0xf5104000 uncached-minus @ 0xf5400000-0xf5404000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xfed00000-0xfed01000 This results in a performance gain, objectively measurable with e.g. x11perf -comppixwin10 -comppixwin100 -comppixwin500: 1: x11perf_xaa_lucid.log 2: x11perf_xaa_lucid_patched.log 1 2 Operation -------- ----------------- ----------------- 300000.0 296000.0 ( 0.99) Composite 10x10 from window to window 38400.0 38500.0 ( 1.00) Composite 100x100 from window to window 1760.0 1760.0 ( 1.00) Composite 500x500 from window to window 124000.0 202000.0 ( 1.63) Composite 10x10 from pixmap to window 3340.0 24400.0 ( 7.31) Composite 100x100 from pixmap to window 131.0 1150.0 ( 8.78) Composite 500x500 from pixmap to window You can see the serve performance gain when composing larger pixmaps to window. Please consider applying/pushing the attached patch. I'll also attach a very similar patch for vesafb. Kind regards, Thomas Hi, when using uvesafb or vesafb, these drivers will create uncached-minus PAT entries for the framebuffer memory because they use ioremap(). WHen the framebuffer memory intersects with the video RAM used by Xorg, the complete video RAM will be mapped uncached-minus what results in a server performance penalty. Here are the correct MTRR entries created by uvesafb: schlicht@netbook:~$ cat /proc/mtrr reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back reg01: base=0x06ff00000 ( 1791MB), size= 1MB, count=1: uncachable reg02: base=0x070000000 ( 1792MB), size= 256MB, count=1: uncachable reg03: base=0x0d0000000 ( 3328MB), size= 16MB, count=1: write-combining And here are the problematic PAT entries: schlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list PAT memtype list: write-back @ 0x0-0x1000 uncached-minus @ 0x6fedd000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0xd0000000-0xe0000000 <-- created by xserver-xorg uncached-minus @ 0xd0000000-0xd1194000 <-- created by uvesafb uncached-minus @ 0xf4000000-0xf4009000 uncached-minus @ 0xf4200000-0xf4400000 uncached-minus @ 0xf5000000-0xf5010000 uncached-minus @ 0xf5100000-0xf5104000 uncached-minus @ 0xf5400000-0xf5404000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xfed00000-0xfed01000 Therefore I created the attached patch for uvesafb which uses ioremap_wc() to create the correct PAT entries, as shown below: schlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list PAT memtype list: write-back @ 0x0-0x1000 uncached-minus @ 0x6fedd000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee2000-0x6fee3000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 uncached-minus @ 0x6fee3000-0x6fee4000 write-combining @ 0xd0000000-0xe0000000 write-combining @ 0xd0000000-0xd1194000 uncached-minus @ 0xf4000000-0xf4009000 uncached-minus @ 0xf4200000-0xf4400000 uncached-minus @ 0xf5000000-0xf5010000 uncached-minus @ 0xf5100000-0xf5104000 uncached-minus @ 0xf5400000-0xf5404000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xf5404000-0xf5405000 uncached-minus @ 0xfed00000-0xfed01000 This results in a performance gain, objectively measurable with e.g. x11perf -comppixwin10 -comppixwin100 -comppixwin500: 1: x11perf_xaa_lucid.log 2: x11perf_xaa_lucid_patched.log 1 2 Operation -------- ----------------- ----------------- 300000.0 296000.0 ( 0.99) Composite 10x10 from window to window 38400.0 38500.0 ( 1.00) Composite 100x100 from window to window 1760.0 1760.0 ( 1.00) Composite 500x500 from window to window 124000.0 202000.0 ( 1.63) Composite 10x10 from pixmap to window 3340.0 24400.0 ( 7.31) Composite 100x100 from pixmap to window 131.0 1150.0 ( 8.78) Composite 500x500 from pixmap to window You can see the serve performance gain when composing larger pixmaps to window. Please consider applying/pushing the attached patch. I'll also attach a very similar patch for vesafb. Kind regards, Thomas --- AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.22.1. AplayDevices: **** List of PLAYBACK Hardware Devices **** card 0: VT82xx [HDA VIA VT82xx], device 0: ALC272 Analog [ALC272 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 Architecture: i386 ArecordDevices: **** List of CAPTURE Hardware Devices **** card 0: VT82xx [HDA VIA VT82xx], device 0: ALC272 Analog [ALC272 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 CRDA: Error: [Errno 2] No such file or directory Card0.Amixer.info: Card hw:0 'VT82xx'/'HDA VIA VT82xx at 0xf5400000 irq 51' Mixer name : 'Realtek ALC272' Components : 'HDA:10ec0272,144dc04e,00100001' Controls : 14 Simple ctrls : 8 DistroRelease: Ubuntu 10.10 LiveMediaBuild: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100602.2) MachineType: SAMSUNG ELECTRONICS CO., LTD. NC20/NB20 Package: linux (not installed) ProcCmdLine: BOOT_IMAGE=/casper/vmlinuz noprompt cdrom-detect/try-usb=true file=/cdrom/preseed/hostname.seed boot=casper initrd=/casper/initrd.lz video=vesafb:mtrr=3 vga=792 quiet splash -- priority=low debian-installer/language=de console-setup/layoutcode?=de ProcEnviron: LANG=de_DE.UTF-8 SHELL=/bin/bash ProcVersionSignature: Ubuntu 2.6.34-5.13-generic 2.6.34 Regression: No RelatedPackageVersions: linux-firmware 1.35 Reproducible: Yes Tags: maverick kconfig needs-upstream-testing Uname: Linux 2.6.34-5-generic i686 UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare dmi.bios.date: 11/25/2009 dmi.bios.vendor: Phoenix Technologies Ltd. dmi.bios.version: 10MQ dmi.board.name: NC20/NB20 dmi.board.vendor: SAMSUNG ELECTRONICS CO., LTD. dmi.chassis.asset.tag: No Asset Tag dmi.chassis.type: 10 dmi.chassis.vendor: SAMSUNG ELECTRONICS CO., LTD. dmi.chassis.version: N/A dmi.modalias: dmi:bvnPhoenixTechnologiesLtd.:bvr10MQ:bd11/25/2009:svnSAMSUNGELECTRONICSCO.,LTD.:pnNC20/NB20:pvr04MQ:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNC20/NB20:rvr:cvnSAMSUNGELECTRONICSCO.,LTD.:ct10:cvrN/A: dmi.product.name: NC20/NB20 dmi.product.version: 04MQ dmi.sys.vendor: SAMSUNG ELECTRONICS CO., LTD.
2010-06-06 23:22:07 Thomas Schlichter attachment added AlsaDevices.txt http://launchpadlibrarian.net/49788251/AlsaDevices.txt
2010-06-06 23:22:10 Thomas Schlichter attachment added AudioDevicesInUse.txt http://launchpadlibrarian.net/49788252/AudioDevicesInUse.txt
2010-06-06 23:22:12 Thomas Schlichter attachment added BootDmesg.txt http://launchpadlibrarian.net/49788267/BootDmesg.txt
2010-06-06 23:22:14 Thomas Schlichter attachment added Card0.Amixer.values.txt http://launchpadlibrarian.net/49788268/Card0.Amixer.values.txt
2010-06-06 23:22:17 Thomas Schlichter attachment added Card0.Codecs.codec.0.txt http://launchpadlibrarian.net/49788269/Card0.Codecs.codec.0.txt
2010-06-06 23:22:20 Thomas Schlichter attachment added CurrentDmesg.txt http://launchpadlibrarian.net/49788270/CurrentDmesg.txt
2010-06-06 23:22:24 Thomas Schlichter attachment added IwConfig.txt http://launchpadlibrarian.net/49788271/IwConfig.txt
2010-06-06 23:22:26 Thomas Schlichter attachment added Lspci.txt http://launchpadlibrarian.net/49788273/Lspci.txt
2010-06-06 23:22:27 Thomas Schlichter attachment added Lsusb.txt http://launchpadlibrarian.net/49788275/Lsusb.txt
2010-06-06 23:22:30 Thomas Schlichter attachment added PciMultimedia.txt http://launchpadlibrarian.net/49788276/PciMultimedia.txt
2010-06-06 23:22:33 Thomas Schlichter attachment added ProcCpuinfo.txt http://launchpadlibrarian.net/49788277/ProcCpuinfo.txt
2010-06-06 23:22:35 Thomas Schlichter attachment added ProcInterrupts.txt http://launchpadlibrarian.net/49788278/ProcInterrupts.txt
2010-06-06 23:22:37 Thomas Schlichter attachment added ProcModules.txt http://launchpadlibrarian.net/49788279/ProcModules.txt
2010-06-06 23:22:39 Thomas Schlichter attachment added RfKill.txt http://launchpadlibrarian.net/49788280/RfKill.txt
2010-06-06 23:22:42 Thomas Schlichter attachment added UdevDb.txt http://launchpadlibrarian.net/49788281/UdevDb.txt
2010-06-06 23:22:47 Thomas Schlichter attachment added UdevLog.txt http://launchpadlibrarian.net/49788282/UdevLog.txt
2010-06-06 23:22:49 Thomas Schlichter attachment added WifiSyslog.txt http://launchpadlibrarian.net/49788283/WifiSyslog.txt
2010-06-08 20:59:13 Thomas Schlichter tags apport-collected kj-triage needs-kernel-logs needs-upstream-testing apport-collected kj-triage
2010-06-09 17:06:28 Nigel Babu removed subscriber Ubuntu Review Team
2010-06-16 14:21:59 Jeremy Foshee tags apport-collected kj-triage apport-collected cherry-pick kernel-graphics kernel-needs-review kj-triage
2010-06-16 14:22:15 Jeremy Foshee linux (Ubuntu): status Incomplete Triaged
2010-06-16 14:22:20 Jeremy Foshee linux (Ubuntu): importance Undecided Medium
2010-07-06 15:24:23 Steve Conklin tags apport-collected cherry-pick kernel-graphics kernel-needs-review kj-triage apport-collected cherry-pick kernel-graphics kernel-reviewed kj-triage
2010-07-06 16:31:54 Brian Murray bug added subscriber Ubuntu Review Team
2010-07-06 16:31:58 Brian Murray tags apport-collected cherry-pick kernel-graphics kernel-reviewed kj-triage apport-collected cherry-pick kernel-graphics kernel-reviewed kj-triage patch
2010-07-25 10:01:58 Nigel Babu removed subscriber Ubuntu Review Team
2011-10-05 21:59:13 Jeremy Foshee removed subscriber Jeremy Foshee
2011-11-10 21:12:10 Brad Figg linux (Ubuntu): status Triaged Incomplete
2011-11-13 17:27:43 Brad Figg linux (Ubuntu): status Incomplete Fix Released