From: Jason Baron <jbaron@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: mingo@elte.hu, rostedt@goodmis.org, linux-kernel@vger.kernel.org,
laijs@cn.fujitsu.com, lizf@cn.fujitsu.com, hpa@zytor.com,
tglx@linutronix.de, mhiramat@redhat.com,
heiko.carstens@de.ibm.com, benh@kernel.crashing.org,
davem@davemloft.net, lethal@linux-sh.org, schwidefsky@de.ibm.com,
brueckner@linux.vnet.ibm.com, tony.luck@intel.com
Subject: Re: [PATCH 00/12] tracing: add compat syscall support v2
Date: Thu, 11 Mar 2010 17:12:28 -0500 [thread overview]
Message-ID: <20100311221227.GA5285@redhat.com> (raw)
In-Reply-To: <20100310190330.GB5000@nowhere>
On Wed, Mar 10, 2010 at 08:03:35PM +0100, Frederic Weisbecker wrote:
> On Fri, Feb 26, 2010 at 04:36:55PM -0500, Jason Baron wrote:
> > Hi,
> >
> > Re-post to add infrastructure for compat syscall event tracing support. This
> > patch series also adds x86_64 arch specific support as an example consumer
> > of the new infrastructure.
> >
> > The new interface consists of:
> >
> > 1) int is_compat_task(void);
> > - most arches seem to have this already
> > 2) unsigned long arch_compat_syscall_addr(int nr);
> > - returns a pointer to the compat syscall entry corresponding to syscall 'nr'
> > 3) int NR_syscalls_compat;
> > - number of entries in the compat syscall table.
> >
> > Thus, arches that set CONFIG_FTRACE_SYSCALLS and CONFIG_COMPAT are going to
> > need to implement the above interfaces in order to build. Thus, I'm 'cc arch
> > maintainers.
> >
> > Naming. I've also introduced a couple of new syscall macros:
> >
> > ARCH_COMPAT_SYSCALL_DEFINE#N()
> > COMPAT_SYSCALL_DEFINE#N()
> >
> > These tack on, "arch_compat_sys" and "compat_sys" respectively, to the
> > beginning of the compat syscall names.
> >
> > thanks,
> >
> > -Jason
>
>
>
> That's a very nice work!
>
> Some neats about it, some of them can be probably done
> incrementally:
>
>
> - The new COMPAT_SYSCALL_DEFINE/ARCH_COMPAT_SYSCALL_DEFINE
> macros nicely standardize the syscalls naming. Most arch use
> the sys32_* prefix for compat though. We could simply make
> ARCH_COMPAT_SYSCALL_DEFINE() prepend with sys32_* as this
> will involve less changes in the syscall table of archs that
> want the compat syscall tracing support. (Although in itself,
> having arch_compat_ prefixes is also an intuitive naming)
>
ok. i'll make the ARCH_COMPAT_SYSCALL_DEFINE output "sys32_blah"
> - Why bothering with a trace event namespace separation between
> arch overriden compat syscalls and common ones?
> Tools want to deal with a single shot of syscalls:compat_*, and
> not syscalls:compat_* + syscalls:arch_compat_*
> Even in the trace, such a naming separation may look weird.
> The *_SYSCALL_DEFINE macros can make it easy to use different
> names between syscall functions and syscall trace event names.
> So, we can keep the distinct arch_compat (or sys32 that involves
> less changes) and compat prefixes for functions names, as arch_compat
> may call compat things; and have only compat prefixes as trace events
> names. And may be if we have collisions between arch and generic
> compat callback names, let's drop the generic one as it will
> never trigger, since it's not in the syscall table anyway.
>
I kept separate namespaces to avoid collisions and generally simplify
things. However, you are right - we can maintain namespace separation at the
"sys32_blah", "compat_sys", level and map to a common "compat_blah" for the
trace event name. We can avoid collisions by simply storing the "sys32" or
"compat_sys" name in the syscall metadata structure name field.
> - We probably want a compat_syscalls trace event subsystem (separated
> from syscalls), can be done incrementally though
>
> - Commit e7b8e675d9c71b868b66f62f725a948047514719
> (tracing: Unify arch_syscall_addr() implementations)
> has made a good use of the unified syscall table name
> between archs that support syscall tracing so that we
> can, most of the time, directly dereference it from generic
> code. Exotic archs can still override arch_syscall_addr()
> if we can't do that with their syscall table.
> I wish we can do that with the compat syscall tables too.
> Compat syscall tables names seem to be less unified for now
> though. Again, can be done incrementally.
>
> Other than that, that's a cool batch!
>
> Thanks!
>
the other question is how to go about getting arch support, since right
now we break non-x86 arches which have CONFIG_FTRACE_SYSCALLS and
CONFIG_COMPAT set with this patch.
thanks,
-Jason
next prev parent reply other threads:[~2010-03-11 22:13 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-26 21:36 [PATCH 00/12] tracing: add compat syscall support v2 Jason Baron
2010-02-26 21:37 ` [PATCH 01/12] x86: add NR_syscalls_compat, make ia32 syscall table visible Jason Baron
2010-02-26 21:37 ` [PATCH 02/12] x86: add arch_compat_syscall_addr() Jason Baron
2010-02-26 21:37 ` [PATCH 03/12] compat: have generic is_compat_task for !CONFIG_COMPAT Jason Baron
2010-02-26 21:37 ` [PATCH 04/12] tracing: remove syscall bitmaps in preparation for compat support Jason Baron
2010-02-26 21:37 ` [PATCH 05/12] tracing: add tracing support for compat syscalls Jason Baron
2010-02-26 21:37 ` [PATCH 06/12] syscalls: add ARCH_COMPAT_SYSCALL_DEFINE() Jason Baron
2010-02-26 21:37 ` [PATCH 07/12] x86, compat: convert ia32 layer to use ARCH_COMPAT_SYSCALL_DEFINE#N() Jason Baron
2010-02-26 21:37 ` [PATCH 08/12] syscalls: add new COMPAT_SYSCALL_DEFINE#N() macro Jason Baron
2010-02-28 10:09 ` Heiko Carstens
2010-03-01 21:05 ` Jason Baron
2010-03-02 6:40 ` Heiko Carstens
2010-02-26 21:37 ` [PATCH 09/12] compat: convert to use COMPAT_SYSCALL_DEFINE#N() Jason Baron
2010-02-26 21:37 ` [PATCH 10/12] compat: convert fs compat to use COMPAT_SYSCALL_DEFINE#N() macros Jason Baron
2010-02-26 21:37 ` [PATCH 11/12] tags: recognize syscalls Jason Baron
2010-02-26 21:37 ` [PATCH 12/12] cleanup: remove arg from TRACE_SYS_ENTER_PROFILE_INIT() macro Jason Baron
2010-03-10 3:25 ` [PATCH 00/12] tracing: add compat syscall support v2 Frederic Weisbecker
2010-03-10 19:03 ` Frederic Weisbecker
2010-03-11 22:12 ` Jason Baron [this message]
2010-03-12 3:27 ` Frederic Weisbecker
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=20100311221227.GA5285@redhat.com \
--to=jbaron@redhat.com \
--cc=benh@kernel.crashing.org \
--cc=brueckner@linux.vnet.ibm.com \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=laijs@cn.fujitsu.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=schwidefsky@de.ibm.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox