Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-3059

shrink lod_object to 128 bytes

    XMLWordPrintable

Details

    • -7
    • 3
    • 7456

    Description

      Before:

      struct lod_object {
              struct dt_object           ldo_obj;              /*     0    88 */
              /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
              __u16                      ldo_stripenr;         /*    88     2 */
              __u16                      ldo_layout_gen;       /*    90     2 */
              __u32                      ldo_stripe_size;      /*    92     4 */
              char *                     ldo_pool;             /*    96     8 */
              struct dt_object * *       ldo_stripe;           /*   104     8 */
              int                        ldo_stripes_allocated; /*   112     4 */
              unsigned int               ldo_striping_cached:1; /*   116:31  4 */
              unsigned int               ldo_def_striping_set:1; /*   116:30  4 */
      
              /* XXX 30 bits hole, try to pack */
      
              __u32                      ldo_def_stripe_size;  /*   120     4 */
              __u16                      ldo_def_stripenr;     /*   124     2 */
              __u16                      ldo_def_stripe_offset; /*   126     2 */
              /* --- cacheline 2 boundary (128 bytes) --- */
              mdsno_t                    ldo_mds_num;          /*   128     4 */
      
              /* size: 136, cachelines: 3, members: 13 */
              /* bit holes: 1, sum bit holes: 30 bits */
              /* padding: 4 */
              /* last cacheline: 8 bytes */
      };
      

      After:

      struct lod_object {
              struct dt_object           ldo_obj;              /*     0    88 */
              /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
              __u16                      ldo_stripenr;         /*    88     2 */
              __u16                      ldo_layout_gen;       /*    90     2 */
              __u32                      ldo_stripe_size;      /*    92     4 */
              char *                     ldo_pool;             /*    96     8 */
              struct dt_object * *       ldo_stripe;           /*   104     8 */
              unsigned int               ldo_stripes_allocated:16; /*   112:16  4 */
              unsigned int               ldo_striping_cached:1; /*   112:15  4 */
              unsigned int               ldo_def_striping_set:1; /*   112:14  4 */
      
              /* XXX 14 bits hole, try to pack */
      
              __u32                      ldo_def_stripe_size;  /*   116     4 */
              __u16                      ldo_def_stripenr;     /*   120     2 */
              __u16                      ldo_def_stripe_offset; /*   122     2 */
              mdsno_t                    ldo_mds_num;          /*   124     4 */
              /* --- cacheline 2 boundary (128 bytes) --- */
      
              /* size: 128, cachelines: 2, members: 13 */
              /* bit holes: 1, sum bit holes: 14 bits */
      };
      

      Attachments

        Issue Links

          Activity

            People

              jhammond John Hammond
              jhammond John Hammond
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: