lkml.org 
[lkml]   [2006]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [ckrm-tech] [PATCH 5/7] BC: user interface (syscalls)
    From
    Date
    On Tue, 2006-08-29 at 18:55 +0400, Kirill Korotaev wrote:
    > Add the following system calls for BC management:
    > 1. sys_get_bcid - get current BC id
    > 2. sys_set_bcid - change exec_ and fork_ BCs on current
    > 3. sys_set_bclimit - set limits for resources consumtions
    > 4. sys_get_bcstat - return br_resource_parm on resource
    >
    > Signed-off-by: Pavel Emelianov <xemul@sw.ru>
    > Signed-off-by: Kirill Korotaev <dev@sw.ru>
    >
    > ---
    <snip>

    > +
    > +asmlinkage long sys_set_bclimit(bcid_t id, unsigned long resource,
    > + unsigned long __user *limits)
    > +{
    > + int error;
    > + unsigned long flags;
    > + struct beancounter *bc;
    > + unsigned long new_limits[2];
    > +
    > + error = -EPERM;
    > + if(!capable(CAP_SYS_RESOURCE))
    > + goto out;
    > +
    > + error = -EINVAL;
    > + if (resource >= BC_RESOURCES)
    > + goto out;
    > +
    > + error = -EFAULT;
    > + if (copy_from_user(&new_limits, limits, sizeof(new_limits)))
    > + goto out;
    > +
    > + error = -EINVAL;
    > + if (new_limits[0] > BC_MAXVALUE || new_limits[1] > BC_MAXVALUE ||
    > + new_limits[0] > new_limits[1])
    > + goto out;
    > +
    > + error = -ENOENT;
    > + bc = beancounter_findcreate(id, BC_LOOKUP);
    > + if (bc == NULL)
    > + goto out;

    Moving this to be before copy_from_user() would be efficient.
    > +
    > + spin_lock_irqsave(&bc->bc_lock, flags);
    > + bc->bc_parms[resource].barrier = new_limits[0];
    > + bc->bc_parms[resource].limit = new_limits[1];
    > + spin_unlock_irqrestore(&bc->bc_lock, flags);
    > +
    > + put_beancounter(bc);
    > + error = 0;
    > +out:
    > + return error;
    > +}
    <snip>
    --

    ----------------------------------------------------------------------
    Chandra Seetharaman | Be careful what you choose....
    - sekharan@us.ibm.com | .......you may get it.
    ----------------------------------------------------------------------


    -
    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: 2006-08-30 21:17    [W:0.026 / U:30.284 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site