>- This kernel has an x86 patch which alters the copy_*_user() functions so > they will return -EFAULT on a fault rather than the number of bytes which > remain to be copied. This is a bit of an experiment, because this seems to > be the preferred API for those functions. It's a see-what-breaks thing. > Things appear to broke. Sometimes kernel starts to spit page allocation failures into log for few minutes, despite memory beeing available: total used free shared buffers cached Mem: 255244 251436 3808 0 16812 44068 -/+ buffers/cache: 190556 64688 Swap: 262136 148924 113212 Previously I've used -mm2 which worked fine. The failures seem network related, I have e1000 and few rules in iptables. > And things will break. If weird behaviour is observed, please revert > usercopy-return-EFAULT.patch and send a report. I am unable to reboot now, so I won't check it. :( My config attached just in case. Here what's now in my dmesg: >] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 mplayer: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] ide_build_sglist+0x2d/0xa0 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] preempt_schedule+0x25/0x40 [] copy_from_user+0x34/0x70 [] snd_pcm_lib_write_transfer+0x95/0xa0 [] snd_pcm_lib_write1+0x2f2/0x520 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 colorize.pl: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] do_no_page+0x68/0x370 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] do_generic_mapping_read+0x2cf/0x450 [] activate_task+0xb9/0xe0 [] try_to_wake_up+0xac/0xb0 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] rtc_interrupt+0xad/0x120 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_proc_dointvec+0x13b/0x320 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 mplayer: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] need_resched+0x27/0x32 [] copy_from_user+0x34/0x70 [] snd_pcm_lib_write_transfer+0x95/0xa0 [] snd_pcm_lib_write1+0x2f2/0x520 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 colorize.pl: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] do_no_page+0x68/0x370 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] do_generic_mapping_read+0x2cf/0x450 [] __generic_file_aio_read+0x1b2/0x230 [] file_read_actor+0x0/0xf0 [] dput+0x89/0x290 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 swapper: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] try_to_wake_up+0xac/0xb0 [] autoremove_wake_function+0x1b/0x50 [] __wake_up_common+0x37/0x70 [] end_bio_bh_io_sync+0x0/0x50 [] mempool_free+0x4c/0xb0 [] end_bio_bh_io_sync+0x0/0x50 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 [] acpi_processor_idle+0xd0/0x1bf [] acpi_processor_idle+0x0/0x1bf [] acpi_ps_is_prefix_char+0x3/0x12 [] cpu_idle+0x2d/0x40 [] start_kernel+0x143/0x160 [] unknown_bootoption+0x0/0x170 swapper: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __kfree_skb+0xab/0x150 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] rtc_interrupt+0xad/0x120 [] handle_IRQ_event+0x30/0x60 [] do_IRQ+0xb0/0x130 [] common_interrupt+0x18/0x20 [] __tcp_select_window+0xb6/0x160 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 [] acpi_processor_idle+0xd0/0x1bf [] acpi_processor_idle+0x1ba/0x1bf [] cpu_idle+0x2d/0x40 [] start_kernel+0x143/0x160 [] unknown_bootoption+0x0/0x170 swapper: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] activate_task+0xb9/0xe0 [] try_to_wake_up+0xac/0xb0 [] activate_task+0xb9/0xe0 [] tcp_cwnd_restart+0x23/0x100 [] tcp_transmit_skb+0x3d8/0x6e0 [] activate_task+0xb9/0xe0 [] tcp_write_wakeup+0x13b/0x250 [] tcp_write_timer+0x0/0xf0 [] tcp_send_probe0+0x18/0x100 [] tcp_write_timer+0xcf/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] do_timer+0x5f/0xe0 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] do_IRQ+0x106/0x130 [] common_interrupt+0x18/0x20 [] acpi_processor_idle+0xaf/0x1bf [] cpu_idle+0x2d/0x40 [] start_kernel+0x143/0x160 [] unknown_bootoption+0x0/0x170 fetchmail: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] common_interrupt+0x18/0x20 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_write_xmit+0x146/0x2c0 [] sock_def_readable+0x67/0x70 [] tcp_data_queue+0x939/0xa50 [] __tcp_data_snd_check+0x4e/0xf0 [] tcp_rcv_established+0x405/0x7b0 [] tcp_v4_do_rcv+0xf0/0x100 [] tcp_v4_rcv+0x7ad/0x8c0 [] ip_nat_fn+0x88/0x2a0 [] ip_local_deliver_finish+0x0/0x1c0 [] ip_local_deliver_finish+0x7c/0x1c0 [] nf_hook_slow+0xff/0x120 [] ip_local_deliver_finish+0x0/0x1c0 [] ip_local_deliver+0x1a8/0x250 [] ip_local_deliver_finish+0x0/0x1c0 [] ip_rcv_finish+0x1f8/0x2b0 [] nf_iterate+0x55/0xa0 [] ip_rcv_finish+0x0/0x2b0 [] ip_rcv_finish+0x0/0x2b0 [] nf_hook_slow+0xff/0x120 [] ip_rcv_finish+0x0/0x2b0 [] ip_rcv_finish+0x0/0x2b0 [] ip_rcv+0x38f/0x490 [] ip_rcv_finish+0x0/0x2b0 [] tcp_transmit_skb+0x3d8/0x6e0 [] netif_receive_skb+0x1cd/0x200 [] process_backlog+0x7e/0x120 [] net_rx_action+0x61/0x100 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] local_bh_enable+0x79/0x90 [] tcp_close+0x115/0x580 [] inet_release+0x34/0x60 [] sock_release+0x8b/0xe0 [] sock_close+0x1e/0x40 [] __fput+0x116/0x150 [] filp_close+0x48/0x90 [] syscall_call+0x7/0xb psmouse.c: Wheel Mouse at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away. fetchmail: page allocation failure. order:3, mode:0x20 [] __alloc_pages+0x359/0x380 [] __get_free_pages+0x18/0x40 [] kmem_getpages+0x19/0xb0 [] cache_grow+0xb6/0x190 [] cache_alloc_refill+0x213/0x250 [] __kmalloc+0x5c/0x60 [] alloc_skb+0x41/0xf0 [] skb_copy+0x28/0xc0 [] skb_checksum_help+0x56/0x170 [] ip_nat_fn+0x177/0x2a0 [] ip_nat_local_fn+0x6e/0xb0 [] dst_output+0x0/0x20 [] nf_iterate+0x55/0xa0 [] dst_output+0x0/0x20 [] dst_output+0x0/0x20 [] nf_hook_slow+0x78/0x120 [] dst_output+0x0/0x20 [] ip_queue_xmit+0x30d/0x530 [] dst_output+0x0/0x20 [] ip_local_deliver_finish+0x0/0x1c0 [] ip_local_deliver_finish+0x14e/0x1c0 [] ip_local_deliver_finish+0x0/0x1c0 [] nf_hook_slow+0x10a/0x120 [] ip_local_deliver_finish+0x0/0x1c0 [] ip_local_deliver+0x1a8/0x250 [] ip_local_deliver_finish+0x0/0x1c0 [] tcp_v4_send_check+0x54/0x110 [] tcp_transmit_skb+0x3d8/0x6e0 [] tcp_retransmit_skb+0x1b9/0x300 [] tcp_retransmit_timer+0xed/0x420 [] activate_task+0xb9/0xe0 [] tcp_write_timer+0x0/0xf0 [] tcp_write_timer+0xc6/0xf0 [] run_timer_softirq+0xcc/0x1b0 [] net_rx_action+0x61/0x100 [] __do_softirq+0x40/0x90 [] do_softirq+0x27/0x30 [] local_bh_enable+0x79/0x90 [] tcp_close+0x115/0x580 [] inet_release+0x34/0x60 [] sock_release+0x8b/0xe0 [] sock_close+0x1e/0x40 [] __fput+0x116/0x150 [] filp_close+0x48/0x90 [] syscall_call+0x7/0xb psmouse.c: Wheel Mouse at isa0060/serio1/input0 lost synchronization, throwing 1 bytes away. -- Tomasz Torcz "Never underestimate the bandwidth of a station zdzichu@irc.-nie.spam-.pl wagon filled with backup tapes." -- Jim Gray