kernel 2.6.22-r1, iowait, тормоза процессов
Собрал это ядро, наконец заработал AHCI и NCQ для всех винтов.
Копирование делается со скоростью будь здоров (40-45 mb/sec)
Но при этом когда IOwait под потолок (например при хешировании файлов в фоне LinuxDC++), начинаются тормоза, тормозит отображение, тормозит ввод с клавы, движения курсора мыши.
Конфа ядра - ориентирована на десктоп:
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
# IO Schedulers
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_X86_IO_APIC=y
CONFIG_DEFAULT_CFQ=y
CONFIG_SHMEM=y
# CONFIG_TINY_SHMEM is not set
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_BLK_DEV_UMEM=m
CONFIG_INPUT_FF_MEMLESS=m
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_HAS_IOMEM=y
Доп инфа:
$ dmesg | grep AHCI ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0x33 impl SATA mode ahci 0000:03:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps 0x3 impl SATA mode $ dmesg | grep NCQ ata1.00: 586112591 sectors, multi 0: LBA48 NCQ (depth 31/32) ata2.00: 586114704 sectors, multi 0: LBA48 NCQ (depth 31/32) ata5.00: 586112591 sectors, multi 0: LBA48 NCQ (depth 31/32) ata6.00: 312579695 sectors, multi 0: LBA48 NCQ (depth 31/32) ata7.00: 586112591 sectors, multi 16: LBA48 NCQ (depth 31/32) ata8.00: 390719855 sectors, multi 16: LBA48 NCQ (depth 31/32) $ dmesg | grep NEC ata9.00: ATAPI: _NEC DVD_RW ND-4571A, 1-01, max UDMA/33 scsi 8:0:0:0: CD-ROM _NEC DVD_RW ND-4571A 1-01 PQ: 0 ANSI: 5 $ dmesg | grep ATA ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0x33 impl SATA mode ata1: SATA max UDMA/133 cmd 0xf8806100 ctl 0x00000000 bmdma 0x00000000 irq 219 ata2: SATA max UDMA/133 cmd 0xf8806180 ctl 0x00000000 bmdma 0x00000000 irq 219 ata5: SATA max UDMA/133 cmd 0xf8806300 ctl 0x00000000 bmdma 0x00000000 irq 219 ata6: SATA max UDMA/133 cmd 0xf8806380 ctl 0x00000000 bmdma 0x00000000 irq 219 ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata1.00: ATA-7: Maxtor 7V300F0, VA111630, max UDMA/133 ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata2.00: ATA-7: Maxtor 7V300F0, VA111630, max UDMA/133 ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata5.00: ATA-7: Maxtor 7V300F0, VA111630, max UDMA/133 ata6: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata6.00: ATA-6: ST3160023AS, 3.00, max UDMA/133 scsi 0:0:0:0: Direct-Access ATA Maxtor 7V300F0 VA11 PQ: 0 ANSI: 5 scsi 1:0:0:0: Direct-Access ATA Maxtor 7V300F0 VA11 PQ: 0 ANSI: 5 scsi 4:0:0:0: Direct-Access ATA Maxtor 7V300F0 VA11 PQ: 0 ANSI: 5 scsi 5:0:0:0: Direct-Access ATA ST3160023AS 3.00 PQ: 0 ANSI: 5 ahci 0000:03:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps 0x3 impl SATA mode ata7: SATA max UDMA/133 cmd 0xf881c100 ctl 0x00000000 bmdma 0x00000000 irq 17 ata8: SATA max UDMA/133 cmd 0xf881c180 ctl 0x00000000 bmdma 0x00000000 irq 17 ata7: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata7.00: ATA-7: Maxtor 7V300F0, VA111900, max UDMA/133 ata8: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata8.00: ATA-7: ST3200826AS, 3.03, max UDMA/133 scsi 6:0:0:0: Direct-Access ATA Maxtor 7V300F0 VA11 PQ: 0 ANSI: 5 scsi 7:0:0:0: Direct-Access ATA ST3200826AS 3.03 PQ: 0 ANSI: 5 ata9: PATA max UDMA/100 cmd 0x00018000 ctl 0x00018402 bmdma 0x00019000 irq 16 ata10: PATA max UDMA/100 cmd 0x00018800 ctl 0x00018c02 bmdma 0x00019008 irq 16 ata9.00: ATAPI: _NEC DVD_RW ND-4571A, 1-01, max UDMA/33 ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) $ dmesg | grep irq ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) CPU 0 irqstacks, hard=c04f8000 soft=c04f0000 CPU 1 irqstacks, hard=c04f9000 soft=c04f1000 PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report 00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ata1: SATA max UDMA/133 cmd 0xf8806100 ctl 0x00000000 bmdma 0x00000000 irq 219 ata2: SATA max UDMA/133 cmd 0xf8806180 ctl 0x00000000 bmdma 0x00000000 irq 219 ata5: SATA max UDMA/133 cmd 0xf8806300 ctl 0x00000000 bmdma 0x00000000 irq 219 ata6: SATA max UDMA/133 cmd 0xf8806380 ctl 0x00000000 bmdma 0x00000000 irq 219 ata7: SATA max UDMA/133 cmd 0xf881c100 ctl 0x00000000 bmdma 0x00000000 irq 17 ata8: SATA max UDMA/133 cmd 0xf881c180 ctl 0x00000000 bmdma 0x00000000 irq 17 ata9: PATA max UDMA/100 cmd 0x00018000 ctl 0x00018402 bmdma 0x00019000 irq 16 ata10: PATA max UDMA/100 cmd 0x00018800 ctl 0x00018c02 bmdma 0x00019008 irq 16 PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1 PNP: PS/2 controller doesn't have AUX irq; using default 12 serio: i8042 KBD port at 0x60,0x64 irq 1 Starting balanced_irq ehci_hcd 0000:00:1a.7: irq 18, io mem 0xf9205000 ehci_hcd 0000:00:1d.7: irq 19, io mem 0xf9204000 uhci_hcd 0000:00:1a.0: irq 16, io base 0x0000d000 uhci_hcd 0000:00:1a.1: irq 20, io base 0x0000c000 uhci_hcd 0000:00:1d.0: irq 19, io base 0x0000c400 uhci_hcd 0000:00:1d.1: irq 17, io base 0x0000c800 uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000cc00 parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE] sky2 0000:04:00.0: v1.14 addr 0xf8000000 irq 16 Yukon-EC Ultra (0xb4) rev 2 $ sudo lspci 00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02) 00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 02) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02) 00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 02) 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2) 00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation 82801HB (ICH8) 4 port SATA AHCI Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02) 01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600 GS] (rev a1) 03:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) 03:00.1 IDE interface: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller (rev 02) 04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 13) 05:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Я так понимаю дело в новом "честном" планировщике процессов...
Кто что посоветует? Может этому планирувщику можно передать определённые параметы дабы улучшить отзывчивость системы?
--
Gentoo (1.12.10, ~x86, kernel 2.6.22-gentoo-r1 SMP)
GA-P965-S3/C2D-E6300 2.80 GHz/1Gb/SATA-2x200+4x300+1x160/GF7600GS-256/NEC-4571
- Для комментирования войдите или зарегистрируйтесь
В 22 ядре
В 22 ядре планировшик старый... =)
Так что CFS тут не причем... Хотя он и не работает практически на некоторых архитектурах типа arm и mips
___________________________________________
Gentoo GNU/Linux 2.6.22 GCC 4.1.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)
Тогда вообще
Тогда вообще мрак...
Да это чето в
Да это чето в ядре поломали. У меня CFS и теже проблемы, только можеть не так жестко как описано выше. Еще заметил что SLUB Allocator как то уж очень "эффективно" распределяет память. если запустить компиляцию проги на C++ общим весом исходников метров 10-20 c makeopts=-j8 то память отжирает будь здоров, даже своп иногда съедает(1Гб RAM+512мб swap) и cc1 потихоньку начинают отваливаться... Причем со SLAB allocator такого не наблюдается.