Re: [f2fs-dev] [PATCH v2] f2fs: merge two uchar variable in struct node_info to reduce memory cost

From: Changman Lee
Date: Thu Dec 18 2014 - 03:09:00 EST


On Thu, Dec 18, 2014 at 02:29:51PM +0800, Chao Yu wrote:
> Hi Changman,
>
> > -----Original Message-----
> > From: Changman Lee [mailto:cm224.lee@xxxxxxxxx]
> > Sent: Wednesday, December 17, 2014 11:09 PM
> > To: Chao Yu
> > Cc: Jaegeuk Kim; Changman Lee; linux-fsdevel@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> > Subject: Re: [f2fs-dev] [PATCH v2] f2fs: merge two uchar variable in struct node_info to reduce
> > memory cost
> >
> > Hi Yu,
> >
> > This patch is effective only in 32 bit machine. In case of 64 bit
> > machine, nat_entry will be aligned in 8 bytes due to pointer variable
> > (i.e. struct list_head). So it can't get any benefit to reduce memory
> > usage. In the case of node_info, however, it will be gain in terms of
> > memory usage.
> > Hence, I think it's not correct for commit log to describe this patch.
> >
>
> Thanks for your review! :)
>
> AFFIK, in 64 bit machine, size of struct nat_entry is 40 bytes before this patch
> apply, the reason is that our compiler will fill 3 bytes pads after flag as
> nid's offset should align to type size of nid, and then fill 7 byte pads after
> version as size of structure should align to 64 bits when the struct size is bigger
> than 64 bits.
> layout of struct nat_entry:
> |-----8 bytes-----|
> |list.next |
> |list.prev |
> |flag |nid |
> |ino |blk_addr|
> |version |
> After we apply this patch, size of struct nat_entry will be reduced to 32 bytes.
> Please correct me if I'm wrong.

Hi,

Sorry, you're right.
I miscalculated.

Thanks,

>
> Anyway, I agreed that commit log should be uptodate.
>
> Thanks,
> Yu
>
> > Thanks,
> >
> > Reviewed-by: Changman Lee <cm224.lee@xxxxxxxxxxx>
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/