OpenCloudOS-Kernel/drivers/scsi/fcoe
Neil Horman 95fdd5e980 [SCSI] fcoe: Cleanup locking on fcoe_percpu_receive_thread
Noticed that we can shuffle the code around in fcoe_percpu_receive_thread a bit
and avoid taking the fcoe_rx_list lock twice per iteration.  This should improve
throughput somewhat.  With this change we take the lock, and check for new
frames in a single critical section.  Only if the list is empty do we drop the
lock and re-acquire it after being signaled to wake up.

Change Notes:
v2) did some further cleanup on the patch by replacing the 2nd call of
spin_lock/splice_init with a goto to the top of the outer loop.  This allows me
to change the inner while loop to an if conditional and remove the sencond check
of kthread_should_stop.  Based on suggestion from Vasu Dev.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-07-20 08:58:55 +01:00
..
Makefile [SCSI] libfcoe: Add fcoe_sysfs 2012-05-23 09:40:09 +01:00
fcoe.c [SCSI] fcoe: Cleanup locking on fcoe_percpu_receive_thread 2012-07-20 08:58:55 +01:00
fcoe.h [SCSI] fcoe: Allocate fcoe_ctlr with fcoe_interface, not as a member 2012-05-23 09:36:27 +01:00
fcoe_ctlr.c [SCSI] libfc, fcoe, bnx2fc: cleanup fcoe_dev_stats 2012-07-20 08:31:47 +01:00
fcoe_sysfs.c [SCSI] fcoe: Remove redundant 'less than zero' check 2012-07-20 08:58:55 +01:00
fcoe_transport.c [SCSI] libfcoe: Fix section mismatch 2012-07-20 08:58:20 +01:00
libfcoe.h [SCSI] libfcoe: add implementation to support fcoe transport 2011-02-12 11:06:06 -06:00