lkml.org 
[lkml]   [2009]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [perfmon2] I.1 - System calls - ioctl
    From
    Date
    On Mon, 2009-07-13 at 19:30 +0200, Arnd Bergmann wrote:
    > On Monday 13 July 2009, Peter Zijlstra wrote:
    > > On Mon, 2009-06-22 at 08:58 -0400, Christoph Hellwig wrote:
    > > > But talking about syscalls the sys_perf_counter_open prototype is
    > > > really ugly - it uses either the pid or cpu argument which is a pretty
    > > > clear indicator it should actually be two sys calls.
    > >
    > > Would something like the below be any better?
    > >
    > > It would allow us to later add something like PERF_TARGET_SOCKET and
    > > things like that.
    >
    > I don't think it helps on the ugliness side. You basically make the
    > two arguments a union, but instead of adding another flag and directly
    > passing a union, you also add interface complexity.
    >
    > A strong indication for the complexity is that you got it wrong ;-) :
    >
    > > +struct perf_counter_target {
    > > + __u32 id;
    > > + __u64 val;
    > > +};
    >
    > This structure is not compatible between 32 and 64 bit user space on x86,
    > because everything except i386 adds implicit padding between id and val.

    Humm, __u64 doesn't have natural alignment? That would break more than
    just this I think -- it sure surprises me.

    > Other than that, making it extensible sounds reasonable. How about just
    > using a '__u64 *target' and a bit in the 'flags' argument?

    Would there still be a point in having it a pointer in that case?, but
    yeah, that might work too?



    \
     
     \ /
      Last update: 2009-07-13 19:37    [W:3.091 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site