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

Reply via email to