fusion: Add free msg frames to the head, not tail of list
authorMatthew Wilcox <matthew.r.wilcox@intel.com>
Thu, 27 Mar 2014 20:40:35 +0000 (16:40 -0400)
committerChristoph Hellwig <hch@lst.de>
Wed, 28 May 2014 16:13:24 +0000 (18:13 +0200)
Reusing a msg frame quickly means it's still cache-hot.  This yields
a small but noticable performance improvement in a well-known database
benchmark.  This improvement is already present in the mpt3sas driver.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/message/fusion/mptbase.c

index 570b18a113ffca813d2588dfc02c879e626fae9e..ebc0af7d769c01699aa8077b4231a5f61fc86ec2 100644 (file)
@@ -1037,7 +1037,7 @@ mpt_free_msg_frame(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
                goto out;
        /* signature to know if this mf is freed */
        mf->u.frame.linkage.arg1 = cpu_to_le32(0xdeadbeaf);
-       list_add_tail(&mf->u.frame.linkage.list, &ioc->FreeQ);
+       list_add(&mf->u.frame.linkage.list, &ioc->FreeQ);
 #ifdef MFCNT
        ioc->mfcnt--;
 #endif