lkml.org 
[lkml]   [2010]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH UPDATED 3/3] vhost: apply cpumask and cgroup to vhost pollers
    >  	poller = kthread_create(vhost_poller, dev, "vhost-%d", current->pid);
    > - if (IS_ERR(poller))
    > - return PTR_ERR(poller);
    > + if (IS_ERR(poller)) {
    > + ret = PTR_ERR(poller);
    > + goto out;

    here...

    > + }
    > +
    > + ret = sched_getaffinity(current->pid, mask);
    > + if (ret)
    > + goto out;
    > +
    > + ret = sched_setaffinity(poller->pid, mask);
    > + if (ret)
    > + goto out;
    > +
    > + ret = cgroup_attach_task_current_cg(poller);
    > + if (ret)
    > + goto out;
    >
    > dev->vqs = vqs;
    > dev->nvqs = nvqs;
    > @@ -202,7 +221,14 @@ long vhost_dev_init(struct vhost_dev *de
    > vhost_poll_init(&dev->vqs[i].poll,
    > dev->vqs[i].handle_kick, POLLIN, dev);
    > }
    > - return 0;
    > +
    > + wake_up_process(poller); /* avoid contributing to loadavg */
    > + ret = 0;
    > +out:
    > + if (ret && poller)

    It's still buggy..

    > + kthread_stop(poller);
    > + free_cpumask_var(mask);
    > + return ret;
    > }
    >
    > /* Caller should have device mutex */
    >
    >


    \
     
     \ /
      Last update: 2010-05-31 09:49    [W:0.022 / U:30.144 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site