Andrew Morton wrote on Wednesday, March 09, 2005 2:45 PM > > > > > Did you generate a kernel profile? > > > > Top 40 kernel hot functions, percentage is normalized to kernel > > utilization. > > > > _spin_unlock_irqrestore 23.54% > > _spin_unlock_irq 19.27% > > Cripes. > > Is that with CONFIG_PREEMPT? If so, and if you disable CONFIG_PREEMPT, > this cost should be accounting the the spin_unlock() caller and we can see > who the culprit is. Perhaps dio->bio_lock.
CONFIG_PREEMPT is off. Sorry for all the confusion, I probably shouldn't post the first profile to confuse people. See 2nd profile that I posted earlier (copied here again). scsi_request_fn 7.54% finish_task_switch 6.25% __blockdev_direct_IO 4.97% __make_request 3.87% scsi_end_request 3.54% dio_bio_end_io 2.70% follow_hugetlb_page 2.39% __wake_up 2.37% aio_complete 1.82% kmem_cache_alloc 1.68% __mod_timer 1.63% e1000_clean 1.57% __generic_file_aio_read 1.42% mempool_alloc 1.37% put_page 1.35% e1000_intr 1.31% schedule 1.25% dio_bio_complete 1.20% scsi_device_unbusy 1.07% kmem_cache_free 1.06% __copy_user 1.04% scsi_dispatch_cmd 1.04% __end_that_request_first1.04% generic_make_request 1.02% kfree 0.94% __aio_get_req 0.93% sys_pread64 0.83% get_request 0.79% put_io_context 0.76% dnotify_parent 0.73% vfs_read 0.73% update_atime 0.73% finished_one_bio 0.63% generic_file_aio_write_nolock 0.63% scsi_put_command 0.62% break_fault 0.62% e1000_xmit_frame 0.62% aio_read_evt 0.59% scsi_io_completion 0.59% inode_times_differ 0.58% - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/