lkml.org 
[lkml]   [2010]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 06/14] tracing: add tracing support for compat syscalls
On Mon, Mar 22, 2010 at 04:21:42PM -0400, Jason Baron wrote:
> On Sat, Mar 20, 2010 at 07:12:17AM +0100, Frederic Weisbecker wrote:
> > > #else /* CONFIG_COMPAT */
> > >
> > > +#define NR_syscalls_compat 0
> > > +
> > > static inline int is_compat_task(void)
> > > {
> > > return 0;
> > > diff --git a/include/trace/syscall.h b/include/trace/syscall.h
> > > index 8f5ac38..1cc1d1e 100644
> > > --- a/include/trace/syscall.h
> > > +++ b/include/trace/syscall.h
> > > @@ -22,6 +22,7 @@
> > > struct syscall_metadata {
> > > const char *name;
> > > int syscall_nr;
> > > + int compat_syscall_nr;
> >
> >
> >
> > Why do you need both syscall_nr and compat_syscall_nr?
> > Compat and usual syscalls never share the same syscall
> > metadata.
> >
> >
>
> For example, something like 'sys_read()' is pointed to by both
> syscalls_metadata and compat_syscalls_metadata. Thus, the same syscall
> metadata record is referenced by two different tables. That said, I'm not
> making use of compat_syscall_nr. Although it could be added to the
> checks in 'reg_event_syscall_enter()', to make sure that the
> compat_syscall_nr is valid.



Yep, but we need it to be referenced by two different tables
as normal and compat syscalls don't have the exact same
parameters. It is not about the same syscall metadata.

Once we'll get support for user pointer dereferencing to get
user parameters content in the traces, we'll need to build a
table of types to be aware of the type. And these types will
be different between compat and normal syscalls.



\
 
 \ /
  Last update: 2010-03-27 05:43    [W:0.071 / U:1.552 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site