OSDN Git Service

tools headers UAPI: Sync drm/drm.h with the kernel
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 22 May 2019 13:26:12 +0000 (10:26 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 28 May 2019 12:52:11 +0000 (09:52 -0300)
commit9903c64f0fe7fa4829c948fa0e742f578e084548
tree1b87bd3d50d0559239a6f72e14d236005c998d25
parente6aff9f8bfbecd4610ce0e2f4811cea42494dc62
tools headers UAPI: Sync drm/drm.h with the kernel

To pick up the changes in these csets:

  060cebb20cdb ("drm: introduce a capability flag for syncobj timeline support")
  50d1ebef79ef ("drm/syncobj: add timeline signal ioctl for syncobj v5")
  ea569910cbab ("drm/syncobj: add transition iotcls between binary and timeline v2")
  27b575a9aa2f ("drm/syncobj: add timeline payload query ioctl v6")
  01d6c3578379 ("drm/syncobj: add support for timeline point wait v8")
  783195ec1cad ("drm/syncobj: disable the timeline UAPI for now v2")
  48197bc564c7 ("drm: add syncobj timeline support v9")

Which automagically results in the following new ioctls being recognized
by the 'perf trace' ioctl cmd arg beautifier:

  $ tools/perf/trace/beauty/drm_ioctl.sh > /tmp/before
  $ cp include/uapi/drm/drm.h tools/include/uapi/drm/drm.h
  $ tools/perf/trace/beauty/drm_ioctl.sh > /tmp/after
  $ diff -u /tmp/before /tmp/after
  --- /tmp/before 2019-05-22 10:25:31.443151182 -0300
  +++ /tmp/after 2019-05-22 10:25:46.449354819 -0300
  @@ -103,6 +103,10 @@
    [0xC7] = "MODE_LIST_LESSEES",
    [0xC8] = "MODE_GET_LEASE",
    [0xC9] = "MODE_REVOKE_LEASE",
  + [0xCA] = "SYNCOBJ_TIMELINE_WAIT",
  + [0xCB] = "SYNCOBJ_QUERY",
  + [0xCC] = "SYNCOBJ_TRANSFER",
  + [0xCD] = "SYNCOBJ_TIMELINE_SIGNAL",
    [DRM_COMMAND_BASE + 0x00] = "I915_INIT",
    [DRM_COMMAND_BASE + 0x01] = "I915_FLUSH",
    [DRM_COMMAND_BASE + 0x02] = "I915_FLIP",
    $

I.e. the strace like raw_tracepoint:sys_enter handler in 'perf trace'
will get the cmd integer value and map it to the string.

At some point it should be possible to translate from string to integer
and use to filter using expressions such as:

   # perf trace -e ioctl/cmd==DRM_IOCTL_SYNCOBJ*/

Or some more suitable syntax to express that only these ioctls when
acting on DRM fds should be shown.

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Chunming Zhou <david1.zhou@amd.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-jrc9ogw33w4zgqc3pu7o1l3g@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/include/uapi/drm/drm.h