public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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