All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Sanchez, Sebastian" <sebastian.sanchez-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"Dalessandro,
	Dennis"
	<dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org"
	<dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Marciniszyn,
	Mike" <mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: RE: [PATCH for-next 2/9] IB/hfi1: Optimize cachelines for user SDMA request structure
Date: Tue, 30 May 2017 17:55:20 +0000	[thread overview]
Message-ID: <5CDA63463B33C94CA80846587415F0770408CAF7@ORSMSX111.amr.corp.intel.com> (raw)
In-Reply-To: <20170529161657.GC17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>

>Out of curiosity, do you have pahole data before vs. after to share?

Yes, below is the pahole output for this patch.

Sebastian

---------

Before:


struct user_sdma_request {
	struct sdma_req_info       info;                 /*     0     8 */
	struct hfi1_user_sdma_pkt_q * pq;                /*     8     8 */
	struct hfi1_user_sdma_comp_q * cq;               /*    16     8 */
	struct hfi1_pkt_header     hdr;                  /*    24    64 */
	/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
	struct sdma_engine *       sde;                  /*    88     8 */
	s8                         ahg_idx;              /*    96     1 */

	/* XXX 3 bytes hole, try to pack */

	u32                        ahg[9];               /*   100    36 */
	/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
	u32                        koffset;              /*   136     4 */
	u32                        tidoffset;            /*   140     4 */
	unsigned int               data_iovs;            /*   144     4 */
	u32                        data_len;             /*   148     4 */
	unsigned int               iov_idx;              /*   152     4 */

	/* XXX 4 bytes hole, try to pack */

	struct user_sdma_iovec     iovs[8];              /*   160   512 */
	/* --- cacheline 10 boundary (640 bytes) was 32 bytes ago --- */
	u16                        n_tids;               /*   672     2 */

	/* XXX 6 bytes hole, try to pack */

	u32 *                      tids;                 /*   680     8 */
	u16                        tididx;               /*   688     2 */

	/* XXX 2 bytes hole, try to pack */

	u32                        sent;                 /*   692     4 */
	u64                        seqnum;               /*   696     8 */
	/* --- cacheline 11 boundary (704 bytes) --- */
	u64                        seqcomp;              /*   704     8 */
	u64                        seqsubmitted;         /*   712     8 */
	struct list_head           txps;                 /*   720    16 */
	long unsigned int          flags;                /*   736     8 */
	int                        status;               /*   744     4 */

	/* size: 752, cachelines: 12, members: 23 */
	/* sum members: 733, holes: 4, sum holes: 15 */
	/* padding: 4 */
	/* last cacheline: 48 bytes */
};

After:

struct user_sdma_request {
	struct hfi1_pkt_header     hdr;                  /*     0    64 */
	/* --- cacheline 1 boundary (64 bytes) --- */
	struct hfi1_user_sdma_pkt_q * pq;                /*    64     8 */
	struct hfi1_user_sdma_comp_q * cq;               /*    72     8 */
	struct sdma_engine *       sde;                  /*    80     8 */
	struct sdma_req_info       info;                 /*    88     8 */
	u32 *                      tids;                 /*    96     8 */
	u32                        data_len;             /*   104     4 */
	u16                        n_tids;               /*   108     2 */
	u8                         data_iovs;            /*   110     1 */
	s8                         ahg_idx;              /*   111     1 */

	/* XXX 16 bytes hole, try to pack */

	/* --- cacheline 2 boundary (128 bytes) --- */
	u64                        seqcomp;              /*   128     8 */
	u64                        seqsubmitted;         /*   136     8 */
	long unsigned int          flags;                /*   144     8 */
	int                        status;               /*   152     4 */

	/* XXX 36 bytes hole, try to pack */

	/* --- cacheline 3 boundary (192 bytes) --- */
	struct list_head           txps;                 /*   192    16 */
	u64                        seqnum;               /*   208     8 */
	u32                        tidoffset;            /*   216     4 */
	u32                        koffset;              /*   220     4 */
	u32                        sent;                 /*   224     4 */
	u16                        tididx;               /*   228     2 */
	u8                         iov_idx;              /*   230     1 */

	/* XXX 1 byte hole, try to pack */

	struct user_sdma_iovec     iovs[8];              /*   232   512 */
	/* --- cacheline 11 boundary (704 bytes) was 40 bytes ago --- */

	/* size: 768, cachelines: 12, members: 22 */
	/* sum members: 691, holes: 3, sum holes: 53 */
	/* padding: 24 */
};
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-05-30 17:55 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-26 12:35 [PATCH for-next 0/9] IB/core, hfi1, rdmavt: patches for next 05/19/2017 Dennis Dalessandro
     [not found] ` <20170526123257.8158.23943.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-05-26 12:35   ` [PATCH for-next 1/9] IB/hfi1: Don't remove RB entry when not needed Dennis Dalessandro
2017-05-26 12:35   ` [PATCH for-next 2/9] IB/hfi1: Optimize cachelines for user SDMA request structure Dennis Dalessandro
     [not found]     ` <20170526123517.8158.80658.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-05-29 16:16       ` Leon Romanovsky
     [not found]         ` <20170529161657.GC17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-30 17:55           ` Sanchez, Sebastian [this message]
     [not found]             ` <5CDA63463B33C94CA80846587415F0770408CAF7-8oqHQFITsIGkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2017-05-31  4:08               ` Leon Romanovsky
2017-05-26 12:35   ` [PATCH for-next 3/9] IB/hfi1: Name function prototype parameters for affinity module Dennis Dalessandro
2017-05-26 12:35   ` [PATCH for-next 4/9] IB/hfi1: Replace deprecated pci functions with new API Dennis Dalessandro
2017-05-26 12:35   ` [PATCH for-next 5/9] IB/core, rdmavt, hfi1: Send OPA cap_mask3 in trap Dennis Dalessandro
     [not found]     ` <20170526123536.8158.237.stgit-9QXIwq+3FY+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-05-29 16:14       ` Leon Romanovsky
     [not found]         ` <20170529161407.GB17751-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-30 18:32           ` Henry, Michael N
     [not found]             ` <2fc7a7d6-9ba3-2365-45e3-946f56827dd9-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-05-31  4:32               ` Leon Romanovsky
     [not found]                 ` <20170531043235.GH5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-31 17:58                   ` Vishwanathapura, Niranjana
     [not found]                     ` <20170531175821.GA29853-wPcXA7LoDC+1XWohqUldA0EOCMrvLtNR@public.gmane.org>
2017-06-01  5:55                       ` Leon Romanovsky
     [not found]                         ` <20170601055542.GQ5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-06-02  0:09                           ` Vishwanathapura, Niranjana
2017-05-26 12:35   ` [PATCH for-next 6/9] IB/hfi1: Remove atomic SDMA_REQ_SEND_DONE bit operation Dennis Dalessandro
2017-05-26 12:35   ` [PATCH for-next 7/9] IB/hfi1: Remove atomic SDMA_REQ_HAS_ERROR " Dennis Dalessandro
2017-05-26 12:35   ` [PATCH for-next 8/9] IB/hfi1: Reclassify type of messages printed for platform config logic Dennis Dalessandro
2017-05-26 12:36   ` [PATCH for-next 9/9] IB/hfi1: Fix up sdma_init function comment Dennis Dalessandro
2017-06-27 21:00   ` [PATCH for-next 0/9] IB/core, hfi1, rdmavt: patches for next 05/19/2017 Doug Ledford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5CDA63463B33C94CA80846587415F0770408CAF7@ORSMSX111.amr.corp.intel.com \
    --to=sebastian.sanchez-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mike.marciniszyn-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.