On Wed, Mar 16, 2016 at 22:18 -0400, Michael McConville wrote:
> Michal Mazurek wrote:
> > On 17:19:39,  2.03.16, Martin Natano wrote:
> > > On Wed, Mar 02, 2016 at 05:07:21PM +0100, Michal Mazurek wrote:
> > > > kern_sched.c:
> > > > - remove unused functions
> > > > - mark static functions as static
> > > 
> > > Functions shouldn't be static in the kernel. "In userland,
> > > functions local to one source module should be declared ???static???.  
> > > This
> > > should not be done in kernel land since it makes it impossible to use the
> > > kernel debugger." -- style(8)
> > 
> > Oh, right.
> > 
> > Remove cpuset_clear(), cpuset_add_all() and cpuset_union(), and move
> > some declarations from proc.h to kern_sched.c.
> 
> ok mmcc@, pending an ok from someone who works with this code.
>

Art has implemented a complete API for sets (in a mathematical sense)
and I don't see how removing the set union operation helps anything.
The fact is that it's unused right now doesn't mean it's useless,
it just means that the cpuset API is complete in a way of simple
set operations.

I don't have any strong opinions on the rest of removed functions,
but cpuset_clear might be useful /in theory/.

Please don't remove cpuset_union.

> > Index: sys/kern/kern_sched.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/kern_sched.c,v
> > retrieving revision 1.41
> > diff -u -p -r1.41 kern_sched.c
> > --- sys/kern/kern_sched.c   23 Dec 2015 14:51:17 -0000      1.41
> > +++ sys/kern/kern_sched.c   2 Mar 2016 16:37:18 -0000
> > @@ -28,11 +28,18 @@
> >  
> >  #include <uvm/uvm_extern.h>
> >  
> > -void sched_kthreads_create(void *);
> > -
> > -int sched_proc_to_cpu_cost(struct cpu_info *ci, struct proc *p);
> > +void        sched_kthreads_create(void *);
> > +int         sched_proc_to_cpu_cost(struct cpu_info *ci, struct proc *p);
> >  struct proc *sched_steal_proc(struct cpu_info *);
> >  
> > +void        cpuset_complement(struct cpuset *, struct cpuset *, struct 
> > cpuset *);
> > +void        cpuset_copy(struct cpuset *, struct cpuset *);
> > +struct cpu_info *cpuset_first(struct cpuset *);
> > +void        cpuset_del(struct cpuset *, struct cpu_info *);
> > +void        cpuset_init_cpu(struct cpu_info *);
> > +void        cpuset_intersection(struct cpuset *t, struct cpuset *,
> > +       struct cpuset *);
> > +
> >  /*
> >   * To help choosing which cpu should run which process we keep track
> >   * of cpus which are currently idle and which cpus have processes
> > @@ -717,12 +724,6 @@ cpuset_init_cpu(struct cpu_info *ci)
> >  }
> >  
> >  void
> > -cpuset_clear(struct cpuset *cs)
> > -{
> > -   memset(cs, 0, sizeof(*cs));
> > -}
> > -
> > -void
> >  cpuset_add(struct cpuset *cs, struct cpu_info *ci)
> >  {
> >     unsigned int num = CPU_INFO_UNIT(ci);
> > @@ -744,12 +745,6 @@ cpuset_isset(struct cpuset *cs, struct c
> >  }
> >  
> >  void
> > -cpuset_add_all(struct cpuset *cs)
> > -{
> > -   cpuset_copy(cs, &cpuset_all);
> > -}
> > -
> > -void
> >  cpuset_copy(struct cpuset *to, struct cpuset *from)
> >  {
> >     memcpy(to, from, sizeof(*to));
> > @@ -765,15 +760,6 @@ cpuset_first(struct cpuset *cs)
> >                     return (cpuset_infos[i * 32 + ffs(cs->cs_set[i]) - 1]);
> >  
> >     return (NULL);
> > -}
> > -
> > -void
> > -cpuset_union(struct cpuset *to, struct cpuset *a, struct cpuset *b)
> > -{
> > -   int i;
> > -
> > -   for (i = 0; i < CPUSET_ASIZE(ncpus); i++)
> > -           to->cs_set[i] = a->cs_set[i] | b->cs_set[i];
> >  }
> >  
> >  void
> > Index: sys/sys/proc.h
> > ===================================================================
> > RCS file: /cvs/src/sys/sys/proc.h,v
> > retrieving revision 1.213
> > diff -u -p -r1.213 proc.h
> > --- sys/sys/proc.h  6 Dec 2015 17:50:21 -0000       1.213
> > +++ sys/sys/proc.h  2 Mar 2016 15:56:33 -0000
> > @@ -205,9 +205,9 @@ struct process {
> >  
> >     struct uprof {                  /* profile arguments */
> >             caddr_t pr_base;        /* buffer base */
> > -           size_t  pr_size;        /* buffer size */
> > +           size_t  pr_size;        /* buffer size */
> >             u_long  pr_off;         /* pc offset */
> > -           u_int   pr_scale;       /* pc scaling */
> > +           u_int   pr_scale;       /* pc scaling */
> >     } ps_prof;
> >  
> >     u_short ps_acflag;              /* Accounting flags. */
> > @@ -215,8 +215,8 @@ struct process {
> >     uint64_t ps_pledge;
> >     struct whitepaths *ps_pledgepaths;
> >  
> > -   int64_t ps_kbind_cookie;
> > -   u_long  ps_kbind_addr;
> > +   int64_t ps_kbind_cookie;
> > +   u_long  ps_kbind_addr;
> >  
> >  /* End area that is copied on creation. */
> >  #define ps_endcopy ps_refcnt
> > @@ -255,7 +255,7 @@ struct process {
> >  #define    PS_EMBRYO       0x00020000      /* New process, not yet fledged 
> > */
> >  #define    PS_ZOMBIE       0x00040000      /* Dead and ready to be waited 
> > for */
> >  #define    PS_NOBROADCASTKILL 0x00080000   /* Process excluded from kill 
> > -1. */
> > -#define PS_PLEDGE  0x00100000      /* Has called pledge(2) */
> > +#define    PS_PLEDGE       0x00100000      /* Has called pledge(2) */
> >  
> >  #define    PS_BITS \
> >      ("\20" "\01CONTROLT" "\02EXEC" "\03INEXEC" "\04EXITING" "\05SUGID" \
> > @@ -380,12 +380,12 @@ struct proc {
> >  #define    P_WEXIT         0x00002000      /* Working on exiting. */
> >  #define    P_OWEUPC        0x00008000      /* Owe proc an addupc() at next 
> > ast. */
> >  #define    P_SUSPSINGLE    0x00080000      /* Need to stop for single 
> > threading. */
> > -#define P_SYSTRACE 0x00400000      /* Process system call tracing active*/
> > -#define P_CONTINUED        0x00800000      /* Proc has continued from a 
> > stopped state. */
> > +#define    P_SYSTRACE      0x00400000      /* Process system call tracing 
> > active*/
> > +#define    P_CONTINUED     0x00800000      /* Proc has continued from a 
> > stopped state. */
> >  #define    P_THREAD        0x04000000      /* Only a thread, not a real 
> > process */
> >  #define    P_SUSPSIG       0x08000000      /* Stopped from signal. */
> >  #define    P_SOFTDEP       0x10000000      /* Stuck processing softdep 
> > worklist */
> > -#define P_CPUPEG   0x40000000      /* Do not move to another cpu. */
> > +#define    P_CPUPEG        0x40000000      /* Do not move to another cpu. 
> > */
> >  
> >  #define    P_BITS \
> >      ("\20" "\01INKTR" "\02PROFPEND" "\03ALRMPEND" "\04SIGSUSPEND" \
> > @@ -414,7 +414,7 @@ struct uidinfo *uid_find(uid_t);
> >  #define    PID_MAX         32766
> >  #define    NO_PID          (PID_MAX+1)
> >  
> > -#define SESS_LEADER(pr)    ((pr)->ps_session->s_leader == (pr))
> > +#define    SESS_LEADER(pr) ((pr)->ps_session->s_leader == (pr))
> >  #define    SESSHOLD(s)     ((s)->s_count++)
> >  #define    SESSRELE(s) do {                                                
> > \
> >     if (--(s)->s_count == 0)                                        \
> > @@ -558,19 +558,8 @@ struct cpuset {
> >     int cs_set[CPUSET_SSIZE];
> >  };
> >  
> > -void cpuset_init_cpu(struct cpu_info *);
> > -
> > -void cpuset_clear(struct cpuset *);
> > -void cpuset_add(struct cpuset *, struct cpu_info *);
> > -void cpuset_del(struct cpuset *, struct cpu_info *);
> > -int cpuset_isset(struct cpuset *, struct cpu_info *);
> > -void cpuset_add_all(struct cpuset *);
> > -void cpuset_copy(struct cpuset *, struct cpuset *);
> > -void cpuset_union(struct cpuset *, struct cpuset *, struct cpuset *);
> > -void cpuset_intersection(struct cpuset *t, struct cpuset *, struct cpuset 
> > *);
> > -void cpuset_complement(struct cpuset *, struct cpuset *, struct cpuset *);
> > -struct cpu_info *cpuset_first(struct cpuset *);
> > +void        cpuset_add(struct cpuset *, struct cpu_info *);
> > +int         cpuset_isset(struct cpuset *, struct cpu_info *);
> >  
> >  #endif     /* _KERNEL */
> >  #endif     /* !_SYS_PROC_H_ */
> > -
> > 
> > -- 
> > Michal Mazurek
> > 
> 

Reply via email to