Thread (12 messages) 12 messages, 8 authors, 2019-07-03

Re: [PATCH V2] include: linux: Regularise the use of FIELD_SIZEOF macro

From: Andreas Dilger <hidden>
Date: 2019-06-11 21:00:18
Also in: bpf, dri-devel, intel-gfx, kvm, linux-arm-kernel, linux-ext4, linux-mips, linux-mm, linux-sctp, lkml

On Jun 11, 2019, at 2:48 PM, Andrew Morton [off-list ref] wrote:
On Wed, 12 Jun 2019 01:08:36 +0530 Shyam Saini [off-list ref] wrote:
quoted
Currently, there are 3 different macros, namely sizeof_field, SIZEOF_FIELD
and FIELD_SIZEOF which are used to calculate the size of a member of
structure, so to bring uniformity in entire kernel source tree lets use
FIELD_SIZEOF and replace all occurrences of other two macros with this.

For this purpose, redefine FIELD_SIZEOF in include/linux/stddef.h and
tools/testing/selftests/bpf/bpf_util.h and remove its defination from
include/linux/kernel.h

In favour of FIELD_SIZEOF, this patch also deprecates other two similar
macros sizeof_field and SIZEOF_FIELD.

For code compatibility reason, retain sizeof_field macro as a wrapper macro
to FIELD_SIZEOF
As Alexey has pointed out, C structs and unions don't have fields -
they have members.  So this is an opportunity to switch everything to
a new member_sizeof().

What do people think of that and how does this impact the patch footprint?
I did a check, and FIELD_SIZEOF() is used about 350x, while sizeof_field()
is about 30x, and SIZEOF_FIELD() is only about 5x.

That said, I'm much more in favour of "sizeof_field()" or "sizeof_member()"
than FIELD_SIZEOF().  Not only does that better match "offsetof()", with
which it is closely related, but is also closer to the original "sizeof()".

Since this is a rather trivial change, it can be split into a number of
patches to get approval/landing via subsystem maintainers, and there is no
huge urgency to remove the original macros until the users are gone.  It
would make sense to remove SIZEOF_FIELD() and sizeof_field() quickly so
they don't gain more users, and the remaining FIELD_SIZEOF() users can be
whittled away as the patches come through the maintainer trees.

Cheers, Andreas




Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help