I've sent the following to Andrea Arcangeli. The problem only occurred when kswapd0 was active, so a previous attempt at git-bisecting where I didn't force swapping didn't work. In the following case I was aided by the release of ALSA 1.0.24, which I compiled against each git-bisect attempt and kept ALSA constant whilst varying the kernel. [forwarded email follows] I'm experiencing MIDI playback slow-downs when I'm observing kswapd0 active (a few percent of cpu in top output) in recent kernels. I git-bisected the problem down to: commit 5a03b051ed87e72b959f32a86054e1142ac4cf55 Author: Andrea Arcangeli <aarcange@xxxxxxxxxx> Date: Thu Jan 13 15:47:11 2011 -0800 thp: use compaction in kswapd for GFP_ATOMIC order > 0 This takes advantage of memory compaction to properly generate pages of order > 0 if regular page reclaim fails and priority level becomes more severe and we don't reach the proper watermarks. Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> :040000 040000 d67655e822b77c982c0622b9f4fd747af45e4a3e 07b6d3365382d8d5f9afd7e2 56ec5439a0835b72 M include :040000 040000 307802493526b8b5555fe109a6e0654e24af7a84 48f409b4b07bc2c680f86a23 bdda7f5ced0fe436 M mm I ran git-bisect over the weekend, building and installing ALSA 1.0.24 with each kernel. After identifying the above commit, I rebuilt the 2.6 head with that commit reverted and verified that the problem was no longer present. MIDI playback was via aplaymidi -p 17:0 to a Soundblaster Audigy 2 ZS (SB0350) wavetable. The machine has a Pentium II-266 CPU, 440BX chipset on a Biostar M6TBC motherboard, and RAM is at the maximum supported amount, 384 MiB. Output from "sh ver_linux": If some fields are empty or look unusual you may have an old version. Compare to the current minimal requirements in Documentation/Changes. Linux victoria 2.6.37+ #14 SMP Sun Feb 20 18:46:21 CST 2011 i686 GNU/Linux Gnu C 4.4.5 Gnu make 3.81 binutils 2.20.1 util-linux ver_linux: line 23: fdformat: command not found mount support module-init-tools found Linux C Library 2.11.2 Dynamic linker (ldd) 2.11.2 Procps 3.2.8 Kbd 1.15.2 Sh-utils 8.5 Modules Loaded snd_hrtimer tun parport_pc ppdev lp parport binfmt_misc decnet microcode fuse nls_utf8 nls_cp437 vfat fat snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_emul snd_emu10k1 snd_ac97_codec ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_util_mem snd_hwdep snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi radeon snd_seq_midi_event snd_seq ttm snd_timer drm_kms_helper snd_seq_device drm snd i2c_algo_bit power_supply i2c_piix4 shpchp psmouse i2c_core emu10k1_gp soundcore evdev gameport snd_page_alloc pci_hotplug serio_raw pcspkr ext3 jbd mbcache raid1 md_mod sg sr_mod usb_storage sd_mod cdrom ata_generic crc_t10dif uas ata_piix libata uhci_hcd ehci_hcd eata usbcore scsi_mod 8139too firewire_ohci 8139cp firewire_core mii crc_itu_t nls_base ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Alsa-user mailing list Alsa-user@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user