With the ATI bug I was hitting earlier fixed, only my btrfs partition continues to show high cpu usage for some operations.
Rsync, git pull, git checkout and svn up are typicall operations which trigger the high cpu usage. As an example, this perf report is from using git checkout to change to a new branch; the change needed to checkout 208 files out of about 1600 total files. du(1) reports that the checkout is about 14 megs; the alternates for that tree have about 60 megs of git packs. As you can see btrfs_find_space_cluster(), find_next_bit() and find_next_zero_bit() use most of the sys cpu. That patterns seems to hold whenever I run perf top during such operations. Box is x86_32, pentium3m.
# Samples: 11372 # # Overhead Command Shared Object Symbol # ........ ....... .................. ...... # 42.75% git [kernel] [k] btrfs_find_space_cluster 34.59% git [kernel] [k] find_next_bit 14.01% git [kernel] [k] find_next_zero_bit 0.76% git libz.so.1.2.3 [.] inflate_fast 0.42% git [kernel] [k] find_extent_buffer 0.34% git [kernel] [k] find_free_extent 0.28% git git [.] blk_SHA1_Block 0.26% git libz.so.1.2.3 [.] adler32 0.26% git [kernel] [k] test_range_bit 0.23% git [kernel] [k] scsi_dispatch_cmd 0.22% git [kernel] [k] div64_u64 0.21% git [kernel] [k] generic_bin_search 0.20% git [kernel] [k] __do_softirq 0.16% git [kernel] [k] get_page_from_freelist 0.16% git [ehci_hcd] [k] 0x00000000003c25 0.15% git [kernel] [k] read_extent_buffer 0.14% git [kernel] [k] btrfs_return_cluster_to_free_space 0.12% git [kernel] [k] btrfs_search_slot 0.12% git [kernel] [k] map_private_extent_buffer 0.11% git [kernel] [k] btrfs_clear_path_blocking 0.11% git [kernel] [k] set_extent_bit 0.11% git [kernel] [k] tree_search_offset 0.11% git [kernel] [k] __copy_from_user_ll 0.11% git git [.] patch_delta 0.08% git [kernel] [k] kmem_cache_alloc 0.08% git [kernel] [k] btrfs_alloc_from_cluster 0.08% git [kernel] [k] memmove 0.07% git [kernel] [k] __queue_work 0.07% git [kernel] [k] __extent_read_full_page 0.07% git [kernel] [k] alloc_extent_buffer 0.07% git [kernel] [k] scsi_request_fn 0.06% git libz.so.1.2.3 [.] inflate_table 0.06% git [kernel] [k] btrfs_unlock_up_safe 0.06% git [kernel] [k] memcpy_extent_buffer 0.06% git [kernel] [k] tree_insert 0.06% git [kernel] [k] __make_request 0.05% git [kernel] [k] block_group_cache_tree_search 0.05% git [kernel] [k] verify_parent_transid 0.05% git [kernel] [k] map_extent_buffer 0.04% git [kernel] [k] btrfs_header_nritems 0.04% git [kernel] [k] btrfs_tree_unlock 0.04% git [kernel] [k] do_page_fault 0.04% git libz.so.1.2.3 [.] .L207 0.04% git libz.so.1.2.3 [.] .L213 0.04% git git [.] cache_name_compare 0.04% git [kernel] [k] __rcu_process_callbacks 0.04% git [kernel] [k] __set_page_dirty_nobuffers 0.04% git [kernel] [k] kmem_cache_alloc_notrace 0.04% git [kernel] [k] bin_search 0.04% git [kernel] [k] unlock_up 0.04% git [kernel] [k] btrfs_reserve_extent 0.04% git [kernel] [k] btrfs_item_offset 0.04% git [kernel] [k] unmap_extent_buffer 0.04% git [kernel] [k] radix_tree_lookup_slot 0.04% git [kernel] [k] __lookup 0.04% git [kernel] [k] rb_erase 0.04% git [kernel] [k] tcp_transmit_skb 0.03% git libc-2.11.so [.] _int_malloc 0.03% git git [.] make_traverse_path 0.03% git [kernel] [k] __wake_up_bit 0.03% git [kernel] [k] handle_IRQ_event 0.03% git [kernel] [k] filemap_fault 0.03% git [kernel] [k] __remove_mapping 0.03% git [kernel] [k] __d_lookup 0.03% git [kernel] [k] btrfs_release_path 0.03% git [kernel] [k] btrfs_lock_root_node 0.03% git [kernel] [k] btrfs_put_block_group 0.03% git [kernel] [k] __btrfs_free_extent 0.03% git [kernel] [k] btrfs_mark_buffer_dirty 0.03% git [kernel] [k] inode_tree_add 0.03% git [kernel] [k] __tree_search 0.03% git [kernel] [k] btrfs_key_blockptr 0.03% git [kernel] [k] try_release_extent_buffer 0.03% git [kernel] [k] btrfs_tree_lock 0.03% git [kernel] [k] spin_unlock 0.03% git [kernel] [k] find_ref_head 0.03% git [kernel] [k] rb_next 0.02% git libc-2.11.so [.] _IO_vfprintf_internal 0.02% git libc-2.11.so [.] _IO_default_xsputn_internal 0.02% git git [.] git_checkattr 0.02% git git [.] df_name_compare 0.02% git git [.] write_index 0.02% git git [.] unpack_callback 0.02% git git [.] twoway_merge 0.02% git [vdso] [.] 0x000000ffffe425 0.02% git [kernel] [k] check_for_new_grace_period 0.02% git [kernel] [k] __rcu_read_unlock 0.02% git [kernel] [k] unlock_page 0.02% git [kernel] [k] add_to_page_cache_locked 0.02% git [kernel] [k] release_pages 0.02% git [kernel] [k] unmap_vmas 0.02% git [kernel] [k] find_vma 0.02% git [kernel] [k] kfree 0.02% git [kernel] [k] fd_install 0.02% git [kernel] [k] pipe_read 0.02% git [kernel] [k] do_lookup 0.02% git [kernel] [k] link_path_walk 0.02% git [kernel] [k] dput 0.02% git [kernel] [k] inode_init_always 0.02% git [kernel] [k] find_inode 0.02% git [kernel] [k] __btrfs_cow_block 0.02% git [kernel] [k] btrfs_reduce_alloc_profile 0.02% git [kernel] [k] lookup_inline_extent_backref 0.02% git [kernel] [k] btree_read_extent_buffer_pages 0.02% git [kernel] [k] btrfs_inode_sequence 0.02% git [kernel] [k] free_extent_buffer 0.02% git [kernel] [k] merge_state 0.02% git [kernel] [k] insert_state 0.02% git [kernel] [k] clear_extent_bit 0.02% git [kernel] [k] write_extent_buffer 0.02% git [kernel] [k] btrfs_clear_lock_blocking 0.02% git [kernel] [k] security_inode_alloc 0.02% git [kernel] [k] chksum_update 0.02% git [kernel] [k] generic_make_request 0.02% git [kernel] [k] get_request 0.02% git [kernel] [k] yenta_interrupt 0.02% git [kernel] [k] acpi_pm_read 0.01% git libz.so.1.2.3 [.] .L212 0.01% git libz.so.1.2.3 [.] .L211 0.01% git libc-2.11.so [.] __GI_getenv 0.01% git libc-2.11.so [.] _itoa_word 0.01% git libc-2.11.so [.] __GI_fflush 0.01% git libc-2.11.so [.] __fopen_internal 0.01% git libc-2.11.so [.] __calloc 0.01% git libc-2.11.so [.] __GI_strlen 0.01% git ld-2.11.so [.] _dl_relocate_object 0.01% git git [.] convert_to_working_tree 0.01% git git [.] checkout_entry 0.01% git git [.] add_name_hash 0.01% git git [.] display 0.01% git git [.] verify_path 0.01% git git [.] ce_write 0.01% git git [.] read_index_from 0.01% git git [.] add_entry 0.01% git git [.] git_inflate 0.01% git [kernel] [k] ptregs_execve 0.01% git [kernel] [k] run_timer_softirq 0.01% git [kernel] [k] mod_timer 0.01% git [kernel] [k] wake_up_bit 0.01% git [kernel] [k] prepare_to_wait 0.01% git [kernel] [k] __rcu_read_lock 0.01% git [kernel] [k] rcu_start_gp 0.01% git [kernel] [k] rcu_process_callbacks 0.01% git [kernel] [k] mempool_alloc 0.01% git [kernel] [k] __alloc_pages_nodemask 0.01% git [kernel] [k] free_hot_cold_page 0.01% git [kernel] [k] activate_page 0.01% git [kernel] [k] mark_page_accessed 0.01% git [kernel] [k] ____pagevec_lru_add 0.01% git [kernel] [k] __lru_cache_add 0.01% git [kernel] [k] lru_add_drain 0.01% git [kernel] [k] put_page 0.01% git [kernel] [k] invalidate_mapping_pages 0.01% git [kernel] [k] page_add_new_anon_rmap 0.01% git [kernel] [k] generic_fillattr 0.01% git [kernel] [k] cp_new_stat64 0.01% git [kernel] [k] path_init 0.01% git [kernel] [k] path_put 0.01% git [kernel] [k] path_to_nameidata 0.01% git [kernel] [k] path_walk 0.01% git [kernel] [k] do_unlinkat 0.01% git [kernel] [k] _d_rehash 0.01% git [kernel] [k] d_alloc 0.01% git [kernel] [k] hash 0.01% git [kernel] [k] iput 0.01% git [kernel] [k] inode_init_once 0.01% git [kernel] [k] clear_inode 0.01% git [kernel] [k] ifind 0.01% git [kernel] [k] bio_alloc_bioset 0.01% git [kernel] [k] locks_remove_posix 0.01% git [kernel] [k] dtSearch 0.01% git [kernel] [k] metapage_get_blocks 0.01% git [kernel] [k] check_block 0.01% git [kernel] [k] btrfs_set_path_blocking 0.01% git [kernel] [k] btrfs_alloc_path 0.01% git [kernel] [k] read_block_for_search 0.01% git [kernel] [k] update_ref_for_cow 0.01% git [kernel] [k] read_node_slot 0.01% git [kernel] [k] btrfs_leaf_free_space 0.01% git [kernel] [k] btrfs_insert_empty_items 0.01% git [kernel] [k] pin_down_bytes 0.01% git [kernel] [k] update_block_group 0.01% git [kernel] [k] run_one_delayed_ref 0.01% git [kernel] [k] btrfs_free_extent 0.01% git [kernel] [k] btrfs_find_block_group 0.01% git [kernel] [k] btrfs_lookup_dir_index_item 0.01% git [kernel] [k] btrfs_lookup_inode 0.01% git [kernel] [k] btrfs_find_tree_block 0.01% git [kernel] [k] btrfs_set_buffer_uptodate 0.01% git [kernel] [k] btrfs_find_create_tree_block 0.01% git [kernel] [k] btrfs_buffer_uptodate 0.01% git [kernel] [k] clean_tree_block 0.01% git [kernel] [k] wait_current_trans 0.01% git [kernel] [k] __btrfs_end_transaction 0.01% git [kernel] [k] start_transaction 0.01% git [kernel] [k] btrfs_set_page_dirty 0.01% git [kernel] [k] init_btrfs_i 0.01% git [kernel] [k] btrfs_merge_bio_hook 0.01% git [kernel] [k] btrfs_get_extent 0.01% git [kernel] [k] btrfs_add_link 0.01% git [kernel] [k] btrfs_delete_inode 0.01% git [kernel] [k] btrfs_clear_bit_hook 0.01% git [kernel] [k] lookup_extent_mapping 0.01% git [kernel] [k] btrfs_file_extent_num_bytes 0.01% git [kernel] [k] btrfs_dir_name_len 0.01% git [kernel] [k] btrfs_dir_data_len 0.01% git [kernel] [k] btrfs_key_generation 0.01% git [kernel] [k] btrfs_timespec_nsec 0.01% git [kernel] [k] btrfs_timespec_sec 0.01% git [kernel] [k] btrfs_inode_mode 0.01% git [kernel] [k] btrfs_inode_nbytes 0.01% git [kernel] [k] btrfs_set_item_size 0.01% git [kernel] [k] btrfs_set_item_offset 0.01% git [kernel] [k] btrfs_set_extent_flags 0.01% git [kernel] [k] btrfs_set_timespec_sec 0.01% git [kernel] [k] btrfs_set_inode_block_group 0.01% git [kernel] [k] extent_io_tree_init 0.01% git [kernel] [k] set_page_extent_mapped 0.01% git [kernel] [k] free_extent_state 0.01% git [kernel] [k] split_state 0.01% git [kernel] [k] spin_unlock 0.01% git [kernel] [k] memset_extent_buffer 0.01% git [kernel] [k] memcmp_extent_buffer 0.01% git [kernel] [k] extent_buffer_uptodate 0.01% git [kernel] [k] set_extent_buffer_uptodate 0.01% git [kernel] [k] __btrfs_map_block 0.01% git [kernel] [k] btrfs_map_bio 0.01% git [kernel] [k] bitmap_clear_bits 0.01% git [kernel] [k] btrfs_find_space_for_alloc 0.01% git [kernel] [k] btrfs_find_ref_cluster 0.01% git [kernel] [k] add_delayed_tree_ref 0.01% git [kernel] [k] cap_d_instantiate 0.01% git [kernel] [k] blk_rq_init 0.01% git [kernel] [k] radix_tree_lookup 0.01% git [kernel] [k] rb_insert_color 0.01% git [kernel] [k] rb_prev 0.01% git [kernel] [k] sha_transform 0.01% git [kernel] [k] strncpy_from_user 0.01% git [kernel] [k] copy_to_user 0.01% git [kernel] [k] tty_write 0.01% git [kernel] [k] __scsi_release_buffers 0.01% git [kernel] [k] scsi_io_completion 0.01% git [kernel] [k] ata_sff_interrupt 0.01% git [kernel] [k] mdio_ctrl_hw 0.01% git [kernel] [k] sock_alloc_send_pskb 0.01% git [kernel] [k] tcp_event_data_recv 0.01% git [kernel] [k] __tcp_select_window 0.01% git [kernel] [k] tcp_v4_send_check 0.01% git [kernel] [k] tcp_v4_rcv 0.01% git [kernel] [k] _cond_resched 0.01% git [kernel] [k] mutex_trylock # # (For a higher level overview, try: perf report --sort comm,dso) #
-JimC -- James Cloos <cl...@jhcloos.com> OpenPGP: 1024D/ED7DAEA6