All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
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)

  parent reply	other threads:[~2021-04-24 20:43 UTC|newest]

Thread overview: 68+ 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 ` [LTP] [PATCH v3] Many pages: Document fixed-width types with ISO C naming Alejandro Colomar
2022-08-24 18:55   ` Alejandro Colomar
2022-08-24 22:40   ` Alexei Starovoitov
2022-08-24 22:40     ` [LTP] " Alexei Starovoitov
2022-08-24 23:36     ` Alejandro Colomar
2022-08-24 23:36       ` [LTP] " Alejandro Colomar
2022-08-25  0:52       ` Linus Torvalds
2022-08-25  0:52         ` Linus Torvalds
2022-08-25  7:20         ` [LTP] " Alejandro Colomar
2022-08-25  7:20           ` Alejandro Colomar
2022-08-25  7:28           ` Xi Ruoyao
2022-08-25  7:28             ` [LTP] " Xi Ruoyao via ltp
2022-08-25  7:48             ` Alejandro Colomar
2022-08-25  7:48               ` Alejandro Colomar
2022-08-25  8:09               ` Xi Ruoyao
2022-08-25  8:09                 ` [LTP] " Xi Ruoyao via ltp
2022-08-25  7:42           ` Linus Torvalds
2022-08-25  7:42             ` Linus Torvalds
2022-08-25  7:59             ` [LTP] " Alejandro Colomar
2022-08-25  7:59               ` Alejandro Colomar
2022-08-25  5:57       ` [LTP] " Greg Kroah-Hartman
2022-08-25  5:57         ` Greg Kroah-Hartman
2022-08-25  6:41         ` Florian Weimer
2022-08-25  6:41           ` [LTP] " Florian Weimer
2022-08-25  7:27           ` Linus Torvalds
2022-08-25  7:27             ` [LTP] " Linus Torvalds
2022-08-25 14:38             ` Joseph Myers
2022-08-25 14:38               ` [LTP] " Joseph Myers
2022-08-25 15:01               ` David Laight
2022-08-25 15:01                 ` David Laight
2022-08-25 15:37                 ` Joseph Myers
2022-08-25 15:37                   ` [LTP] " Joseph Myers
2022-08-25 16:43               ` Linus Torvalds
2022-08-25 16:43                 ` Linus Torvalds
2022-08-25  7:44         ` [LTP] " Alejandro Colomar
2022-08-25  7:44           ` Alejandro Colomar
2022-08-25  8:04           ` [LTP] " 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 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.