lkml.org 
[lkml]   [2008]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 6/6] cpuset: remove remaining pointers to cpumask_t
    Impact: cleanups, use new cpumask API

    Final trivial cleanups: mainly s/cpumask_t/struct cpumask

    Note there is a FIXME in generate_sched_domains(). A future patch will
    change struct cpumask *doms to struct cpumask *doms[].
    (I suppose Rusty will do this.)

    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    ---
    include/linux/cpuset.h | 10 ++++++----
    kernel/cpuset.c | 28 +++++++++++++++-------------
    2 files changed, 21 insertions(+), 17 deletions(-)

    diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
    index 51ea2bd..90c6074 100644
    --- a/include/linux/cpuset.h
    +++ b/include/linux/cpuset.h
    @@ -20,8 +20,9 @@ extern int number_of_cpusets; /* How many cpusets are defined in system? */
    extern int cpuset_init_early(void);
    extern int cpuset_init(void);
    extern void cpuset_init_smp(void);
    -extern void cpuset_cpus_allowed(struct task_struct *p, cpumask_t *mask);
    -extern void cpuset_cpus_allowed_locked(struct task_struct *p, cpumask_t *mask);
    +extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask);
    +extern void cpuset_cpus_allowed_locked(struct task_struct *p,
    + struct cpumask *mask);
    extern nodemask_t cpuset_mems_allowed(struct task_struct *p);
    #define cpuset_current_mems_allowed (current->mems_allowed)
    void cpuset_init_current_mems_allowed(void);
    @@ -86,12 +87,13 @@ static inline int cpuset_init_early(void) { return 0; }
    static inline int cpuset_init(void) { return 0; }
    static inline void cpuset_init_smp(void) {}

    -static inline void cpuset_cpus_allowed(struct task_struct *p, cpumask_t *mask)
    +static inline void cpuset_cpus_allowed(struct task_struct *p,
    + struct cpumask *mask)
    {
    *mask = cpu_possible_map;
    }
    static inline void cpuset_cpus_allowed_locked(struct task_struct *p,
    - cpumask_t *mask)
    + struct cpumask *mask)
    {
    *mask = cpu_possible_map;
    }
    diff --git a/kernel/cpuset.c b/kernel/cpuset.c
    index 25df51f..a87323b 100644
    --- a/kernel/cpuset.c
    +++ b/kernel/cpuset.c
    @@ -289,7 +289,8 @@ static struct file_system_type cpuset_fs_type = {
    * Call with callback_mutex held.
    */

    -static void guarantee_online_cpus(const struct cpuset *cs, cpumask_t *pmask)
    +static void guarantee_online_cpus(const struct cpuset *cs,
    + struct cpumask *pmask)
    {
    while (cs && !cpumask_intersects(cs->cpus_allowed, cpu_online_mask))
    cs = cs->parent;
    @@ -610,7 +611,8 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
    * element of the partition (one sched domain) to be passed to
    * partition_sched_domains().
    */
    -static int generate_sched_domains(cpumask_t **domains,
    +/* FIXME: see the FIXME in partition_sched_domains() */
    +static int generate_sched_domains(struct cpumask **domains,
    struct sched_domain_attr **attributes)
    {
    LIST_HEAD(q); /* queue of cpusets to be scanned */
    @@ -618,10 +620,10 @@ static int generate_sched_domains(cpumask_t **domains,
    struct cpuset **csa; /* array of all cpuset ptrs */
    int csn; /* how many cpuset ptrs in csa so far */
    int i, j, k; /* indices for partition finding loops */
    - cpumask_t *doms; /* resulting partition; i.e. sched domains */
    + struct cpumask *doms; /* resulting partition; i.e. sched domains */
    struct sched_domain_attr *dattr; /* attributes for custom domains */
    int ndoms = 0; /* number of sched domains in result */
    - int nslot; /* next empty doms[] cpumask_t slot */
    + int nslot; /* next empty doms[] struct cpumask slot */

    doms = NULL;
    dattr = NULL;
    @@ -629,7 +631,7 @@ static int generate_sched_domains(cpumask_t **domains,

    /* Special case for the 99% of systems with one, full, sched domain */
    if (is_sched_load_balance(&top_cpuset)) {
    - doms = kmalloc(sizeof(cpumask_t), GFP_KERNEL);
    + doms = kmalloc(cpumask_size(), GFP_KERNEL);
    if (!doms)
    goto done;

    @@ -708,7 +710,7 @@ restart:
    * Now we know how many domains to create.
    * Convert <csn, csa> to <ndoms, doms> and populate cpu masks.
    */
    - doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL);
    + doms = kmalloc(ndoms * cpumask_size(), GFP_KERNEL);
    if (!doms)
    goto done;

    @@ -720,7 +722,7 @@ restart:

    for (nslot = 0, i = 0; i < csn; i++) {
    struct cpuset *a = csa[i];
    - cpumask_t *dp;
    + struct cpumask *dp;
    int apn = a->pn;

    if (apn < 0) {
    @@ -743,7 +745,7 @@ restart:
    continue;
    }

    - cpus_clear(*dp);
    + cpumask_clear(dp);
    if (dattr)
    *(dattr + nslot) = SD_ATTR_INIT;
    for (j = i; j < csn; j++) {
    @@ -790,7 +792,7 @@ done:
    static void do_rebuild_sched_domains(struct work_struct *unused)
    {
    struct sched_domain_attr *attr;
    - cpumask_t *doms;
    + struct cpumask *doms;
    int ndoms;

    get_online_cpus();
    @@ -2059,7 +2061,7 @@ static int cpuset_track_online_cpus(struct notifier_block *unused_nb,
    unsigned long phase, void *unused_cpu)
    {
    struct sched_domain_attr *attr;
    - cpumask_t *doms;
    + struct cpumask *doms;
    int ndoms;

    switch (phase) {
    @@ -2129,7 +2131,7 @@ void __init cpuset_init_smp(void)
    /**
    * cpuset_cpus_allowed - return cpus_allowed mask from a tasks cpuset.
    * @tsk: pointer to task_struct from which to obtain cpuset->cpus_allowed.
    - * @pmask: pointer to cpumask_t variable to receive cpus_allowed set.
    + * @pmask: pointer to struct cpumask variable to receive cpus_allowed set.
    *
    * Description: Returns the cpumask_var_t cpus_allowed of the cpuset
    * attached to the specified @tsk. Guaranteed to return some non-empty
    @@ -2137,7 +2139,7 @@ void __init cpuset_init_smp(void)
    * tasks cpuset.
    **/

    -void cpuset_cpus_allowed(struct task_struct *tsk, cpumask_t *pmask)
    +void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
    {
    mutex_lock(&callback_mutex);
    cpuset_cpus_allowed_locked(tsk, pmask);
    @@ -2148,7 +2150,7 @@ void cpuset_cpus_allowed(struct task_struct *tsk, cpumask_t *pmask)
    * cpuset_cpus_allowed_locked - return cpus_allowed mask from a tasks cpuset.
    * Must be called with callback_mutex held.
    **/
    -void cpuset_cpus_allowed_locked(struct task_struct *tsk, cpumask_t *pmask)
    +void cpuset_cpus_allowed_locked(struct task_struct *tsk, struct cpumask *pmask)
    {
    task_lock(tsk);
    guarantee_online_cpus(task_cs(tsk), pmask);
    --
    1.5.4.rc3




    \
     
     \ /
      Last update: 2008-12-31 09:41    [W:0.049 / U:28.808 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site