Re: [PATCH nf-next] netfilter: xtables: lightweight process control group matching
From: Gao feng <hidden>
Date: 2013-10-07 09:42:49
Also in:
cgroups, netfilter-devel
From: Gao feng <hidden>
Date: 2013-10-07 09:42:49
Also in:
cgroups, netfilter-devel
On 10/07/2013 05:17 PM, Daniel Borkmann wrote:
On 10/07/2013 05:07 AM, Gao feng wrote:quoted
On 10/05/2013 02:20 AM, Daniel Borkmann wrote:quoted
+static void cgroup_attach(struct cgroup_subsys_state *css, + struct cgroup_taskset *tset) +{ + struct task_struct *p; + void *v; + + cgroup_taskset_for_each(p, css, tset) { + task_lock(p); + v = (void *)(unsigned long) task_fwid(p);Shouldn't v be css_nf_state(css)->fwid?Nope, this is in line with net_cls and net_prio; the task has been moved there via cgroup backend already through cgroup_attach_task(),
Yes, these tasks have already been migrated to this cgroup.
so we only need to update each of it's socket sk_cgrp_fwid parts.
Sorry, I still don't know in which situation that css_nf_state(css)->fwid isn't equal to task_fwid(p). two threads write the same pid to different cgroup at the same time? it seems can not happen since we have cgroup_mutex protected.
css is not strictly for net_filter. See also: 6a328d8c6f (cgroup: net_cls: Rework update socket logic)quoted
quoted
+ iterate_fd(p->files, 0, cgroup_fwid_update, v); + task_unlock(p); + } +}