do_softirq(): very high value with readprofile

From: Manfred Spraul (manfreds@colorfullife.com)
Date: Sat Mar 11 2000 - 08:11:12 EST


I did some profiling:
* apache-2.0
* linux-2.3.51, spinlock & waitqueue debugging disabled
* serving one static 100 byte file to 20 clients
* no modules, everything static
* kernel compiled with egcs-1.12 for Pentium/TSC
* PCI ne2000.
* Dual PII/350

linux-2.2.14: ~500 files/sec
linux-2.3.51: ~850 files/sec
W2K: ~ 1000 files/sec

I've attached a 'readprofile' dump, and the do_softirq() value is far to
high: ~ 20%!

I checked the asm output, and everything seemed to be ok.
softirq_state is correct [active=0, mask=15 for all cpu's].

--
	Manfred

4 startup_32 0.0244 1796 default_idle 34.5385 2 cpu_idle 0.0278 6 __switch_to 0.0294 2 __down 0.0075 3 __write_lock_failed 0.1071 1 __read_lock_failed 0.0357 2 sys_rt_sigsuspend 0.0076 1 restore_sigcontext 0.0023 1 setup_sigcontext 0.0033 5 setup_frame 0.0121 3 handle_signal 0.0115 14 do_signal 0.0201 31 system_call 0.5536 1 ret_from_sys_call 0.0385 2 ret_with_reschedule 0.1250 3 restore_all 0.2143 1 error_code 0.0179 4 page_fault 0.3333 115 enable_irq 0.6250 155 save_v86_state 0.3837 6 do_gettimeofday 0.0484 3 old_mmap 0.0076 32 flush_tlb_others 0.1159 1 flush_tlb_current_task 0.0179 1 flush_tlb_mm 0.0074 1 do_check_pgt_cache 0.0031 4 do_page_fault 0.0042 8 send_sig_info 0.0110 2 kill_something_info 0.0069 3 sys_rt_sigprocmask 0.0065 47 schedule 0.0207 40 __wake_up 0.0549 1 interruptible_sleep_on 0.0086 9 wake_up_process 0.0154 1 supplemental_group_member 0.0208 2 in_group_p 0.0500 1 sys_gettimeofday 0.0068 1008 do_softirq 7.4118 2 add_timer 0.0086 16 mod_timer 0.0656 8 del_timer_sync 0.0667 3 zap_page_range 0.0060 4 do_no_page 0.0208 1 handle_mm_fault 0.0023 9 do_mmap_pgoff 0.0092 1 get_unmapped_area 0.0089 1 avl_rebalance 0.0028 6 avl_remove 0.0273 8 find_vma 0.0800 5 find_vma_prev 0.0291 1 free_pgtables 0.0071 7 do_munmap 0.0119 2 sys_munmap 0.0333 3 insert_vm_struct 0.0080 6 __find_get_page 0.0146 1 filemap_nopage 0.0011 4 generic_file_mmap 0.0312 21 kmem_cache_alloc 0.0583 17 kmem_cache_free 0.0409 68 kmalloc 0.1650 63 kfree 0.1358 17 __free_pages_ok 0.0287 25 __alloc_pages 0.0327 2 free_page_and_swap_cache 0.0156 10 get_unused_fd 0.0253 4 sys_open 0.0105 3 filp_close 0.0288 13 do_close 0.0428 1 sys_close 0.0625 3 sys_lseek 0.0082 3 sys_read 0.0112 5 sys_write 0.0187 18 get_empty_filp 0.0511 1 init_private_file 0.0093 4 _fput 0.0222 1 put_filp 0.0125 2 file_move 0.0312 1 cp_new_stat 0.0030 5 sys_newstat 0.0260 4 getname 0.0141 5 permission 0.0184 2 reserved_lookup 0.0278 1 cached_lookup 0.0119 3 do_follow_link 0.0234 14 lookup_dentry 0.0282 1 __namei 0.0078 1 open_namei 0.0015 1 setfl 0.0089 44 sys_fcntl 0.0724 1 alloc_wait 0.0027 7 free_wait 0.0337 5 __pollwait 0.0403 4 max_select_fd 0.0213 18 do_select 0.0238 10 sys_select 0.0073 15 do_pollfd 0.0560 1 do_poll 0.0050 5 sys_poll 0.0041 1 locks_wake_up_blocks 0.0096 26 fcntl_setlk 0.0586 1 locks_remove_posix 0.0068 1 locks_remove_flock 0.0064 9 posix_make_lock 0.0381 21 posix_lock_file 0.0256 2 locks_empty_lock 0.1250 4 locks_init_lock 0.0323 3 locks_insert_lock 0.0682 5 locks_delete_lock 0.0446 9 dput 0.0274 2 d_alloc 0.0061 7 d_lookup 0.0330 1 clear_inode 0.0046 1 get_empty_inode 0.0066 4 iput 0.0063 1 write_profile 0.0060 1 secure_tcp_sequence_number 0.0046 82 ei_start_xmit 0.0765 33 NS8390_trigger_send 0.2661 324 ne2k_pci_block_output 0.6983 1 move_addr_to_user 0.0119 1 sock_map_fd 0.0047 3 sockfd_lookup 0.0160 2 sock_sendmsg 0.0122 3 sock_recvmsg 0.0170 2 sock_write 0.0116 2 sock_poll 0.0147 1 sock_close 0.0064 7 sock_fasync 0.0104 1 sock_wake_async 0.0078 1 sock_create 0.0037 1 sys_setsockopt 0.0081 4 sys_socketcall 0.0085 6 sock_wfree 0.1154 1 sock_rfree 0.0625 10 sock_wmalloc 0.1250 3 sock_alloc_send_skb 0.0167 1 sock_def_wakeup 0.0167 3 sock_def_write_space 0.0242 4 alloc_skb 0.0096 8 kfree_skbmem 0.0588 27 __kfree_skb 0.0951 8 skb_clone 0.0317 1 memcpy_toiovec 0.0093 9 dev_queue_xmit 0.0230 14 net_tx_action 0.0530 23 net_rx_action 0.0386 18 qdisc_restart 0.0469 11 pfifo_fast_enqueue 0.0982 8 pfifo_fast_dequeue 0.0952 13 ip_route_input 0.0361 13 ip_route_output 0.0406 1 unlink_from_unused 0.0093 5 inet_getpeer 0.0096 14 ip_local_deliver 0.0443 13 ip_rcv 0.0150 3 ip_build_and_send_pkt 0.0074 6 ip_output 0.0214 14 ip_queue_xmit 0.0141 4 ip_build_xmit 0.0052 1 ip_reply_glue_bits 0.0051 5 tcp_poll 0.0174 7 tcp_write_space 0.0603 1 tcp_listen_write_space 0.2500 17 tcp_sendmsg 0.0068 2 cleanup_rbuf 0.0069 12 tcp_recvmsg 0.0058 2 tcp_destroy_sock 0.0045 13 tcp_close 0.0078 6 tcp_accept 0.0144 5 tcp_setsockopt 0.0038 3 tcp_event_data_recv 0.0090 4 tcp_update_metrics 0.0118 2 tcp_init_metrics 0.0055 5 tcp_parse_options 0.0105 1 tcp_fast_retrans 0.0019 11 tcp_clean_rtx_queue 0.0340 3 tcp_ack_saw_tstamp 0.0101 13 tcp_ack 0.0113 1 tcp_paws_check 0.0132 1 tcp_timewait_state_process 0.0013 5 __tcp_tw_hashdance 0.0179 3 tcp_time_wait 0.0058 1 tcp_data 0.0040 8 tcp_rcv_established 0.0038 15 tcp_create_openreq_child 0.0136 6 tcp_check_req 0.0069 1 tcp_child_process 0.0071 17 tcp_rcv_state_process 0.0075 25 tcp_transmit_skb 0.0170 4 tcp_send_skb 0.0081 1 tcp_sync_mss 0.0078 3 tcp_write_xmit 0.0045 7 __tcp_select_window 0.0486 2 tcp_send_fin 0.0025 4 tcp_make_synack 0.0042 1 tcp_send_ack 0.0069 2 tcp_init_xmit_timers 0.0096 14 tcp_reset_xmit_timer 0.0368 5 tcp_clear_xmit_timers 0.0240 9 tcp_tw_schedule 0.0237 2 tcp_reset_keepalive_timer 0.0161 2 tcp_put_port 0.0122 2 tcp_unhash 0.0093 2 __tcp_v4_lookup_listener 0.0185 1 tcp_v4_search_req 0.0068 2 tcp_v4_synq_add 0.0096 4 tcp_v4_send_check 0.0400 2 tcp_v4_send_ack 0.0064 2 tcp_v4_timewait_ack 0.0278 2 tcp_v4_route_req 0.0132 2 tcp_v4_send_synack 0.0106 5 tcp_v4_conn_request 0.0047 10 tcp_v4_syn_recv_sock 0.0134 1 tcp_v4_hnd_req 0.0026 8 tcp_v4_checksum_init 0.0303 8 tcp_v4_do_rcv 0.0312 28 tcp_v4_rcv 0.0198 3 tcp_v4_remember_stamp 0.0112 3 tcp_v4_tw_remember_stamp 0.0156 2 inet_sock_release 0.0135 1 inet_release 0.0125 7 inet_accept 0.0199 3 inet_getname 0.0242 1 inet_sendmsg 0.0147 1 ip_mc_drop_socket 0.0086 7 csum_partial 0.0449 8 csum_partial_copy_generic 0.0364 5 __generic_copy_to_user 0.0833 4 __generic_copy_from_user 0.0667 6 strncpy_from_user 0.0750 5029 total 0.0050

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:19 EST