lkml.org 
[lkml]   [2005]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 2.6.12-rc3-mm3] connector: add a fork connector
From
Date
> > > +	}
> > > +}
> > > +#else
> > > +static inline void fork_connector(pid_t parent, pid_t child)
> > > +{
> > > + return;
> > > +}
> > > +#endif /* CONFIG_FORK_CONNECTOR */
> > > +#endif /* __KERNEL__ */
> > > +
> > > +#endif /* CN_FORK_H */
> > > Index: linux-2.6.12-rc3-mm3/include/linux/connector.h
> > > ===================================================================
> > > --- linux-2.6.12-rc3-mm3.orig/include/linux/connector.h 2005-05-09 07:45:56.000000000 +0200
> > > +++ linux-2.6.12-rc3-mm3/include/linux/connector.h 2005-05-09 09:50:01.000000000 +0200
> > > @@ -26,6 +26,8 @@
> > >
> > > #define CN_IDX_CONNECTOR 0xffffffff
> > > #define CN_VAL_CONNECTOR 0xffffffff
> > > +#define CN_IDX_FORK 0xfeed /* fork events */
> > > +#define CN_VAL_FORK 0xbeef
> > >
> > > /*
> > > * Maximum connector's message size.
> > > Index: linux-2.6.12-rc3-mm3/kernel/fork.c
> > > ===================================================================
> > > --- linux-2.6.12-rc3-mm3.orig/kernel/fork.c 2005-05-09 07:45:56.000000000 +0200
> > > +++ linux-2.6.12-rc3-mm3/kernel/fork.c 2005-05-09 08:03:15.000000000 +0200
> > > @@ -41,6 +41,7 @@
> > > #include <linux/profile.h>
> > > #include <linux/rmap.h>
> > > #include <linux/acct.h>
> > > +#include <linux/cn_fork.h>
> > >
> > > #include <asm/pgtable.h>
> > > #include <asm/pgalloc.h>
> > > @@ -63,6 +64,14 @@ DEFINE_PER_CPU(unsigned long, process_co
> > >
> > > EXPORT_SYMBOL(tasklist_lock);
> > >
> > > +#ifdef CONFIG_FORK_CONNECTOR
> > > +/*
> > > + * fork_counts is used by the fork_connector() inline routine as
> > > + * the sequence number of the netlink message.
> > > + */
> > > +static DEFINE_PER_CPU(unsigned long, fork_counts);
> > > +#endif /* CONFIG_FORK_CONNECTOR */
> > > +
> >
> > The above should go into cn_fork.c
>
> I don't see why. It's used by fork_connector which is an inline routine
> so, IMHO, 'fork_counts' must be defined here and declared in
> include/linux/cn_fork.h
>

You said it yourself, it's used by the fork connector not fork.c. You've
already have DECLARE_PER_CPU(unsigned long, fork_counts); in cn_fork.h
so just put

/*
* fork_counts is used by the fork_connector() inline routine as
* the sequence number of the netlink message.
*/
DEFINE_PER_CPU(unsigned long, fork_counts);

in cn_fork.c and remove that chunk from kernel/fork.c

And I don't like putting code like fork_connector() in a header file
even if it is used once only, it's just a simple call/ret...

And before any abi sets itself I think you might want to consider
including both thread & process id of parent & child. This way the
user-space client can distinguish what is a thread and a group leader
although I admittedly don't know all your goals with this, just a
thought.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-05-09 14:26    [W:0.058 / U:0.628 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site