From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S267881AbUHNCLp (ORCPT ); Fri, 13 Aug 2004 22:11:45 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S267893AbUHNCLp (ORCPT ); Fri, 13 Aug 2004 22:11:45 -0400 Received: from 64.89.71.154.nw.nuvox.net ([64.89.71.154]:1994 "EHLO gate.apago.com") by vger.kernel.org with ESMTP id S267881AbUHNCLc (ORCPT ); Fri, 13 Aug 2004 22:11:32 -0400 SMTP-Relay: dogwood.freil.com Message-Id: <200408140211.i7E2BNSg027992@dogwood.freil.com> To: linux-kernel@vger.kernel.org X-mailer: exmh-2.0.2 Subject: Serious Kernel slowdown with HIMEM (4Gig) in 2.6.7 Date: Fri, 13 Aug 2004 22:11:23 -0400 From: "Lawrence E. Freil" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hello, I'm following the kernel bug reporting format so: 1. Linux 2.6.7 kernel slowdown in directory access with HIMEM on 2. I have discovered an issue with the Linux 2.6.7 kernel when HIMEM is enabled which exhibits itself as a slowdown in directory access regardless of filesystem used. When HIMEM is disabled the performance returns to normal. The test I ran was a simple "/usr/bin/time ls -l" of a directory with 3000 empty files. With HIMEM enabled in the kernel this takes approximately 1.5 seconds. Without HIMEM it takes 0.03 seconds. The time is 100% CPU and no I/O operations are done to disk. "time" reports there are 460 "minor" page faults with zero "major" page faults. I believe the issue here is the mapping of pages between high-mem and lowmem in the kernel paging code. This increase in time for directory accesses doubles to triples times for applications using samba. I have also tested this on another system which had only 512Meg of RAM but with HIMEM set in the kernel and did not experience the problem. I believe it only effects the performance when the paging buffers end up in highmem. 3. Keywords: HIMEM, Performance 4. No oops, kernel operates normally with the exception of the performance. 5. N/A 6. time "I=0; while test $I -lt 3000; do touch $I; I=`expr $I + 1`; done" With HIMEM set (and available!) this takes 20 seconds Without HIMEM it takes about 5 7. Slackware 10.0 with 2.6.7 kernel 1GB of RAM. 7.1 ver_linux Gnu C 3.3.4 Gnu make 3.80 binutils 2.15.90.0.3 util-linux 2.12a mount 2.12a module-init-tools 3.0 e2fsprogs 1.35 jfsutils 1.1.6 xfsprogs 2.6.13 pcmcia-cs 3.2.7 quota-tools 3.12. PPP 2.4.2 nfs-utils 1.0.6 Linux C Library 2.3.2 Dynamic linker (ldd) 2.3.2 Linux C++ Library 5.0.6 Procps 3.2.1 Net-tools 1.60 Kbd 1.12 Sh-utils 5.2.1 Modules Loaded ide_scsi 7.2 /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.80GHz stepping : 9 cpu MHz : 2793.765 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid bogomips : 5521.40 7.3 /proc/modules ide_scsi 13608 - - Live 0xf8cd9000 7.4 /proc/ioports 0000-001f : dma1 0020-0021 : pic1 0040-005f : timer 0060-006f : keyboard 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : libata 01f0-01f7 : ide0 02f8-02ff : serial 0378-037a : parport0 03c0-03df : vesafb 03f6-03f6 : ide0 03f8-03ff : serial 0400-041f : 0000:00:1f.3 0400-040f : i801-smbus 0480-04bf : 0000:00:1f.0 0800-087f : 0000:00:1f.0 0cf8-0cff : PCI conf1 d000-d0ff : 0000:01:09.0 d000-d0ff : 8139too d400-d4ff : 0000:01:0b.0 d800-d8ff : 0000:01:0b.0 de00-deff : 0000:01:0a.0 de00-deff : SysKonnect SK-98xx df00-df3f : 0000:01:08.0 df00-df3f : eepro100 e800-e8ff : 0000:00:1f.5 ee80-eebf : 0000:00:1f.5 ef00-ef1f : 0000:00:1d.0 ef00-ef1f : uhci_hcd ef20-ef3f : 0000:00:1d.1 ef20-ef3f : uhci_hcd ef40-ef5f : 0000:00:1d.2 ef40-ef5f : uhci_hcd ef80-ef9f : 0000:00:1d.3 ef80-ef9f : uhci_hcd efe0-efe7 : 0000:00:02.0 fc00-fc0f : 0000:00:1f.2 fc00-fc0f : libata 7.5 pciinfo 00:00.0 Host bridge: Intel Corp. 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02) Subsystem: Asustek Computer, Inc.: Unknown device 80a5 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- Reset- FastB2B- 00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Bridge (rev 02) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- Region 1: I/O ports at Region 2: I/O ports at Region 3: I/O ports at Region 4: I/O ports at fc00 [size=16] 00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02) Subsystem: Asustek Computer, Inc. P4P800 Mainboard Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR-