From: Mike Galbraith <efault@gmx.de>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Oleg Nesterov <oleg@redhat.com>,
LKML <linux-kernel@vger.kernel.org>,
Pavel Emelyanov <xemul@parallels.com>,
Cyrill Gorcunov <gorcunov@openvz.org>,
Louis Rilling <louis.rilling@kerlabs.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH] Re: [RFC PATCH] namespaces: fix leak on fork() failure
Date: Sat, 05 May 2012 09:12:57 +0200 [thread overview]
Message-ID: <1336201977.7346.22.camel@marge.simpson.net> (raw)
In-Reply-To: <1336198093.7346.11.camel@marge.simpson.net>
On Sat, 2012-05-05 at 08:08 +0200, Mike Galbraith wrote:
> egrep 'synchronize|rcu_barrier' /trace
>
> vsftpd-7981 [003] .... 577.164997: synchronize_sched <-switch_task_namespaces
> vsftpd-7981 [003] .... 577.164998: _cond_resched <-synchronize_sched
> vsftpd-7981 [003] .... 577.164998: wait_rcu_gp <-synchronize_sched
> vsftpd-7982 [003] .... 577.166583: synchronize_sched <-switch_task_namespaces
> vsftpd-7982 [003] .... 577.166583: _cond_resched <-synchronize_sched
> vsftpd-7977 [003] .... 577.171519: rcu_barrier_sched <-rcu_barrier
> vsftpd-7977 [003] .... 577.171519: _rcu_barrier.isra.31 <-rcu_barrier_sched
> vsftpd-7977 [003] .... 577.171519: mutex_lock <-_rcu_barrier.isra.31
> vsftpd-7977 [003] .... 577.171520: __init_waitqueue_head <-_rcu_barrier.isra.31
> vsftpd-7977 [003] .... 577.171520: on_each_cpu <-_rcu_barrier.isra.31
> vsftpd-7977 [003] d... 577.171532: rcu_barrier_func <-on_each_cpu
> vsftpd-7977 [003] d... 577.171532: call_rcu_sched <-rcu_barrier_func
> vsftpd-7977 [003] .... 577.171533: wait_for_completion <-_rcu_barrier.isra.31
> ksoftirqd/3-16 [003] ..s. 577.171691: rcu_barrier_callback <-__rcu_process_callbacks
> vsftpd-7977 [003] .... 577.176443: mutex_unlock <-_rcu_barrier.isra.31
...
Ok, so CLONE_NEWPID | SIGCHLD + waitpid is a bad idea given extreme
unmount synchronization, but why does it take four softirqs? Seems this
could have gone a lot faster.
vsftpd-7977 [003] .... 577.192773: do_wait <-sys_wait4
vsftpd-7977 [003] .... 577.192773: add_wait_queue <-do_wait
vsftpd-7977 [003] .... 577.192773: _raw_spin_lock_irqsave <-add_wait_queue
vsftpd-7977 [003] d... 577.192773: _raw_spin_unlock_irqrestore <-add_wait_queue
vsftpd-7977 [003] .... 577.192774: _raw_read_lock <-do_wait
vsftpd-7977 [003] .... 577.192774: wait_consider_task <-do_wait
vsftpd-7977 [003] .... 577.192774: __task_pid_nr_ns <-wait_consider_task
vsftpd-7977 [003] .... 577.192774: pid_nr_ns <-__task_pid_nr_ns
vsftpd-7977 [003] .... 577.192774: thread_group_times <-wait_consider_task
vsftpd-7977 [003] .... 577.192775: thread_group_cputime <-thread_group_times
vsftpd-7977 [003] .... 577.192775: task_sched_runtime <-thread_group_cputime
vsftpd-7977 [003] .... 577.192775: task_rq_lock <-task_sched_runtime
vsftpd-7977 [003] .... 577.192775: _raw_spin_lock_irqsave <-task_rq_lock
vsftpd-7977 [003] d... 577.192775: _raw_spin_lock <-task_rq_lock
vsftpd-7977 [003] d... 577.192776: _raw_spin_unlock_irqrestore <-task_sched_runtime
vsftpd-7977 [003] .... 577.192776: nsecs_to_jiffies <-thread_group_times
vsftpd-7977 [003] .... 577.192776: _raw_spin_lock_irq <-wait_consider_task
vsftpd-7977 [003] .... 577.192776: release_task <-wait_consider_task
vsftpd-7977 [003] .... 577.192776: proc_flush_task <-release_task
vsftpd-7977 [003] .... 577.192777: d_hash_and_lookup <-proc_flush_task
vsftpd-7977 [003] .... 577.192777: full_name_hash <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192777: d_lookup <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192777: __d_lookup <-d_lookup
vsftpd-7977 [003] .... 577.192778: d_hash_and_lookup <-proc_flush_task
vsftpd-7977 [003] .... 577.192778: full_name_hash <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192778: d_lookup <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192778: __d_lookup <-d_lookup
vsftpd-7977 [003] .... 577.192779: d_hash_and_lookup <-proc_flush_task
vsftpd-7977 [003] .... 577.192779: full_name_hash <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192779: d_lookup <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192780: __d_lookup <-d_lookup
vsftpd-7977 [003] .... 577.192780: d_hash_and_lookup <-proc_flush_task
vsftpd-7977 [003] .... 577.192780: full_name_hash <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192780: d_lookup <-d_hash_and_lookup
vsftpd-7977 [003] .... 577.192780: __d_lookup <-d_lookup
vsftpd-7977 [003] .... 577.192781: pid_ns_release_proc <-proc_flush_task
vsftpd-7977 [003] .... 577.192781: kern_unmount <-pid_ns_release_proc
vsftpd-7977 [003] .... 577.192781: mnt_make_shortterm <-kern_unmount
vsftpd-7977 [003] .... 577.192781: vfsmount_lock_global_lock_online <-mnt_make_shortterm
vsftpd-7977 [003] .... 577.192781: _raw_spin_lock <-vfsmount_lock_global_lock_online
vsftpd-7977 [003] .... 577.192782: vfsmount_lock_global_unlock_online <-mnt_make_shortterm
vsftpd-7977 [003] .... 577.192782: mntput <-kern_unmount
vsftpd-7977 [003] .... 577.192782: mntput_no_expire <-mntput
vsftpd-7977 [003] .... 577.192782: vfsmount_lock_local_lock <-mntput_no_expire
vsftpd-7977 [003] .... 577.192782: vfsmount_lock_global_lock_online <-mntput_no_expire
vsftpd-7977 [003] .... 577.192783: _raw_spin_lock <-vfsmount_lock_global_lock_online
vsftpd-7977 [003] .... 577.192783: mnt_get_count <-mntput_no_expire
vsftpd-7977 [003] .... 577.192783: vfsmount_lock_global_unlock_online <-mntput_no_expire
vsftpd-7977 [003] .... 577.192784: mnt_get_writers.isra.12 <-mntput_no_expire
vsftpd-7977 [003] .... 577.192784: __fsnotify_vfsmount_delete <-mntput_no_expire
vsftpd-7977 [003] .... 577.192784: fsnotify_clear_marks_by_mount <-__fsnotify_vfsmount_delete
vsftpd-7977 [003] .... 577.192784: _raw_spin_lock <-fsnotify_clear_marks_by_mount
vsftpd-7977 [003] .... 577.192784: dput <-mntput_no_expire
vsftpd-7977 [003] .... 577.192784: _raw_spin_lock <-dput
vsftpd-7977 [003] .... 577.192785: free_vfsmnt <-mntput_no_expire
vsftpd-7977 [003] .... 577.192785: kfree <-free_vfsmnt
vsftpd-7977 [003] .... 577.192785: __phys_addr <-kfree
vsftpd-7977 [003] .... 577.192785: __slab_free <-kfree
vsftpd-7977 [003] .... 577.192785: free_debug_processing <-__slab_free
vsftpd-7977 [003] d... 577.192786: check_slab <-free_debug_processing
vsftpd-7977 [003] d... 577.192786: slab_pad_check.part.42 <-check_slab
vsftpd-7977 [003] d... 577.192786: on_freelist <-free_debug_processing
vsftpd-7977 [003] d... 577.192786: check_object <-free_debug_processing
vsftpd-7977 [003] d... 577.192787: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192787: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192787: set_track <-free_debug_processing
vsftpd-7977 [003] d... 577.192787: dump_trace <-save_stack_trace
vsftpd-7977 [003] d... 577.192788: print_context_stack <-dump_trace
vsftpd-7977 [003] d... 577.192791: init_object <-free_debug_processing
vsftpd-7977 [003] .... 577.192791: _raw_spin_lock_irqsave <-__slab_free
vsftpd-7977 [003] d... 577.192791: _raw_spin_unlock_irqrestore <-__slab_free
vsftpd-7977 [003] .... 577.192792: mnt_free_id.isra.20 <-free_vfsmnt
vsftpd-7977 [003] .... 577.192792: _raw_spin_lock <-mnt_free_id.isra.20
vsftpd-7977 [003] .... 577.192792: free_percpu <-free_vfsmnt
vsftpd-7977 [003] .... 577.192792: _raw_spin_lock_irqsave <-free_percpu
vsftpd-7977 [003] d... 577.192792: pcpu_free_area <-free_percpu
vsftpd-7977 [003] d... 577.192793: pcpu_chunk_slot <-pcpu_free_area
vsftpd-7977 [003] d... 577.192793: pcpu_chunk_relocate <-pcpu_free_area
vsftpd-7977 [003] d... 577.192794: pcpu_chunk_slot <-pcpu_chunk_relocate
vsftpd-7977 [003] d... 577.192794: _raw_spin_unlock_irqrestore <-free_percpu
vsftpd-7977 [003] .... 577.192794: kmem_cache_free <-free_vfsmnt
vsftpd-7977 [003] .... 577.192794: __phys_addr <-kmem_cache_free
vsftpd-7977 [003] .... 577.192794: __slab_free <-kmem_cache_free
vsftpd-7977 [003] .... 577.192794: free_debug_processing <-__slab_free
vsftpd-7977 [003] d... 577.192795: check_slab <-free_debug_processing
vsftpd-7977 [003] d... 577.192795: slab_pad_check.part.42 <-check_slab
vsftpd-7977 [003] d... 577.192795: on_freelist <-free_debug_processing
vsftpd-7977 [003] d... 577.192796: check_object <-free_debug_processing
vsftpd-7977 [003] d... 577.192796: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192796: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192796: set_track <-free_debug_processing
vsftpd-7977 [003] d... 577.192797: dump_trace <-save_stack_trace
vsftpd-7977 [003] d... 577.192797: print_context_stack <-dump_trace
vsftpd-7977 [003] d... 577.192800: init_object <-free_debug_processing
vsftpd-7977 [003] .... 577.192800: deactivate_super <-mntput_no_expire
vsftpd-7977 [003] .... 577.192800: down_write <-deactivate_super
vsftpd-7977 [003] .... 577.192801: _cond_resched <-down_write
vsftpd-7977 [003] .... 577.192801: deactivate_locked_super <-deactivate_super
vsftpd-7977 [003] .... 577.192801: proc_kill_sb <-deactivate_locked_super
vsftpd-7977 [003] .... 577.192801: kill_anon_super <-proc_kill_sb
vsftpd-7977 [003] .... 577.192801: generic_shutdown_super <-kill_anon_super
vsftpd-7977 [003] .... 577.192802: shrink_dcache_for_umount <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192802: down_read_trylock <-shrink_dcache_for_umount
vsftpd-7977 [003] .... 577.192802: shrink_dcache_for_umount_subtree <-shrink_dcache_for_umount
vsftpd-7977 [003] .... 577.192802: dentry_lru_prune <-shrink_dcache_for_umount_subtree
vsftpd-7977 [003] .... 577.192802: __d_shrink <-shrink_dcache_for_umount_subtree
vsftpd-7977 [003] .... 577.192803: iput <-shrink_dcache_for_umount_subtree
vsftpd-7977 [003] .... 577.192803: _raw_spin_lock <-_atomic_dec_and_lock
vsftpd-7977 [003] .... 577.192803: generic_delete_inode <-iput
vsftpd-7977 [003] .... 577.192803: evict <-iput
vsftpd-7977 [003] .... 577.192804: _raw_spin_lock <-evict
vsftpd-7977 [003] .... 577.192804: proc_evict_inode <-evict
vsftpd-7977 [003] .... 577.192804: truncate_inode_pages <-proc_evict_inode
vsftpd-7977 [003] .... 577.192804: truncate_inode_pages_range <-truncate_inode_pages
vsftpd-7977 [003] .... 577.192804: end_writeback <-proc_evict_inode
vsftpd-7977 [003] .... 577.192804: _cond_resched <-end_writeback
vsftpd-7977 [003] .... 577.192805: _raw_spin_lock_irq <-end_writeback
vsftpd-7977 [003] .... 577.192805: _cond_resched <-end_writeback
vsftpd-7977 [003] .... 577.192805: put_pid <-proc_evict_inode
vsftpd-7977 [003] .... 577.192805: put_pid: put_pid: NULL
vsftpd-7977 [003] .... 577.192806: pde_put <-proc_evict_inode
vsftpd-7977 [003] .... 577.192806: __remove_inode_hash <-evict
vsftpd-7977 [003] .... 577.192806: _raw_spin_lock <-__remove_inode_hash
vsftpd-7977 [003] .... 577.192806: _raw_spin_lock <-__remove_inode_hash
vsftpd-7977 [003] .... 577.192806: _raw_spin_lock <-evict
vsftpd-7977 [003] .... 577.192807: wake_up_bit <-evict
vsftpd-7977 [003] .... 577.192807: bit_waitqueue <-wake_up_bit
vsftpd-7977 [003] .... 577.192807: __phys_addr <-bit_waitqueue
vsftpd-7977 [003] .... 577.192807: __wake_up_bit <-wake_up_bit
vsftpd-7977 [003] .... 577.192807: destroy_inode <-evict
vsftpd-7977 [003] .... 577.192807: __destroy_inode <-destroy_inode
vsftpd-7977 [003] .... 577.192808: inode_has_buffers <-__destroy_inode
vsftpd-7977 [003] .... 577.192808: __fsnotify_inode_delete <-__destroy_inode
vsftpd-7977 [003] .... 577.192808: fsnotify_clear_marks_by_inode <-__fsnotify_inode_delete
vsftpd-7977 [003] .... 577.192808: _raw_spin_lock <-fsnotify_clear_marks_by_inode
vsftpd-7977 [003] .... 577.192808: proc_destroy_inode <-destroy_inode
vsftpd-7977 [003] .... 577.192808: call_rcu_sched <-proc_destroy_inode
vsftpd-7977 [003] .... 577.192809: __call_rcu <-call_rcu_sched
vsftpd-7977 [003] .... 577.192809: d_free <-shrink_dcache_for_umount_subtree
vsftpd-7977 [003] .... 577.192809: __d_free <-d_free
vsftpd-7977 [003] .... 577.192809: kmem_cache_free <-__d_free
vsftpd-7977 [003] .... 577.192809: __phys_addr <-kmem_cache_free
vsftpd-7977 [003] .... 577.192810: __slab_free <-kmem_cache_free
vsftpd-7977 [003] .... 577.192810: free_debug_processing <-__slab_free
vsftpd-7977 [003] d... 577.192810: check_slab <-free_debug_processing
vsftpd-7977 [003] d... 577.192811: slab_pad_check.part.42 <-check_slab
vsftpd-7977 [003] d... 577.192811: on_freelist <-free_debug_processing
vsftpd-7977 [003] d... 577.192812: check_object <-free_debug_processing
vsftpd-7977 [003] d... 577.192812: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192812: check_bytes_and_report <-check_object
vsftpd-7977 [003] d... 577.192812: set_track <-free_debug_processing
vsftpd-7977 [003] d... 577.192813: dump_trace <-save_stack_trace
vsftpd-7977 [003] d... 577.192813: print_context_stack <-dump_trace
vsftpd-7977 [003] d... 577.192817: init_object <-free_debug_processing
vsftpd-7977 [003] .... 577.192817: sync_filesystem <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192817: __sync_filesystem <-sync_filesystem
vsftpd-7977 [003] .... 577.192818: __sync_filesystem <-sync_filesystem
vsftpd-7977 [003] .... 577.192818: fsnotify_unmount_inodes <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192818: _raw_spin_lock <-fsnotify_unmount_inodes
vsftpd-7977 [003] .... 577.192818: evict_inodes <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192818: _raw_spin_lock <-evict_inodes
vsftpd-7977 [003] .... 577.192818: dispose_list <-evict_inodes
vsftpd-7977 [003] .... 577.192819: _raw_spin_lock <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192819: up_write <-generic_shutdown_super
vsftpd-7977 [003] .... 577.192819: free_anon_bdev <-kill_anon_super
vsftpd-7977 [003] .... 577.192819: _raw_spin_lock <-free_anon_bdev
vsftpd-7977 [003] .... 577.192820: proc_kill_sb: put_pid_ns: 0xffff8801dc56b990 count:2->1
vsftpd-7977 [003] .... 577.192820: unregister_shrinker <-deactivate_locked_super
vsftpd-7977 [003] .... 577.192820: down_write <-unregister_shrinker
vsftpd-7977 [003] .... 577.192820: _cond_resched <-down_write
vsftpd-7977 [003] .... 577.192821: up_write <-unregister_shrinker
vsftpd-7977 [003] .... 577.192821: rcu_barrier <-deactivate_locked_super
vsftpd-7977 [003] .... 577.192821: rcu_barrier_sched <-rcu_barrier
vsftpd-7977 [003] .... 577.192821: _rcu_barrier.isra.31 <-rcu_barrier_sched
vsftpd-7977 [003] .... 577.192821: mutex_lock <-_rcu_barrier.isra.31
vsftpd-7977 [003] .... 577.192821: _cond_resched <-mutex_lock
vsftpd-7977 [003] .... 577.192822: __init_waitqueue_head <-_rcu_barrier.isra.31
vsftpd-7977 [003] .... 577.192822: on_each_cpu <-_rcu_barrier.isra.31
vsftpd-7977 [003] .... 577.192822: smp_call_function <-on_each_cpu
vsftpd-7977 [003] .... 577.192822: smp_call_function_many <-smp_call_function
vsftpd-7977 [003] .... 577.192822: _raw_spin_lock_irqsave <-smp_call_function_many
vsftpd-7977 [003] d... 577.192823: _raw_spin_unlock_irqrestore <-smp_call_function_many
vsftpd-7977 [003] .... 577.192823: native_send_call_func_ipi <-smp_call_function_many
vsftpd-7977 [003] .... 577.192823: flat_send_IPI_allbutself <-native_send_call_func_ipi
vsftpd-7977 [003] d... 577.192832: rcu_barrier_func <-on_each_cpu
vsftpd-7977 [003] d... 577.192833: call_rcu_sched <-rcu_barrier_func
vsftpd-7977 [003] d... 577.192833: __call_rcu <-call_rcu_sched
vsftpd-7977 [003] .... 577.192833: wait_for_completion <-_rcu_barrier.isra.31
vsftpd-7977 [003] .... 577.192833: wait_for_common <-wait_for_completion
vsftpd-7977 [003] .... 577.192834: _cond_resched <-wait_for_common
vsftpd-7977 [003] .... 577.192834: _raw_spin_lock_irq <-wait_for_common
vsftpd-7977 [003] .... 577.192834: schedule_timeout <-wait_for_common
vsftpd-7977 [003] .... 577.192834: schedule <-schedule_timeout
vsftpd-7977 [003] .... 577.192834: __schedule <-schedule
vsftpd-7977 [003] .... 577.192835: rcu_note_context_switch <-__schedule
vsftpd-7977 [003] .... 577.192835: rcu_sched_qs <-rcu_note_context_switch
vsftpd-7977 [003] .... 577.192835: _raw_spin_lock_irq <-__schedule
vsftpd-7977 [003] d... 577.192835: deactivate_task <-__schedule
vsftpd-7977 [003] d... 577.192835: dequeue_task <-deactivate_task
vsftpd-7977 [003] d... 577.192835: update_rq_clock <-dequeue_task
vsftpd-7977 [003] d... 577.192836: dequeue_task_fair <-dequeue_task
vsftpd-7977 [003] d... 577.192836: update_curr <-dequeue_task_fair
vsftpd-7977 [003] d... 577.192836: clear_buddies <-dequeue_task_fair
vsftpd-7977 [003] d... 577.192836: hrtick_update <-dequeue_task_fair
vsftpd-7977 [003] d... 577.192836: idle_balance <-__schedule
vsftpd-7977 [003] d... 577.192837: _raw_spin_lock <-idle_balance
vsftpd-7977 [003] d... 577.192837: put_prev_task_fair <-__schedule
vsftpd-7977 [003] d... 577.192837: pick_next_task_fair <-__schedule
vsftpd-7977 [003] d... 577.192837: pick_next_task_stop <-__schedule
vsftpd-7977 [003] d... 577.192838: pick_next_task_rt <-__schedule
vsftpd-7977 [003] d... 577.192838: pick_next_task_fair <-__schedule
vsftpd-7977 [003] d... 577.192838: pick_next_task_idle <-__schedule
vsftpd-7977 [003] d... 577.192838: calc_load_account_idle <-pick_next_task_idle
<idle>-0 [003] d... 577.192839: finish_task_switch <-__schedule
<idle>-0 [003] .... 577.192839: tick_nohz_idle_enter <-cpu_idle
<idle>-0 [003] .... 577.192839: set_cpu_sd_state_idle <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.192839: tick_nohz_stop_sched_tick.isra.9 <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.192839: ktime_get <-tick_nohz_stop_sched_tick.isra.9
<idle>-0 [003] .... 577.192840: local_touch_nmi <-cpu_idle
<idle>-0 [003] d... 577.192840: enter_idle <-cpu_idle
...
<idle>-0 [003] d... 577.192840: rcu_idle_enter <-cpu_idle
<idle>-0 [003] d... 577.192841: rcu_idle_enter_common <-rcu_idle_enter
<idle>-0 [003] d... 577.192841: rcu_cpu_has_callbacks <-rcu_idle_enter_common
<idle>-0 [003] d... 577.192841: rcu_pending <-rcu_idle_enter_common
<idle>-0 [003] d... 577.192841: __rcu_pending <-rcu_pending
<idle>-0 [003] d... 577.192842: raise_softirq <-rcu_idle_enter_common
<idle>-0 [003] d... 577.192842: __raise_softirq_irqoff <-raise_softirq
<idle>-0 [003] d... 577.192842: wakeup_softirqd <-raise_softirq
<idle>-0 [003] d... 577.192842: wake_up_process <-wakeup_softirqd
...
ksoftirqd/3-16 [003] d... 577.192853: finish_task_switch <-__schedule
ksoftirqd/3-16 [003] d... 577.192853: __do_softirq <-run_ksoftirqd
ksoftirqd/3-16 [003] ..s. 577.192853: rcu_process_callbacks <-__do_softirq
ksoftirqd/3-16 [003] ..s. 577.192853: __rcu_process_callbacks <-rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.192853: rcu_process_gp_end <-__rcu_process_callbacks
ksoftirqd/3-16 [003] d.s. 577.192854: _raw_spin_trylock <-rcu_process_gp_end
ksoftirqd/3-16 [003] d.s. 577.192854: __rcu_process_gp_end.isra.5 <-rcu_process_gp_end
ksoftirqd/3-16 [003] d.s. 577.192854: _raw_spin_unlock_irqrestore <-rcu_process_gp_end
ksoftirqd/3-16 [003] ..s. 577.192855: check_for_new_grace_period <-__rcu_process_callbacks
ksoftirqd/3-16 [003] d.s. 577.192855: _raw_spin_trylock <-check_for_new_grace_period
ksoftirqd/3-16 [003] d.s. 577.192855: __note_new_gpnum.isra.27 <-check_for_new_grace_period
ksoftirqd/3-16 [003] d.s. 577.192855: _raw_spin_unlock_irqrestore <-check_for_new_grace_period
ksoftirqd/3-16 [003] ..s. 577.192855: __rcu_process_callbacks <-rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.192855: force_quiescent_state <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.192856: rcu_process_gp_end <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.192856: check_for_new_grace_period <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.192856: rcu_bh_qs <-__do_softirq
ksoftirqd/3-16 [003] d.s. 577.192856: __local_bh_enable <-__do_softirq
ksoftirqd/3-16 [003] .... 577.192856: _cond_resched <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.192857: rcu_note_context_switch <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.192857: rcu_sched_qs <-rcu_note_context_switch
ksoftirqd/3-16 [003] .... 577.192857: kthread_should_stop <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.192857: schedule_preempt_disabled <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.192857: schedule <-schedule_preempt_disabled
ksoftirqd/3-16 [003] .... 577.192858: __schedule <-schedule
...
ksoftirqd/3-16 [003] d... 577.192861: calc_load_account_idle <-pick_next_task_idle
<idle>-0 [003] d... 577.192861: finish_task_switch <-__schedule
<idle>-0 [003] .... 577.192862: tick_nohz_idle_enter <-cpu_idle
<idle>-0 [003] .... 577.192862: set_cpu_sd_state_idle <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.192862: tick_nohz_stop_sched_tick.isra.9 <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.192862: ktime_get <-tick_nohz_stop_sched_tick.isra.9
<idle>-0 [003] .... 577.192863: local_touch_nmi <-cpu_idle
<idle>-0 [003] d... 577.192863: enter_idle <-cpu_idle
<idle>-0 [003] d... 577.192863: atomic_notifier_call_chain <-enter_idle
<idle>-0 [003] d... 577.192863: notifier_call_chain <-atomic_notifier_call_chain
<idle>-0 [003] d... 577.192863: rcu_idle_enter <-cpu_idle
<idle>-0 [003] d... 577.192863: rcu_idle_enter_common <-rcu_idle_enter
<idle>-0 [003] d... 577.192864: rcu_cpu_has_callbacks <-rcu_idle_enter_common
<idle>-0 [003] d... 577.192864: cpuidle_idle_call <-cpu_idle
<idle>-0 [003] d... 577.192864: cpuidle_get_driver <-cpuidle_idle_call
<idle>-0 [003] d... 577.192864: mwait_idle <-cpu_idle
<idle>-0 [003] d... 577.196356: smp_apic_timer_interrupt <-apic_timer_interrupt
<idle>-0 [003] d... 577.196356: native_apic_mem_write <-smp_apic_timer_interrupt
<idle>-0 [003] d... 577.196357: irq_enter <-smp_apic_timer_interrupt
<idle>-0 [003] d... 577.196357: rcu_irq_enter <-irq_enter
<idle>-0 [003] d... 577.196357: rcu_idle_exit_common <-rcu_irq_enter
<idle>-0 [003] d... 577.196357: hrtimer_cancel <-rcu_idle_exit_common
...
<idle>-0 [003] d.h. 577.196366: update_process_times <-tick_sched_timer
<idle>-0 [003] d.h. 577.196366: account_process_tick <-update_process_times
<idle>-0 [003] d.h. 577.196367: run_local_timers <-update_process_times
<idle>-0 [003] d.h. 577.196367: hrtimer_run_queues <-run_local_timers
<idle>-0 [003] d.h. 577.196367: raise_softirq <-run_local_timers
<idle>-0 [003] d.h. 577.196367: __raise_softirq_irqoff <-raise_softirq
<idle>-0 [003] d.h. 577.196368: rcu_check_callbacks <-update_process_times
<idle>-0 [003] d.h. 577.196368: rcu_sched_qs <-rcu_check_callbacks
<idle>-0 [003] d.h. 577.196368: rcu_bh_qs <-rcu_check_callbacks
<idle>-0 [003] d.h. 577.196369: rcu_pending <-rcu_check_callbacks
<idle>-0 [003] d.h. 577.196369: __rcu_pending <-rcu_pending
<idle>-0 [003] d.h. 577.196369: raise_softirq <-rcu_check_callbacks
<idle>-0 [003] d.h. 577.196369: __raise_softirq_irqoff <-raise_softirq
...
<idle>-0 [003] d... 577.196376: do_softirq <-irq_exit
<idle>-0 [003] d... 577.196376: __do_softirq <-call_softirq
<idle>-0 [003] ..s. 577.196376: run_timer_softirq <-__do_softirq
<idle>-0 [003] ..s. 577.196377: hrtimer_run_pending <-run_timer_softirq
<idle>-0 [003] ..s. 577.196377: _raw_spin_lock_irq <-run_timer_softirq
<idle>-0 [003] ..s. 577.196377: rcu_bh_qs <-__do_softirq
<idle>-0 [003] ..s. 577.196378: rcu_process_callbacks <-__do_softirq
<idle>-0 [003] ..s. 577.196378: __rcu_process_callbacks <-rcu_process_callbacks
<idle>-0 [003] ..s. 577.196378: rcu_process_gp_end <-__rcu_process_callbacks
<idle>-0 [003] d.s. 577.196378: _raw_spin_trylock <-rcu_process_gp_end
<idle>-0 [003] d.s. 577.196379: __rcu_process_gp_end.isra.5 <-rcu_process_gp_end
<idle>-0 [003] d.s. 577.196379: _raw_spin_unlock_irqrestore <-rcu_process_gp_end
<idle>-0 [003] ..s. 577.196379: check_for_new_grace_period <-__rcu_process_callbacks
<idle>-0 [003] ..s. 577.196380: _raw_spin_lock_irqsave <-__rcu_process_callbacks
<idle>-0 [003] d.s. 577.196380: rcu_start_gp <-__rcu_process_callbacks
...
<idle>-0 [003] d... 577.196387: force_qs_rnp <-force_quiescent_state
<idle>-0 [003] d... 577.196388: _raw_spin_lock_irqsave <-force_qs_rnp
<idle>-0 [003] d... 577.196388: dyntick_save_progress_counter <-force_qs_rnp
<idle>-0 [003] d... 577.196388: dyntick_save_progress_counter <-force_qs_rnp
<idle>-0 [003] d... 577.196389: dyntick_save_progress_counter <-force_qs_rnp
<idle>-0 [003] d... 577.196389: dyntick_save_progress_counter <-force_qs_rnp
<idle>-0 [003] d... 577.196390: rcu_report_qs_rnp <-force_qs_rnp
<idle>-0 [003] d... 577.196390: _raw_spin_unlock_irqrestore <-rcu_report_qs_rnp
<idle>-0 [003] d... 577.196390: _raw_spin_lock <-force_quiescent_state
<idle>-0 [003] d... 577.196391: _raw_spin_unlock_irqrestore <-force_quiescent_state
<idle>-0 [003] d... 577.196391: rcu_cpu_has_callbacks <-rcu_idle_enter_common
<idle>-0 [003] d... 577.196391: raise_softirq <-rcu_idle_enter_common
<idle>-0 [003] d... 577.196391: __raise_softirq_irqoff <-raise_softirq
<idle>-0 [003] d... 577.196392: wakeup_softirqd <-raise_softirq
<idle>-0 [003] d... 577.196392: wake_up_process <-wakeup_softirqd
...
<idle>-0 [003] .N.. 577.196403: __schedule <-schedule
<idle>-0 [003] .N.. 577.196403: rcu_note_context_switch <-__schedule
<idle>-0 [003] .N.. 577.196403: rcu_sched_qs <-rcu_note_context_switch
<idle>-0 [003] .N.. 577.196403: _raw_spin_lock_irq <-__schedule
<idle>-0 [003] dN.. 577.196404: put_prev_task_idle <-__schedule
<idle>-0 [003] dN.. 577.196404: pick_next_task_fair <-__schedule
<idle>-0 [003] dN.. 577.196404: clear_buddies <-pick_next_task_fair
<idle>-0 [003] dN.. 577.196405: set_next_entity <-pick_next_task_fair
<idle>-0 [003] dN.. 577.196405: update_stats_wait_end <-set_next_entity
ksoftirqd/3-16 [003] d... 577.196406: finish_task_switch <-__schedule
ksoftirqd/3-16 [003] d... 577.196406: __do_softirq <-run_ksoftirqd
ksoftirqd/3-16 [003] ..s. 577.196406: rcu_process_callbacks <-__do_softirq
ksoftirqd/3-16 [003] ..s. 577.196407: __rcu_process_callbacks <-rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196407: rcu_process_gp_end <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196407: check_for_new_grace_period <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196408: rcu_report_qs_rdp.isra.29 <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196408: _raw_spin_lock_irqsave <-rcu_report_qs_rdp.isra.29
ksoftirqd/3-16 [003] d.s. 577.196408: rcu_report_qs_rnp <-rcu_report_qs_rdp.isra.29
ksoftirqd/3-16 [003] d.s. 577.196408: _raw_spin_unlock_irqrestore <-rcu_report_qs_rnp
ksoftirqd/3-16 [003] ..s. 577.196409: __rcu_process_callbacks <-rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196409: force_quiescent_state <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196409: rcu_process_gp_end <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196410: check_for_new_grace_period <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196410: rcu_bh_qs <-__do_softirq
ksoftirqd/3-16 [003] d.s. 577.196410: __local_bh_enable <-__do_softirq
ksoftirqd/3-16 [003] .... 577.196410: _cond_resched <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.196411: rcu_note_context_switch <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.196411: rcu_sched_qs <-rcu_note_context_switch
ksoftirqd/3-16 [003] .... 577.196411: kthread_should_stop <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.196412: schedule_preempt_disabled <-run_ksoftirqd
ksoftirqd/3-16 [003] .... 577.196412: schedule <-schedule_preempt_disabled
ksoftirqd/3-16 [003] .... 577.196412: __schedule <-schedule
ksoftirqd/3-16 [003] .... 577.196412: rcu_note_context_switch <-__schedule
...
ksoftirqd/3-16 [003] d... 577.196417: pick_next_task_idle <-__schedule
ksoftirqd/3-16 [003] d... 577.196417: calc_load_account_idle <-pick_next_task_idle
<idle>-0 [003] d... 577.196418: finish_task_switch <-__schedule
<idle>-0 [003] .... 577.196418: tick_nohz_idle_enter <-cpu_idle
<idle>-0 [003] .... 577.196419: set_cpu_sd_state_idle <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.196419: tick_nohz_stop_sched_tick.isra.9 <-tick_nohz_idle_enter
<idle>-0 [003] d... 577.196419: ktime_get <-tick_nohz_stop_sched_tick.isra.9
<idle>-0 [003] .... 577.196420: local_touch_nmi <-cpu_idle
<idle>-0 [003] d... 577.196420: enter_idle <-cpu_idle
<idle>-0 [003] d... 577.196420: atomic_notifier_call_chain <-enter_idle
<idle>-0 [003] d... 577.196420: notifier_call_chain <-atomic_notifier_call_chain
<idle>-0 [003] d... 577.196421: rcu_idle_enter <-cpu_idle
<idle>-0 [003] d... 577.196421: rcu_idle_enter_common <-rcu_idle_enter
<idle>-0 [003] d... 577.196421: rcu_cpu_has_callbacks <-rcu_idle_enter_common
<idle>-0 [003] d... 577.196421: rcu_sched_qs <-rcu_idle_enter_common
<idle>-0 [003] d... 577.196422: force_quiescent_state <-rcu_idle_enter_common
<idle>-0 [003] d... 577.196422: _raw_spin_trylock <-force_quiescent_state
<idle>-0 [003] d... 577.196422: _raw_spin_lock <-force_quiescent_state
<idle>-0 [003] d... 577.196423: force_qs_rnp <-force_quiescent_state
<idle>-0 [003] d... 577.196423: _raw_spin_lock_irqsave <-force_qs_rnp
<idle>-0 [003] d... 577.196423: rcu_implicit_dynticks_qs <-force_qs_rnp
<idle>-0 [003] d... 577.196424: rcu_report_qs_rnp <-force_qs_rnp
<idle>-0 [003] d... 577.196424: _raw_spin_lock <-rcu_report_qs_rnp
<idle>-0 [003] d... 577.196424: _raw_spin_lock <-rcu_report_qs_rnp
<idle>-0 [003] d... 577.196425: rcu_start_gp <-rcu_report_qs_rnp
<idle>-0 [003] d... 577.196425: _raw_spin_unlock_irqrestore <-rcu_start_gp
<idle>-0 [003] d... 577.196425: _raw_spin_lock_irqsave <-force_qs_rnp
<idle>-0 [003] d... 577.196426: _raw_spin_unlock_irqrestore <-force_qs_rnp
<idle>-0 [003] d... 577.196426: _raw_spin_lock <-force_quiescent_state
<idle>-0 [003] d... 577.196426: rcu_start_gp <-force_quiescent_state
...
<idle>-0 [003] dN.. 577.196443: clear_buddies <-pick_next_task_fair
<idle>-0 [003] dN.. 577.196443: set_next_entity <-pick_next_task_fair
<idle>-0 [003] dN.. 577.196443: update_stats_wait_end <-set_next_entity
ksoftirqd/3-16 [003] d... 577.196444: finish_task_switch <-__schedule
ksoftirqd/3-16 [003] d... 577.196444: __do_softirq <-run_ksoftirqd
ksoftirqd/3-16 [003] ..s. 577.196444: rcu_process_callbacks <-__do_softirq
ksoftirqd/3-16 [003] ..s. 577.196445: __rcu_process_callbacks <-rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196445: rcu_process_gp_end <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196445: check_for_new_grace_period <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196446: rcu_report_qs_rdp.isra.29 <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196446: _raw_spin_lock_irqsave <-rcu_report_qs_rdp.isra.29
ksoftirqd/3-16 [003] d.s. 577.196446: rcu_report_qs_rnp <-rcu_report_qs_rdp.isra.29
ksoftirqd/3-16 [003] d.s. 577.196446: _raw_spin_unlock_irqrestore <-rcu_report_qs_rnp
ksoftirqd/3-16 [003] ..s. 577.196447: put_cred_rcu <-__rcu_process_callbacks
ksoftirqd/3-16 [003] ..s. 577.196447: key_put <-put_cred_rcu
ksoftirqd/3-16 [003] ..s. 577.196447: key_put <-put_cred_rcu
ksoftirqd/3-16 [003] ..s. 577.196448: release_tgcred.isra.11 <-put_cred_rcu
ksoftirqd/3-16 [003] ..s. 577.196448: call_rcu_sched <-release_tgcred.isra.11
ksoftirqd/3-16 [003] ..s. 577.196448: __call_rcu <-call_rcu_sched
ksoftirqd/3-16 [003] ..s. 577.196449: free_uid <-put_cred_rcu
ksoftirqd/3-16 [003] ..s. 577.196449: kmem_cache_free <-put_cred_rcu
ksoftirqd/3-16 [003] ..s. 577.196449: __phys_addr <-kmem_cache_free
ksoftirqd/3-16 [003] ..s. 577.196450: __slab_free <-kmem_cache_free
ksoftirqd/3-16 [003] ..s. 577.196450: free_debug_processing <-__slab_free
ksoftirqd/3-16 [003] d.s. 577.196450: check_slab <-free_debug_processing
ksoftirqd/3-16 [003] d.s. 577.196451: slab_pad_check.part.42 <-check_slab
ksoftirqd/3-16 [003] d.s. 577.196451: on_freelist <-free_debug_processing
ksoftirqd/3-16 [003] d.s. 577.196451: check_object <-free_debug_processing
ksoftirqd/3-16 [003] d.s. 577.196452: check_bytes_and_report <-check_object
ksoftirqd/3-16 [003] d.s. 577.196452: check_bytes_and_report <-check_object
ksoftirqd/3-16 [003] d.s. 577.196452: set_track <-free_debug_processing
ksoftirqd/3-16 [003] d.s. 577.196453: dump_trace <-save_stack_trace
ksoftirqd/3-16 [003] d.s. 577.196453: print_context_stack <-dump_trace
ksoftirqd/3-16 [003] d.s. 577.196458: init_object <-free_debug_processing
ksoftirqd/3-16 [003] ..s. 577.196458: delayed_put_pid <-__rcu_process_callbacks
...
ksoftirqd/3-16 [003] d... 577.196570: pick_next_task_fair <-__schedule
ksoftirqd/3-16 [003] d... 577.196570: clear_buddies <-pick_next_task_fair
ksoftirqd/3-16 [003] d... 577.196570: set_next_entity <-pick_next_task_fair
ksoftirqd/3-16 [003] d... 577.196570: update_stats_wait_end <-set_next_entity
vsftpd-7977 [003] d... 577.196571: finish_task_switch <-__schedule
vsftpd-7977 [003] .... 577.196571: _raw_spin_lock_irq <-wait_for_common
vsftpd-7977 [003] .... 577.196571: mutex_unlock <-_rcu_barrier.isra.31
vsftpd-7977 [003] .... 577.196572: put_filesystem <-deactivate_locked_super
vsftpd-7977 [003] .... 577.196572: put_super <-deactivate_locked_super
next prev parent reply other threads:[~2012-05-05 7:13 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-28 9:19 [RFC PATCH] namespaces: fix leak on fork() failure Mike Galbraith
2012-04-28 14:26 ` Oleg Nesterov
2012-04-29 4:13 ` Mike Galbraith
2012-04-29 7:57 ` Eric W. Biederman
2012-04-29 9:49 ` Mike Galbraith
2012-04-29 16:58 ` Oleg Nesterov
2012-04-30 2:59 ` Eric W. Biederman
2012-04-30 3:25 ` Mike Galbraith
2012-05-02 12:40 ` Oleg Nesterov
2012-05-02 17:37 ` Eric W. Biederman
2012-04-30 3:01 ` [PATCH] " Mike Galbraith
[not found] ` <m1zk9rmyh4.fsf@fess.ebiederm.org>
2012-05-01 20:42 ` Andrew Morton
2012-05-03 3:12 ` Mike Galbraith
2012-05-03 14:56 ` Mike Galbraith
2012-05-04 4:27 ` Mike Galbraith
2012-05-04 7:55 ` Eric W. Biederman
2012-05-04 8:34 ` Mike Galbraith
2012-05-04 9:45 ` Mike Galbraith
2012-05-04 14:13 ` Eric W. Biederman
2012-05-04 14:49 ` Mike Galbraith
2012-05-04 15:36 ` Eric W. Biederman
2012-05-04 16:57 ` Mike Galbraith
2012-05-04 20:29 ` Eric W. Biederman
2012-05-05 5:56 ` Mike Galbraith
2012-05-05 6:08 ` Mike Galbraith
2012-05-05 7:12 ` Mike Galbraith [this message]
2012-05-05 11:37 ` Eric W. Biederman
2012-05-07 21:51 ` [PATCH] vfs: Speed up deactivate_super for non-modular filesystems Eric W. Biederman
2012-05-07 22:17 ` Al Viro
2012-05-07 23:56 ` Paul E. McKenney
2012-05-08 1:07 ` Eric W. Biederman
2012-05-08 4:53 ` Mike Galbraith
2012-05-09 7:55 ` Nick Piggin
2012-05-09 11:02 ` Eric W. Biederman
2012-05-09 11:02 ` Eric W. Biederman
2012-05-15 8:40 ` Nick Piggin
2012-05-16 0:34 ` Eric W. Biederman
2012-05-16 0:34 ` Eric W. Biederman
2012-05-09 13:59 ` Paul E. McKenney
2012-05-04 8:03 ` [PATCH] Re: [RFC PATCH] namespaces: fix leak on fork() failure Eric W. Biederman
2012-05-04 8:19 ` Mike Galbraith
2012-05-04 8:54 ` Mike Galbraith
2012-05-07 0:32 ` [PATCH 0/3] pidns: Closing the pid namespace exit race Eric W. Biederman
2012-05-07 0:33 ` [PATCH 1/3] pidns: Use task_active_pid_ns in do_notify_parent Eric W. Biederman
2012-05-07 0:35 ` [PATCH 2/3] pidns: Guarantee that the pidns init will be the last pidns process reaped Eric W. Biederman
2012-05-08 22:50 ` Andrew Morton
2012-05-16 18:39 ` Oleg Nesterov
2012-05-16 19:34 ` Oleg Nesterov
2012-05-16 20:54 ` Eric W. Biederman
2012-05-17 17:00 ` Oleg Nesterov
2012-05-17 21:46 ` Eric W. Biederman
2012-05-18 12:39 ` Oleg Nesterov
2012-05-19 0:03 ` Eric W. Biederman
2012-05-21 12:44 ` Oleg Nesterov
2012-05-22 0:16 ` Eric W. Biederman
2012-05-22 0:20 ` [PATCH] pidns: Guarantee that the pidns init will be the last pidns process reaped. v2 Eric W. Biederman
2012-05-22 16:54 ` Oleg Nesterov
2012-05-22 19:23 ` Andrew Morton
2012-05-23 14:52 ` Oleg Nesterov
2012-05-25 15:15 ` [PATCH -mm] pidns-guarantee-that-the-pidns-init-will-be-the-last-pidns-process-r eaped-v2-fix-fix Oleg Nesterov
2012-05-25 15:59 ` [PATCH -mm 0/1] pidns: find_new_reaper() can no longer switch to init_pid_ns.child_reaper Oleg Nesterov
2012-05-25 16:00 ` [PATCH -mm 1/1] " Oleg Nesterov
2012-05-25 21:43 ` Eric W. Biederman
2012-05-27 19:10 ` [PATCH v2 -mm 0/1] " Oleg Nesterov
2012-05-27 19:11 ` [PATCH v2 -mm 1/1] " Oleg Nesterov
2012-05-29 6:34 ` Eric W. Biederman
2012-05-25 21:25 ` [PATCH -mm] pidns-guarantee-that-the-pidns-init-will-be-the-last-pidns-process-r eaped-v2-fix-fix Eric W. Biederman
2012-05-27 18:41 ` [PATCH -mm v2] " Oleg Nesterov
2012-05-07 0:35 ` [PATCH 3/3] pidns: Make killed children autoreap Eric W. Biederman
2012-05-08 22:51 ` Andrew Morton
2012-04-30 13:57 ` [RFC PATCH] namespaces: fix leak on fork() failure Mike Galbraith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336201977.7346.22.camel@marge.simpson.net \
--to=efault@gmx.de \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=gorcunov@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=louis.rilling@kerlabs.com \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.