• Vasu Dev's avatar
    [SCSI] fcoe: reduces lock cost when adding a new skb to fcoe_pending_queue · 4bb6b515
    Vasu Dev authored
    Currently fcoe_pending_queue.lock held twice for every new skb
    adding to this queue when already least one pkt is pending in this
    queue and that is not uncommon once skb pkts starts getting queued
    here upon fcoe_start_io => dev_queue_xmit failure.
    
    This patch moves most fcoe_pending_queue logic to fcoe_check_wait_queue
    function, this new logic grabs fcoe_pending_queue.lock only once to
    add a new skb instead twice as used to be.
    
    I think after this patch call flow around fcoe_check_wait_queue
    calling in fcoe_xmit is bit simplified with modified
    fcoe_check_wait_queue function taking care of adding and
    removing pending skb in one function.
    Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
    4bb6b515
fcoe.c 45.1 KB