Thread (29 messages) 29 messages, 3 authors, 2015-05-18

Re: [PATCH v10 3/4] cgroups: allow a cgroup subsystem to reject a fork

From: Aleksa Sarai <hidden>
Date: 2015-05-14 10:57:52
Also in: lkml

Hi Tejun,
quoted
+/* Ditto for the can_fork/cancel_fork/reapply_fork callbacks. */
+static int need_canfork_callback __read_mostly;
+static int need_cancelfork_callback __read_mostly;
And given that the reason we have these masks is avoiding iteration in
relatively hot paths.  Does cancelfork mask make sense?
Do you still want me to remove it? I only added it because it made the
callback code more consistent for cancel_fork and can_fork.
quoted
+void cgroup_cancel_fork(struct task_struct *child,
+                     void *ss_state[CGROUP_PREFORK_COUNT])
+{
+     struct cgroup_subsys *ss;
+     int i;
+
+     for_each_subsys_which(need_cancelfork_callback, ss, i) {
+             void *state = NULL;
+
+             if (CGROUP_PREFORK_START <= i && i < CGROUP_PREFORK_END)
+                     state = ss_state[i - CGROUP_PREFORK_START];
Maybe we want a helper callback which does

        if (CGROUP_PREFORK_START <= ssid && ssid < CGROUP_PREFORK_END)
                return &ss_state[ssid - CGROUP_PREFORK_START];
        return NULL;
What would be a nice name for it? I can't think of anything better
than __get_ss_private() and __get_ss_privatep().

--
Aleksa Sarai (cyphar)
www.cyphar.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help