categories.py

来自「M5,一个功能强大的多处理器系统模拟器.很多针对处理器架构,性能的研究都使用它作」· Python 代码 · 共 1,042 行 · 第 1/5 页

PY
1,042
字号
func_categories = { \    # Buffer management functions    '__skb_linearize' : 'buffer',    'skb_clone' : 'buffer',    'skb_clone_fraglist' : 'buffer',    'skb_seq_read' : 'buffer',    'sock_alloc_send_skb' : 'buffer',    'sinic_rxskb_alloc' : 'buffer',    # Copy functions    'sinic_copyfrom' : 'copy',    '__copy_user' : 'copy',    'skb_copy_bits' : 'copy',    'skb_copy_datagram_iovec' : 'copy',    'sinic_vcopy_iov' : 'idle',    # Driver functions    'do_tx_done' : 'driver',    'ns83820_get_drvinfo' : 'driver',    'ns83820_get_stats' : 'driver',    'ns83820_hard_start_xmit' : 'driver',    'ns83820_open' : 'driver',    'ns83820_rx_kick' : 'driver',    'ns83820_update_stats' : 'driver',    'ns83820_irq' : 'driver',    'phy_intr' : 'driver',    'rx_irq' : 'driver',    'rx_action' : 'driver',    'sinic_intr' : 'driver',    'sinic_xmit' : 'driver',    'sinic_rxskb_new' : 'driver',    # Idle functions    'cpu_idle' : 'idle',    # Interrupt functions    'do_entInt' : 'interrupt',    'entInt' : 'interrupt',    'handle_IRQ_event' : 'interrupt',    'irq_exit' : 'interrupt',    # Other functions    'ret_from_sys_call' : 'other',    'top' : 'other',    # Stack functions    '__ip_conntrack_confirm' : 'stack',    '__ip_conntrack_find' : 'stack',    '__tcp_ack_snd_check' : 'stack',    '__tcp_checksum_complete_user' : 'stack',    'dev_queue_xmit' : 'stack',    'eth_header_cache' : 'stack',    'ether_setup' : 'stack',    'icmp_error' : 'stack',    'ip_call_ra_chain' : 'stack',    'ip_conntrack_alter_reply' : 'stack',    'ip_conntrack_tcp_update' : 'stack',    'ip_ct_find_helper' : 'stack',    'ip_finish_output' : 'stack',    'ip_finish_output2' : 'stack',    'ip_local_deliver_finish' : 'stack',    'ip_nat_setup_info' : 'stack',    'ip_rcv' : 'stack',    'ip_rcv_finish' : 'stack',    'netif_receive_skb' : 'stack',    'nf_log_packet' : 'stack',    'nf_queue' : 'stack',    'tcp_connect' : 'stack',    'tcp_data_queue' : 'stack',    'tcp_packet' : 'stack',    'tcp_read_sock' : 'stack',    'tcp_rcv_established' : 'stack',    'tcp_recvmsg' : 'stack',    'tcp_sendpage' : 'stack',    'tcp_transmit_skb' : 'stack',    'tcp_v4_do_rcv' : 'stack',    'unregister_netdevice' : 'stack',    # Syscall functions    'entSys' : 'syscall',    # User functions    'user' : 'user',    }def func_categorize(symbol):    from categories import func_categories    if symbol in func_categories:        return func_categories[symbol]    return Nonepc_categories = {    'CALL_PALrdunique_' : 'interrupt', #    'Call_Pal_Callsys' : 'interrupt', #    'Call_Pal_Rdps' : 'interrupt', #    'Call_Pal_Rdusp' : 'interrupt', #    'Call_Pal_Rti' : 'interrupt', #    'Call_Pal_Swpctx' : 'interrupt', #    'Call_Pal_Swpipl' : 'interrupt', #    'Call_Pal_Wrusp' : 'interrupt', #    'SHATransform': 'driver', # drivers/char/random.c,    'TRAP_INTERRUPT_10_' : 'interrupt', #    'Trap_Dtbmiss_Single' : 'buffer', #    'Trap_Dtbmiss_double' : 'buffer', #    'Trap_Interrupt' : 'interrupt', #    'Trap_Itbmiss' : 'buffer', #    'Trap_Unalign' : 'alignment',    'UNALIGN_NO_DISMISS' : 'alignment',    'UNALIGN_NO_DISMISS_10_' : 'alignment',    '__alloc_pages' : 'buffer', # mm/page_alloc.c,    '__anon_vma_link': 'buffer', # mm/rmap.c, include/linux/rmap.h,    '__bio_add_page' : 'other', # fs/bio.c,    '__bitmap_weight' : 'other', # lib/bitmap.c, include/linux/bitmap.h,    '__blk_put_request' : 'other', # drivers/block/ll_rw_blk.c,    '__block_commit_write' : 'other', # fs/buffer.c,    '__block_prepare_write' : 'other', # fs/buffer.c,    '__block_write_full_page': 'other', # fs/buffer.c,    '__bread' : 'other', # fs/buffer.c, include/linux/buffer_head.h,    '__brelse' : 'other', # fs/buffer.c, include/linux/buffer_head.h,    '__bss_start' : 'user',    '__bss_stop' : 'other', # include/asm-generic/sections.h,    '__cond_resched' : 'other', # kernel/sched.c, include/linux/sched.h,    '__const_udelay': 'other', # include/asm-i386/delay.h,    '__constant_c_memset' : 'other', # include/asm-alpha/string.h,    '__copy_from_user_ll': 'copy', # include/asm-i386/uaccess.h,    '__copy_to_user_ll': 'copy', # include/asm-i386/uaccess.h,    '__copy_user' : 'copy', # include/asm-alpha/uaccess.h,    '__d_lookup' : 'other', # fs/dcache.c, include/linux/dcache.h,    '__d_path': 'other', # fs/dcache.c,    '__delay': 'other', # arch/alpha/lib/udelay.c, include/asm-alpha/delay.h, include/asm-i386/delay.h,    '__dequeue_signal' : 'other', # kernel/signal.c,    '__divl' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__divlu' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__divq' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__divqu' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__do_softirq' : 'stack', # kernel/softirq.c,    '__down': 'interrupt', # include/asm-alpha/semaphore.h, include/asm-i386/semaphore.h,    '__down_failed' : 'other', # arch/alpha/kernel/semaphore.c, include/asm-alpha/semaphore.h,    '__down_trylock': 'interrupt', # include/asm-alpha/semaphore.h, include/asm-i386/semaphore.h,    '__elv_add_request' : 'other', # drivers/block/elevator.c, include/linux/elevator.h,    '__end_that_request_first' : 'other', # drivers/block/ll_rw_blk.c,    '__exit_sighand': 'other', # kernel/signal.c, include/linux/sched.h,    '__exit_signal': 'other', # kernel/signal.c, include/linux/sched.h,    '__filemap_copy_from_user_iovec' : 'buffer', # mm/filemap.c,    '__filemap_fdatawrite' : 'buffer', # mm/filemap.c,    '__find_get_block' : 'other', # fs/buffer.c, include/linux/buffer_head.h,    '__find_get_block_slow' : 'other', # fs/buffer.c,    '__fput' : 'other', # fs/file_table.c,    '__free_pages' : 'buffer', # mm/page_alloc.c,    '__free_pages_ok': 'buffer', # mm/page_alloc.c,    '__generic_file_aio_read': 'buffer', # mm/filemap.c, include/linux/fs.h,    '__generic_unplug_device' : 'other', # drivers/block/ll_rw_blk.c, include/linux/blkdev.h,    '__get_free_pages' : 'other', # mm/page_alloc.c, drivers/md/raid6.h,    '__get_page_state': 'buffer', # mm/page_alloc.c,    '__get_user_4': 'other', # include/asm-i386/uaccess.h,    '__get_zone_counts': 'other', #    '__getblk' : 'other', # fs/buffer.c, include/linux/buffer_head.h,    '__getblk_slow' : 'other', # fs/buffer.c,    '__group_complete_signal' : 'user', # kernel/signal.c,  is kinda syscall    '__group_send_sig_info' : 'user', # kernel/signal.c,  is kinda syscall    '__iget' : 'other', # fs/inode.c, include/linux/fs.h,    '__insert_inode_hash': 'other', # fs/inode.c, include/linux/fs.h,    '__insert_vm_struct': 'buffer', # mm/mmap.c,    '__ip_conntrack_confirm' : 'stack', # net/ipv4/netfilter/ip_conntrack_core.c, include/linux/netfilter_ipv4/ip_conntrack_core.h,    '__ip_conntrack_find' : 'stack', # net/ipv4/netfilter/ip_conntrack_core.c,    '__ip_ct_find_proto' : 'stack', # net/ipv4/netfilter/ip_conntrack_core.c, include/linux/netfilter_ipv4/ip_conntrack_core.h,    '__ip_route_output_key' : 'stack', # net/ipv4/route.c,    '__kfree_skb' : 'buffer', # net/core/skbuff.c, include/linux/skbuff.h,    '__kmalloc' : 'buffer', # mm/slab.c, include/linux/slab.h,    '__load_new_mm_context': 'buffer',    '__lookup': 'other', # lib/radix-tree.c,    '__lookup_hash': 'other', # fs/namei.c,    '__lookup_tag' : 'buffer', # lib/radix-tree.c,    '__make_request' : 'driver', # drivers/block/ll_rw_blk.c, drivers/block/ll_rw_blk.c,    '__mark_inode_dirty' : 'other', # fs/fs-writeback.c, include/linux/fs.h,    '__memcpy_aligned_up' : 'copy', # arch/alpha/lib/memcpy.c,    '__memcpy_unaligned_up' : 'copy', # arch/alpha/lib/memcpy.c,    '__memset' : 'copy', # include/asm-alpha/string.h,    '__mmdrop': 'other', # kernel/fork.c,    '__mod_timer' : 'other', # kernel/timer.c, include/linux/timer.h,    '__modify_IO_APIC_irq': 'interrupt', #    '__net_random': 'other', #    '__page_cache_release' : 'buffer', # mm/swap.c,    '__pagevec_free': 'buffer', # mm/page_alloc.c, include/linux/pagevec.h,    '__pagevec_lru_add' : 'buffer', # mm/swap.c, include/linux/pagevec.h,    '__pagevec_lru_add_active': 'buffer', # mm/swap.c, include/linux/pagevec.h,    '__pagevec_release' : 'buffer', # mm/swap.c, include/linux/pagevec.h,    '__pollwait' : 'other', # fs/select.c, fs/select.c,    '__pskb_trim_head': 'stack', # net/ipv4/tcp_output.c,    '__put_task_struct': 'other', # kernel/fork.c, include/linux/sched.h,    '__queue_work': 'other', # kernel/workqueue.c,    '__rb_erase_color' : 'buffer', # lib/rbtree.c,    '__rb_rotate_left' : 'buffer', # lib/rbtree.c,    '__rb_rotate_right' : 'buffer', # lib/rbtree.c,    '__rcu_process_callbacks': 'other', #    '__read_page_state' : 'buffer', # mm/page_alloc.c, include/linux/page-flags.h,    '__release_sock' : 'stack', # net/core/sock.c,    '__remlu' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__remove_from_page_cache': 'buffer', # mm/filemap.c, include/linux/pagemap.h,    '__remove_shared_vm_struct': 'buffer', # mm/mmap.c,    '__remqu' : 'other', # arch/alpha/kernel/alpha_ksyms.c,    '__rmqueue' : 'buffer', # mm/page_alloc.c,    '__scsi_done' : 'other', # drivers/scsi/scsi.c, drivers/scsi/scsi_priv.h,    '__scsi_get_command' : 'other', # drivers/scsi/scsi.c,    '__set_page_buffers' : 'other', # fs/buffer.c,    '__set_page_dirty_nobuffers' : 'buffer', # mm/page-writeback.c, include/linux/mm.h,    '__sk_stream_mem_reclaim' : 'buffer', # net/core/stream.c,    '__sock_create': 'stack', # net/socket.c,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?