_spin_unlock_irqrestore() has very high sampling rate when usingoprofile tool.

From: Peter Huang(Peng)
Date: Mon Jun 11 2012 - 01:05:32 EST


During TPC-C testing on IA64 platform, we binded LGWR process to 1 cpu, and find
that sys% is over 50%.
With oprofile we find that _spin_unlock_irqrestore() rated over 31%, and try_to_wake_up()
caused this.
I don't understand why unlock operation has high sampling rate, is there anybody know about
this?

Thanks.

-sampling result
CPU: Itanium 2, speed 1.598e+06 MHz (estimated)
Counted CPU_CYCLES events (CPU Cycles) with a unit mask of 0x00 (No unit mask) count 75000
samples % app name symbol name
53204 31.4940 vmlinux _spin_unlock_irqrestore
19788 11.7135 oracle kcrfw_redo_write
12804 7.5793 oracle $_1$kslpstevent$TAG$GLOB
12004 7.1057 vmlinux search_module_extables
8859 5.2441 vmlinux search_extable
8150 4.8244 vmlinux try_atomic_semop
6121 3.6233 vmlinux update_queue
4402 2.6058 scsi_mod /scsi_mod
3698 2.1890 vmlinux ring_buffer_consume
3069 1.8167 vmlinux default_idle
2122 1.2561 oprofile /oprofile

-callgraph
CPU: Itanium 2, speed 1.598e+06 MHz (estimated)
Counted CPU_CYCLES events (CPU Cycles) with a unit mask of 0x00 (No unit mask) count 75000
samples % image name app name symbol name
-------------------------------------------------------------------------------
1 0.0021 vmlinux vmlinux cpufreq_cpu_get
1 0.0021 vmlinux vmlinux sys_pfm_start
1 0.0021 vmlinux vmlinux try_to_del_timer_sync
1 0.0021 vmlinux vmlinux prepare_to_wait
2 0.0041 vmlinux vmlinux set_cpus_allowed_ptr
3 0.0062 vmlinux vmlinux cpu_quiet_msk
3 0.0062 vmlinux vmlinux delayacct_end
3 0.0062 vmlinux vmlinux __wake_up
4 0.0082 vmlinux vmlinux rcu_process_gp_end
4 0.0082 vmlinux vmlinux credit_entropy_bits
6 0.0123 vmlinux vmlinux __queue_work
6 0.0123 vmlinux vmlinux mod_timer
23 0.0472 vmlinux vmlinux dio_bio_end_aio
26 0.0534 vmlinux vmlinux __blockdev_direct_IO
37 0.0760 vmlinux vmlinux dio_bio_submit
38 0.0780 vmlinux vmlinux add_wait_queue_exclusive
44 0.0903 vmlinux vmlinux remove_wait_queue
165 0.3388 vmlinux vmlinux blk_run_queue
529 1.0862 vmlinux vmlinux mix_pool_bytes_extract
697 1.4312 vmlinux vmlinux blk_end_bidi_request
783 1.6077 vmlinux vmlinux aio_complete
46325 95.1193 vmlinux vmlinux try_to_wake_up
53204 31.4940 vmlinux vmlinux _spin_unlock_irqrestore
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/