qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 0/2] Add strace support for printing arguments for ioctls


From: Laurent Vivier
Subject: Re: [PATCH v3 0/2] Add strace support for printing arguments for ioctls
Date: Mon, 29 Jun 2020 13:16:30 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0

Le 19/06/2020 à 14:47, Filip Bozuta a écrit :
> From: Filip Bozuta <Filip.Bozuta@syrmia.com>
> 
> This series introduces the functionality in strace to print arguments for
> ioctls. This is gonna be a useful adittion as it indroduces a good debugging
> and diagnostic mechanism for user programs cross compiled for different
> architectures.
> 
> The first patch in the series introduces missing thunk argument types for 
> ioctls
> SIOCGSTAMP and SIOCGSTAMPNS needed for strace argument printing. The second 
> patch
> introduces the argument printing functionality. The implementation details are
> described in the patch commit messages.
> 
> Testing method:
> 
>     Mini test programs were written that run ioctls that are implemented in 
> qemu.
>     These programs covered different varieties of ioctls. Some covered rtc 
> ioctls
>     with both basic argument types (like RTC_IRQP_SET and RTC_IRQP_READ) and
>     structure types (like RTC_RD_TIME and RTC_SET_TIME). Some covered loop 
> ioctls
>     LOOP_SET_STATUS and LOOP_GET_STATUS that use "struct loop_info" which 
> contain
>     special types olddev_t (in qemu presented as OLDDEV_T). Some covered alsa 
> timer
>     ioctls like SNDRV_TIMER_IOCTL_GSTATUS, SDNRV_TIMER_IOCTL_STATUS which 
> contain
>     complex third argument types (structures that contain other structures 
> and strings
>     as fields).
> 
>     Programs were compiled (sometimes using cross-compilers) for the following
>     architectures:
> 
>         * Intel 64-bit (little endian) (gcc)
>         * Power pc 32-bit (big endian) (powerpc-linux-gnu-gcc)
>         * Power pc 64-bit (big endian) (powerpc64-linux-gnu-gcc)
>         * Mips 32-bit (little endian) (mipsel-linux-gnu-gcc)
>         * Mips 64-bit (little endian) (mips64el-linux-gnuabi64-gcc)
> 
>     All applicable compiled programs were in turn executed with "-strace"
>     through QEMU and the strace printing results obtained were the same
>     ones gotten for native execution.
> 
> v2:
>     * Removed case TYPE_LONGLONG, TYPE_ULONGLONG from print_ioctl()
>     * Changed error printing in print_syscall_ret_ioctl() to use
>       error printing function from another series
>     * Added and #ifdef directive in "syscall.types.h" to manage the
>       case when the "u_sec" filed in timeval structure is of type int
> 
> v3:
>     * Moved "Based-on" tag to cover letter
> 
> Based-on: <20200619123331.17387-1-filip.bozuta@syrmia.com>
> 
> Filip Bozuta (2):
>   linux-user: Add thunk argument types for SIOCGSTAMP and SIOCGSTAMPNS
>   linux-user: Add strace support for printing arguments of ioctl()
> 
>  include/exec/user/thunk.h  |   1 +
>  linux-user/ioctls.h        |  12 ++-
>  linux-user/qemu.h          |  20 +++++
>  linux-user/strace.c        | 107 ++++++++++++++++++++++++++
>  linux-user/strace.list     |   3 +-
>  linux-user/syscall.c       |  20 +----
>  linux-user/syscall_types.h |  22 ++++++
>  thunk.c                    | 154 +++++++++++++++++++++++++++++++++++++
>  8 files changed, 315 insertions(+), 24 deletions(-)
> 

Applied to my linux-user-for-5.1 branch.

Thanks,
Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]