netdev
[Top] [All Lists]

Re: [PATCH 2.6.11-rc4-mm1] connector: Add a fork connector

To: Guillaume Thouvenin <guillaume.thouvenin@xxxxxxxx>
Subject: Re: [PATCH 2.6.11-rc4-mm1] connector: Add a fork connector
From: Paul Jackson <pj@xxxxxxx>
Date: Wed, 2 Mar 2005 07:50:55 -0800
Cc: akpm@xxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, johnpol@xxxxxxxxxxx, elsa-devel@xxxxxxxxxxxxxxxxxxxxx, jlan@xxxxxxxxxxxx, gh@xxxxxxxxxx, efocht@xxxxxxxxxxxx, netdev@xxxxxxxxxxx, kaigai@xxxxxxxxxxxxx
In-reply-to: <1109753292.8422.117.camel@xxxxxxxxxxxxxxxxxxxxxxxx>
Organization: SGI
References: <1109240677.1738.196.camel@xxxxxxxxxxxxxxxxxxxxxxxx> <1109753292.8422.117.camel@xxxxxxxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
In addition to worrying about performance and scaling, with accounting
enabled or disabled, one should also try to minimize code clutter in key
kernel files, such as fork.c

For example, one might, instead of adding 40 lines os fork_connector()
code to kernel/fork.c, instead add something like just the #include
<linux/connector.h> and the "fork_connector(current->pid, p->pid)" call
to kernel/fork.c, where include/linux/connector.h had something like:

        #ifdef CONFIG_FORK_CONNECTOR
        static inline void fork_connector(pid_t parent, pid_t child)
        {
                if (cn_fork_enable)
                        __fork_connector(parent, child);
        }
        #else
        static inline void fork_connector(pid_t parent, pid_t child) {}
        #endif

Then bury the interesting code in the implementation of __fork_connector(),
in drivers/connector/cn_fork.c or some such place.

This adds a real function call in the case that cn_fork_enable is set.
That code path requires more than that anyway (and it makes kernel stack
backtraces more transparent).

But it removes 40 lines of fork_connector detail from fork.c.  And it
avoids marking a 40 line routine as inline ...

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@xxxxxxx> 1.650.933.1373, 1.925.600.0401

<Prev in Thread] Current Thread [Next in Thread>