public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Gabriel Laskar <gabriel@lse.epita.fr>
To: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, strace-devel@lists.sourceforge.net
Subject: Re: [RFC 0/2] strace/drm: Add i915 ioctls to strace
Date: Mon, 11 May 2015 12:50:36 +0200	[thread overview]
Message-ID: <20150511125036.270d5957@guiness> (raw)
In-Reply-To: <1430923683-17741-1-git-send-email-patrik.jakobsson@linux.intel.com>

On Wed,  6 May 2015 16:48:01 +0200
Patrik Jakobsson <patrik.jakobsson@linux.intel.com> wrote:

> This patch set aims to make strace more useful when tracing i915 ioctls.
> The ioctl type is first checked for being drm and then the driver
> backing the opened device is identified by looking at sysfs. Other
> drivers than i915 can easily be added.
> 
> Only a subset of the i915 ioctls are included. I will extend this patch
> set if the approach looks ok. The generic drm ioctls are also missing.
> 
> Give it a spin with:
>         strace -e trace=ioctl -p `pidof X`
> 
> Patrik Jakobsson (2):
>   strace/drm: Print extended info for drm and i915 ioctls
>   strace/drm: Print args for most common i915 ioctls
> 
>  Makefile.am                |   2 +
>  defs.h                     |   2 +
>  drm.c                      | 104 +++++++++++++++++
>  drm_i915.c                 | 278 +++++++++++++++++++++++++++++++++++++++++++++
>  ioctl.c                    |   5 +
>  xlat/drm_i915_getparams.in |  28 +++++
>  xlat/drm_i915_ioctls.in    |  51 +++++++++
>  xlat/drm_i915_setparams.in |   4 +
>  8 files changed, 474 insertions(+)
>  create mode 100644 drm.c
>  create mode 100644 drm_i915.c
>  create mode 100644 xlat/drm_i915_getparams.in
>  create mode 100644 xlat/drm_i915_ioctls.in
>  create mode 100644 xlat/drm_i915_setparams.in
> 

This is a great start! We need this kind of decoding. Do you plan to
add also the generic drm ioctl decoding?

Some issues though:

* The way you avoid the ioctl request decoding is quite hard to follow,
  but it seems that you don't have much of a choice, except that in
  drm_ioctl(), the code from SYS_FUNC(ioctl) is duplicated. It seems it
  needs some work here, to allow a simpler code path. Maybe this would
  be clearer if the decoding/drm_get_driver_name, etc… was in
  ioctl_decode_command_number(). Also, with the actual code, if you are
  on i915 with an invalid ioctl number, it will be printed as
  "I915_IOCTL_???" and not "_IOC(...)" (see below for an example.) This
  will also add an inconsistent result depending whether /sys is
  mounted or not.
* This does not compile on my system (archlinux), because drm.h lives
  in libdrm/drm.h and not in drm/drm.h, I know it is an rfc, but this
  needs to use pkg-config in order to know where libdrm headers are.


#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>

#include <drm.h>
#include <i915_drm.h>

int main()
{
	int fd = open("/dev/dri/card0", O_RDWR);
	ioctl(fd, DRM_IOW(DRM_COMMAND_BASE + DRM_I915_FLUSH, int), 0);
	return 0;
}

$ CFLAGS=-I/usr/include/libdrm make i915-ioctls
cc -I/usr/include/libdrm    i915-ioctls.c   -o i915-ioctls
$ sudo strace -e ioctl ./i915-ioctls 
ioctl(3, _IOC(_IOC_WRITE, 0x64, 0x41, 0x04), 0) = 0
+++ exited with 0 +++
$ sudo ~/source/strace/strace -e ioctl ./i915-ioctls 
ioctl(3, 0x40046441 /* I915_IOCTL_??? */, 0) = 0
+++ exited with 0 +++


-- 
Gabriel Laskar
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2015-05-11 10:59 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-06 14:48 [RFC 0/2] strace/drm: Add i915 ioctls to strace Patrik Jakobsson
2015-05-06 14:48 ` [RFC 1/2] strace/drm: Print extended info for drm and i915 ioctls Patrik Jakobsson
     [not found] ` <1430923683-17741-1-git-send-email-patrik.jakobsson-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-06 14:48   ` [RFC 2/2] strace/drm: Print args for most common " Patrik Jakobsson
2015-05-07 15:37 ` [RFC 0/2] strace/drm: Add i915 ioctls to strace Jesse Barnes
2015-05-11  9:05   ` Patrik Jakobsson
2015-05-11 10:50 ` Gabriel Laskar [this message]
2015-05-11 13:54   ` [Intel-gfx] " Patrik Jakobsson
2015-05-11 18:08     ` Gabriel Laskar
2015-05-12 12:35       ` Patrik Jakobsson
2015-05-12 17:37         ` [Intel-gfx] " Gabriel Laskar
     [not found]           ` <20150512193759.09bb505b-krIL5v34lyW+8jMViQwUxmazZaUMDOZU@public.gmane.org>
2015-05-12 22:10             ` Dmitry V. Levin
2015-05-19  8:03               ` Patrik Jakobsson

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=20150511125036.270d5957@guiness \
    --to=gabriel@lse.epita.fr \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=patrik.jakobsson@linux.intel.com \
    --cc=strace-devel@lists.sourceforge.net \
    /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