lkml.org 
[lkml]   [2007]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC][-mm PATCH 1/8] Memory controller resource counters (v3)
    On 7/20/07, Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
    > +
    > +ssize_t res_counter_read(struct res_counter *counter, int member,
    > + const char __user *userbuf, size_t nbytes, loff_t *pos)
    > +{
    > + unsigned long *val;
    > + char buf[64], *s;
    > +
    > + s = buf;
    > + val = res_counter_member(counter, member);
    > + s += sprintf(s, "%lu\n", *val);
    > + return simple_read_from_buffer((void __user *)userbuf, nbytes,
    > + pos, buf, s - buf);
    > +}

    I think it should be possible to use the support built-in to task
    containers to export a uint64 rather than having to create a separate
    function here.

    > +
    > +ssize_t res_counter_write(struct res_counter *counter, int member,
    > + const char __user *userbuf, size_t nbytes, loff_t *pos)
    > +{
    > + int ret;
    > + char *buf, *end;
    > + unsigned long tmp, *val;
    > +
    > + buf = kmalloc(nbytes + 1, GFP_KERNEL);
    > + ret = -ENOMEM;
    > + if (buf == NULL)
    > + goto out;
    > +
    > + buf[nbytes] = '\0';
    > + ret = -EFAULT;
    > + if (copy_from_user(buf, userbuf, nbytes))
    > + goto out_free;
    > +
    > + ret = -EINVAL;
    > + tmp = simple_strtoul(buf, &end, 10);
    > + if (*end != '\0')
    > + goto out_free;
    > +
    > + val = res_counter_member(counter, member);
    > + *val = tmp;
    > + ret = nbytes;
    > +out_free:
    > + kfree(buf);
    > +out:
    > + return ret;
    > +}

    I should probably add a generic "write uint64" wraper to task
    containers as well.

    Paul
    -
    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: 2007-07-20 22:23    [W:0.022 / U:151.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site