From: David Laight <David.Laight@ACULAB.COM>
To: 'Alexei Starovoitov' <alexei.starovoitov@gmail.com>,
Alejandro Colomar <alx.manpages@gmail.com>,
bpf <bpf@vger.kernel.org>
Cc: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>,
linux-man <linux-man@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>,
"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: RE: [RFC] bpf.2: Use standard types and attributes
Date: Sat, 24 Apr 2021 20:43:30 +0000 [thread overview]
Message-ID: <78af3c302dd5447887f4a14cd4629119@AcuMS.aculab.com> (raw)
In-Reply-To: <CAADnVQLf4qe3Hj7cjBUCY4wXb9t2ZjUt=Z=JuygRY0LNNHWAoA@mail.gmail.com>
From: Alexei Starovoitov
> Sent: 24 April 2021 00:20
>
> On Fri, Apr 23, 2021 at 4:15 PM Alejandro Colomar
> <alx.manpages@gmail.com> wrote:
> >
> > Some manual pages are already using C99 syntax for integral
> > types 'uint32_t', but some aren't. There are some using kernel
> > syntax '__u32'. Fix those.
> >
> > Some pages also document attributes, using GNU syntax
> > '__attribute__((xxx))'. Update those to use the shorter and more
> > portable C2x syntax, which hasn't been standardized yet, but is
> > already implemented in GCC, and available through either --std=c2x
> > or any of the --std=gnu... options.
> >
> > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> > ---
> > man2/bpf.2 | 47 +++++++++++++++++++++++------------------------
> > 1 file changed, 23 insertions(+), 24 deletions(-)
> >
> > diff --git a/man2/bpf.2 b/man2/bpf.2
> > index 6e1ffa198..204f01bfc 100644
> > --- a/man2/bpf.2
> > +++ b/man2/bpf.2
> > @@ -188,39 +188,38 @@ commands:
> > .EX
> > union bpf_attr {
> > struct { /* Used by BPF_MAP_CREATE */
> > - __u32 map_type;
> > - __u32 key_size; /* size of key in bytes */
> > - __u32 value_size; /* size of value in bytes */
> > - __u32 max_entries; /* maximum number of entries
> > - in a map */
> > + uint32_t map_type;
> > + uint32_t key_size; /* size of key in bytes */
> > + uint32_t value_size; /* size of value in bytes */
> > + uint32_t max_entries; /* maximum number of entries
> > + in a map */
>
> Nack.
> The man page should describe the kernel api the way it is in .h file.
And the code below is no more portable that a #pragma'.
It is probably worse than __attribute__((aligned(8)))
+ uint64_t [[gnu::aligned(8)]] value;
The standards committee are smoking dope again.
At least the '__aligned_u64 value;' form stands a reasonable
chance of being converted by cpp into whatever your compiler supports.
OTOH the bfp developers want shooting for defining a structure
with hidden padding fields.
It they ensured that all 64bit fields were aligned they wouldn't
need the __aligned_u64 at all.
And would be much less likely to leak kernel stack to userspace.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2021-04-24 20:43 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-23 23:06 [RFC] bpf.2: Use standard types and attributes Alejandro Colomar
2021-04-23 23:20 ` Alexei Starovoitov
2021-04-24 17:56 ` Alejandro Colomar (man-pages)
2021-04-25 16:52 ` Alexei Starovoitov
2021-04-25 19:12 ` Zack Weinberg
2021-04-24 20:43 ` David Laight [this message]
2021-04-25 19:16 ` Zack Weinberg
2021-04-25 21:09 ` David Laight
2021-04-26 17:19 ` Joseph Myers
2021-04-26 17:46 ` Alejandro Colomar (man-pages)
2021-05-04 11:05 ` [RFC v2] " Alejandro Colomar
2021-05-04 14:12 ` Alexei Starovoitov
2021-05-04 14:24 ` Greg KH
2021-05-04 15:53 ` Alejandro Colomar (man-pages)
2021-05-04 16:06 ` Greg KH
2021-05-04 18:37 ` Zack Weinberg
2021-05-04 18:54 ` Alejandro Colomar (man-pages)
2021-05-04 19:45 ` Florian Weimer
2021-05-04 19:59 ` Alejandro Colomar (man-pages)
2021-05-05 8:23 ` David Laight
2021-05-05 22:22 ` Joseph Myers
2021-05-04 20:06 ` Daniel Borkmann
2021-05-04 20:16 ` Alejandro Colomar (man-pages)
2021-05-04 20:33 ` Zack Weinberg
2021-05-04 21:23 ` Alexei Starovoitov
2021-05-15 19:01 ` [PATCH v3] " Alejandro Colomar
2021-05-16 9:16 ` Alejandro Colomar (man-pages)
2021-05-17 18:56 ` Daniel Borkmann
2021-05-21 11:12 ` Alejandro Colomar
2021-05-04 16:08 ` [RFC v2] " Daniel Borkmann
2022-08-24 18:55 ` [PATCH v3] Many pages: Document fixed-width types with ISO C naming Alejandro Colomar
2022-08-24 22:40 ` Alexei Starovoitov
2022-08-24 23:36 ` Alejandro Colomar
2022-08-25 0:52 ` Linus Torvalds
2022-08-25 7:20 ` Alejandro Colomar
2022-08-25 7:28 ` Xi Ruoyao
2022-08-25 7:48 ` Alejandro Colomar
2022-08-25 8:09 ` Xi Ruoyao
2022-08-25 7:42 ` Linus Torvalds
2022-08-25 7:59 ` Alejandro Colomar
2022-08-25 5:57 ` Greg Kroah-Hartman
2022-08-25 6:41 ` Florian Weimer
2022-08-25 7:27 ` Linus Torvalds
2022-08-25 14:38 ` Joseph Myers
2022-08-25 15:01 ` David Laight
2022-08-25 15:37 ` Joseph Myers
2022-08-25 16:43 ` Linus Torvalds
2022-08-25 7:44 ` Alejandro Colomar
2022-08-25 8:04 ` Alejandro Colomar
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=78af3c302dd5447887f4a14cd4629119@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=alexei.starovoitov@gmail.com \
--cc=alx.manpages@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=libc-alpha@sourceware.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).