FW: [PATCH] qla2xxx: Fix a regression due to refactoring in interrupt handler code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



My reply to Douglas missed the scsi list, sorry about it. Resending it here.
Thanks,
Anirban

________________________________________
From: Styner, Douglas W [douglas.w.styner@xxxxxxxxx]
Sent: Tuesday, April 28, 2009 2:31 PM
To: Anirban Chakraborty; andi@xxxxxxxxxxxxxx; James.Bottomley@xxxxxxxxxxxxxxxxxxxxx
Cc: linux-scsi@xxxxxxxxxxxxxxx; Linux Driver; Ma, Chinang; Wilcox, Matthew R; willy@xxxxxxxxxxxxxxx; Tripathi, Sharad C
Subject: RE: [PATCH] qla2xxx: Fix a regression due to refactoring in interrupt handler code

> Anirban Chakraborty <anirban.chakraborty@xxxxxxxxxx> writes:
>
>From: Anirban Chakraborty [mailto:anirban.chakraborty@xxxxxxxxxx]
>Sent: Tuesday, April 28, 2009 9:28 AM
>To: Styner, Douglas W; andi@xxxxxxxxxxxxxx;
>James.Bottomley@xxxxxxxxxxxxxxxxxxxxx
>Cc: linux-scsi@xxxxxxxxxxxxxxx; linux-driver@xxxxxxxxxx
>Subject: [PATCH] qla2xxx: Fix a regression due to refactoring in interrupt
>handler code
>
>Remove unnecessary search for a response completion host when driver is
>running
>in single queue mode. This should fix the increased cycles seen in
>qla24xx_intr_handler code.
>
>Please apply.
>Thanks,
>Anirban
>
>Reported-by: Styner, Douglas W <douglas.w.styner@xxxxxxxxx>
>Signed-off-by: Anirban Chakraborty <anirban.chakraborty@xxxxxxxxxx>

There is no significant impact from this patch.  The net effect of this patch when using MSI is to replace calls to qla2x00_get_rsp_host(), which calls the in-lined function pci_get_drvdata(), with direct calls to pci_get_drvdata().  qla2x00_get_rsp_host is very inexpensive (~0.0117%), so removing does not have a significant impact.

The number of interrupts have gone up significantly between 2.6.24.2 and 2.6.30-rc3. As a matter of fact, it has gone up from 2.6.27.2, please see below,
http://markmail.org/message/f3ut7d5tqd4xsmbm#query:+page:1+mid:ueql52x45mbgnrod+state:results
I’d think that increased interrupts is definitely a reason for increase in cycles in the ISR. However, I am looking further to see if we are missing any other holes.
Thanks,
Anirban

Linux OLTP Performance summary
Kernel#            Speedup(x)   Intr/s  CtxSw/s us%     sys%    idle%   iowait%
2.6.30-rc3              1.000   30645   43027   75      25      0       0
2.6.30-rc3_qla2xxx      0.999   30737   43256   75      25      0       0

Server configurations:
Intel Xeon Quad-core 2.0GHz  2 cpus/8 cores/8 threads
64GB memory, 3 qle2462 FC HBA, 450 spindles (30 logical units)


======oprofile CPU_CLK_UNHALTED for top 30 functions
Cycles% 2.6.30-rc3                 Cycles% 2.6.30-rc3_qla2xxx
69.1925 <database>                 67.8477 <database>
1.1314 qla24xx_intr_handler        1.2426 qla24xx_start_scsi
1.0031 qla24xx_start_scsi          1.1148 qla24xx_intr_handler
0.8476 __schedule                  0.8508 kmem_cache_alloc
0.6532 kmem_cache_alloc            0.8021 __schedule
0.4490 __blockdev_direct_IO        0.5179 __blockdev_direct_IO
0.4199 __sigsetjmp                 0.4456 __sigsetjmp
0.3946 __switch_to                 0.3952 scsi_request_fn
0.3538 __list_add                  0.3817 __switch_to
0.3499 task_rq_lock                0.3716 task_rq_lock
0.3402 scsi_request_fn             0.3481 __list_add
0.3382 rb_get_reader_page          0.3380 rb_get_reader_page
0.3363 copy_user_generic_string    0.3178 ring_buffer_consume
0.3324 aio_complete                0.2993 aio_complete
0.3110 try_to_wake_up              0.2993 copy_user_generic_string
0.2877 ring_buffer_consume         0.2741 try_to_wake_up
0.2683 mod_timer                   0.2623 blk_queue_end_tag
0.2605 qla2x00_process_completed_re0.2573 lock_timer_base
0.2566 blk_queue_end_tag           0.2522 memset_c
0.2566 generic_make_request        0.2472 memmove
0.2547 tcp_sendmsg                 0.2472 qla2x00_process_completed_re
0.2372 lock_timer_base             0.2270 generic_make_request
0.2333 memmove                     0.2253 mod_timer
0.2294 memset_c                    0.2186 __make_request
0.2080 mempool_free                0.2136 scsi_device_unbusy
0.2022 generic_file_aio_read       0.2136 kmem_cache_free
0.1963 scsi_device_unbusy          0.2119 mempool_free
0.1963 plist_del                   0.2018 kref_get
0.1944 dequeue_rt_stack            0.2018 plist_del
0.1924 e1000_xmit_frame            0.1984 ipc_lock

Doug
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux