lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 1 Oct 2019 16:23:19 -0300
From:   Arnaldo Carvalho de Melo <arnaldo.melo@...il.com>
To:     Alan Stern <stern@...land.harvard.edu>
Cc:     Ingo Molnar <mingo@...nel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        Jiri Olsa <jolsa@...nel.org>,
        Namhyung Kim <namhyung@...nel.org>,
        Clark Williams <williams@...hat.com>,
        linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
        Arnaldo Carvalho de Melo <acme@...hat.com>,
        Adrian Hunter <adrian.hunter@...el.com>,
        Brendan Gregg <brendan.d.gregg@...il.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Luis Cláudio Gonçalves <lclaudio@...hat.com>
Subject: Re: [PATCH 06/24] tools headers uapi: Sync linux/usbdevice_fs.h with
 the kernel sources

Em Tue, Oct 01, 2019 at 09:59:55AM -0400, Alan Stern escreveu:
> On Tue, 1 Oct 2019, Arnaldo Carvalho de Melo wrote:
> 
> > From: Arnaldo Carvalho de Melo <acme@...hat.com>
> > 
> > To pick up the changes from:
> > 
> >   4ed3350539aa ("USB: usbfs: Add a capability flag for runtime suspend")
> >   7794f486ed0b ("usbfs: Add ioctls for runtime power management")
> > 
> > This triggers these changes in the kernel sources, automagically
> > supporting these new ioctls in the 'perf trace' beautifiers.
> > 
> > Soon this will be used in things like filter expressions for tracepoints
> > in 'perf record', 'perf trace', 'perf top', i.e. filter expressions will
> > do a lookup to turn things like USBDEVFS_WAIT_FOR_RESUME into _IO('U',
> > 35) before associating the tracepoint expression to tracepoint perf
> > event.
> > 
> >   $ tools/perf/trace/beauty/usbdevfs_ioctl.sh  > before
> >   $ cp include/uapi/linux/usbdevice_fs.h tools/include/uapi/linux/usbdevice_fs.h
> >   $ git diff
> >   diff --git a/tools/include/uapi/linux/usbdevice_fs.h b/tools/include/uapi/linux/usbdevice_fs.h
> >   index 78efe870c2b7..cf525cddeb94 100644
> >   --- a/tools/include/uapi/linux/usbdevice_fs.h
> >   +++ b/tools/include/uapi/linux/usbdevice_fs.h
> >   @@ -158,6 +158,7 @@ struct usbdevfs_hub_portinfo {
> >    #define USBDEVFS_CAP_MMAP                      0x20
> >    #define USBDEVFS_CAP_DROP_PRIVILEGES           0x40
> >    #define USBDEVFS_CAP_CONNINFO_EX               0x80
> >   +#define USBDEVFS_CAP_SUSPEND                   0x100
> > 
> >    /* USBDEVFS_DISCONNECT_CLAIM flags & struct */
> > 
> >   @@ -223,5 +224,8 @@ struct usbdevfs_streams {
> >     * extending size of the data returned.
> >     */
> >    #define USBDEVFS_CONNINFO_EX(len)  _IOC(_IOC_READ, 'U', 32, len)
> >   +#define USBDEVFS_FORBID_SUSPEND    _IO('U', 33)
> >   +#define USBDEVFS_ALLOW_SUSPEND     _IO('U', 34)
> >   +#define USBDEVFS_WAIT_FOR_RESUME   _IO('U', 35)
> > 
> >    #endif /* _UAPI_LINUX_USBDEVICE_FS_H */
> >   $ tools/perf/trace/beauty/usbdevfs_ioctl.sh  > after
> >   $ diff -u before after
> >   --- before	2019-09-27 11:41:50.634867620 -0300
> >   +++ after	2019-09-27 11:42:07.453102978 -0300
> >   @@ -24,6 +24,9 @@
> >    	[30] = "DROP_PRIVILEGES",
> >    	[31] = "GET_SPEED",
> >    	[32] = "CONNINFO_EX",
> >   +	[33] = "FORBID_SUSPEND",
> >   +	[34] = "ALLOW_SUSPEND",
> >   +	[35] = "WAIT_FOR_RESUME",
> >    	[3] = "RESETEP",
> >    	[4] = "SETINTERFACE",
> >    	[5] = "SETCONFIGURATION",
> >   $
> > 
> > This addresses the following perf build warning:
> > 
> >   Warning: Kernel ABI header at 'tools/include/uapi/linux/usbdevice_fs.h' differs from latest version at 'include/uapi/linux/usbdevice_fs.h'
> >   diff -u tools/include/uapi/linux/usbdevice_fs.h include/uapi/linux/usbdevice_fs.h
> 
> This may sound silly, and undoubtedly the question has been asked 
> before.  Nevertheless...
> 
> Why go to the time and trouble to detect differences between 
> tools/include/uapi/linux/usbdevice_fs.h and 
> include/uapi/linux/usbdevice_fs.h?  Why not just make the first a 
> symbolic link to the second?  Or get rid of the first entirely, and 
> change the source code so that it #include's the second?

We can't use anything from outside tools/perf/ to build it, sometimes
things get changed by kernel developers and tooling breaks.

Another reason is that we want to be able to do:

[acme@...co perf]$ make help | grep perf
  perf-tar-src-pkg    - Build perf-5.3.0.tar source tarball
  perf-targz-src-pkg  - Build perf-5.3.0.tar.gz source tarball
  perf-tarbz2-src-pkg - Build perf-5.3.0.tar.bz2 source tarball
  perf-tarxz-src-pkg  - Build perf-5.3.0.tar.xz source tarball
[acme@...co perf]$

Take that tarball, transfer it to an older system and still have it
building and working.

We also use the build warnings as hints that something needs to be
changed in tooling to pick up new kernel features, such as new ioctls,
syscall arguments to handle in 'perf trace', etc.

- Arnaldo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ