01 Aug, 2006

1 commit

  • Events sent by Process Events Connector from a 64-bit kernel are not binary
    compatible with a 32-bit userspace program because the "timestamp" field
    (struct timespec) is not arch independent. This affects the fields that
    follow "timestamp" as they will be be off by 8 bytes.

    This is a problem for 32-bit userspace programs running with 64-bit kernels
    on ppc64, s390, x86-64.. any "biarch" system.

    Matt had submitted a different solution to lkml as an RFC earlier. We have
    since switched to a solution recommended by Evgeniy Polyakov.

    This patch fixes the problem by changing the timestamp to be a __u64, which
    stores the number of nanoseconds.

    Tested on a x86_64 system with both 32 bit application and 64 bit
    application and on a i386 system.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Matt Helsley
    Cc: Evgeniy Polyakov
    Cc: Guillaume Thouvenin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chandra Seetharaman
     

23 Jun, 2006

2 commits

  • Put the connector exports at the functions so people can see them in context.

    Cc: Evgeniy Polyakov
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Move connector header include to precisely where it's needed.

    Remove unused time.h header file as well. This was leftover from previous
    iterations of the process events patches.

    Signed-off-by: Matt Helsley
    Cc: Guillaume Thouvenin
    Cc: Nguyen Anh Quynh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

20 Jun, 2006

1 commit


18 Jun, 2006

1 commit

  • cn_queue.c:130: warning: value computed is not used

    There is no point in testing the atomic value if the result is thrown
    away.

    From Evgeniy:

    It was created to put implicit smp barrier, but it is not needed there.

    Signed-off-by: Andreas Schwab
    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Andreas Schwab
     

23 Mar, 2006

1 commit


21 Mar, 2006

1 commit


11 Jan, 2006

1 commit

  • Use ktime_get_ts() to take the timestamp instead of getnstimestamp(). This
    patch prepares to remove getnstimestamp() by switching its only user to a
    different function with almost exactly the same code.

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

09 Jan, 2006

1 commit

  • The parameter to put_cpu_var() is unreferenced by the implementation, and
    the compiler doesn't try to comprehend comments, so this wouldn't cause any
    problem, but if bugged me enough to post a fix :-)

    Signed-off-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David S. Miller
     

13 Dec, 2005

1 commit

  • This adds a timestamp field to the events sent via the process event
    connector. The timestamp allows listeners to accurately account the
    duration(s) between a process' events and offers strong means with which
    to determine the order of events with respect to a given task while also
    avoiding the addition of per-task data.

    This alters the size and layout of the event structure and hence would
    break compatibility if process events connector as it stands in 2.6.15-rc2
    were released as a mainline kernel.

    Signed-off-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

07 Nov, 2005

1 commit

  • This patch adds a connector that reports fork, exec, id change, and exit
    events for all processes to userspace. It replaces the fork_advisor patch
    that ELSA is currently using. Applications that may find these events
    useful include accounting/auditing (e.g. ELSA), system activity monitoring
    (e.g. top), security, and resource management (e.g. CKRM).

    Signed-off-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

09 Oct, 2005

1 commit

  • - added typedef unsigned int __nocast gfp_t;

    - replaced __nocast uses for gfp flags with gfp_t - it gives exactly
    the same warnings as far as sparse is concerned, doesn't change
    generated code (from gcc point of view we replaced unsigned int with
    typedef) and documents what's going on far better.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

05 Oct, 2005

1 commit

  • Fix implicit nocast warnings in connector code:
    drivers/connector/connector.c:102:24: warning: implicit cast to nocast type
    drivers/connector/connector.c:114:45: warning: implicit cast to nocast type

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     

27 Sep, 2005

1 commit

  • If input message rate from userspace is too high, do not drop them,
    but try to deliver using work queue allocation.

    Failing there is some kind of congestion control.

    It also removes warn_on on this condition, which scares people.

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Evgeniy Polyakov
     

12 Sep, 2005

1 commit

  • Kernel connector - new userspace kernel space easy to use
    communication module which implements easy to use bidirectional
    message bus using netlink as it's backend. Connector was created to
    eliminate complex skb handling both in send and receive message bus
    direction.

    Connector driver adds possibility to connect various agents using as
    one of it's backends netlink based network. One must register
    callback and identifier. When driver receives special netlink message
    with appropriate identifier, appropriate callback will be called.

    From the userspace point of view it's quite straightforward:

    socket();
    bind();
    send();
    recv();

    But if kernelspace want to use full power of such connections, driver
    writer must create special sockets, must know about struct sk_buff
    handling... Connector allows any kernelspace agents to use netlink
    based networking for inter-process communication in a significantly
    easier way:

    int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
    void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);

    struct cb_id
    {
    __u32 idx;
    __u32 val;
    };

    idx and val are unique identifiers which must be registered in
    connector.h for in-kernel usage. void (*callback) (void *) - is a
    callback function which will be called when message with above idx.val
    will be received by connector core.

    Using connector completely hides low-level transport layer from it's
    users.

    Connector uses new netlink ability to have many groups in one socket.

    [ Incorporating many cleanups and fixes by myself and
    Andrew Morton -DaveM ]

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Evgeniy Polyakov