Re: [ 032/173] cgroup: cgroup_subsys->fork() should be called after the task is added to css_set

From: Satoru Takeuchi
Date: Wed Jan 02 2013 - 06:22:04 EST


At Tue, 01 Jan 2013 14:20:56 +0000,
Ben Hutchings wrote:
...
> > At Fri, 28 Dec 2012 20:04:02 +0100,
> > Ben Hutchings wrote:
> > >
> > > 3.2-stable review patch. If anyone has any objections, please let me know.
> > >
> > > ------------------
> > >
> > > From: Tejun Heo <tj@xxxxxxxxxx>
> > >
> > > commit 5edee61edeaaebafe584f8fb7074c1ef4658596b upstream.
> [...]
> > I failed to compile 3.2.36-rc1 with my x86_64 box with enabling cgroup.
> >
> > build log:
> > ===============================================================================
> > ...
> > CC kernel/cgroup.o
> > kernel/cgroup.c: In function ‘cgroup_post_fork’:
> > kernel/cgroup.c:4540:5: warning: passing argument 1 of ‘ss->fork’ from incompatible pointer type [enabled by default]
> > kernel/cgroup.c:4540:5: note: expected ‘struct cgroup_subsys *’ but argument is of type ‘struct task_struct *’
> > kernel/cgroup.c:4540:5: error: too few arguments to function ‘ss->fork’
> > make[2]: *** [kernel/cgroup.o] Error 1
> > make[1]: *** [kernel] Error 2
> > make[1]: Leaving directory `/home/sat/src/linux-stable'
> > make: *** [debian/stamp/build/kernel] Error 2
> > ===============================================================================
> >
> > It comes from the ss->fork()'s API change introduced by commit 761b3ef50e1c2.
> [...]
> > I found you mentioned this difference in the desctiption as follows.
> >
> > > - cgroup_subsys::fork takes cgroup_subsys pointer as first parameter]
> >
> > I guess you attached the wrong patch, or you forgot to modify the
> > original patch. Here is the correct patch for the latter case. It just
> > change "ss->fork(child)" to "ss->fork(ss, child)" as your description.
> [...]
>
> The correct version is in the combined patch, but I somehow missed
> refreshing this individual patch. Thanks for pointing this out.

Ah, I got your patches from your git tree instead of combined patch
since I lost that patch's mail. Anyway, this kernel can be built and boot
without any problem. Building a kernel with this kernel also works fine.

- Build Machine: debian wheezy x86_64
CPU: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz x 4
memory: 8GB

- Test machine: debian wheezy x86_64(KVM guest on the Build Machine)
vCPU: x2
memory: 2GB

I reviewed the following patches and it looks good to me.

> Al Viro (1):
> ARM: missing ->mmap_sem around find_vma() in swp_emulate.c
> [7bf9b7bef881aac820bf1f2e9951a17b09bd7e04]
>
> Alan Cox (3):
> ACPI: missing break
> [879dca019dc43a1622edca3e7dde644b14b5acc5]
...
> Artem Bityutskiy (1):
> proc: pid/status: show all supplementary groups
> [8d238027b87e654be552eabdf492042a34c5c300]
>
> Ben Hutchings (4):
...
> Revert "device_cgroup: fix RCU usage"
> [not upstream; change was correct for mainline but not 3.2]
> Revert "mm: vmscan: fix endless loop in kswapd balancing"
> [not upstream; change was correct for mainline but not 3.2]
> mm: add kmap_to_page()
> [part of 5a178119b0fbe37f7dfb602b37df9cc4b1dc9d71]
...
> Dan Carpenter (3):
...
> ftrace: Clear bits properly in reset_iter_read()
> [70f77b3f7ec010ff9624c1f2e39a81babc9e2429]
...
> David Rientjes (1):
> thp, memcg: split hugepage for memcg oom on cow
> [1f1d06c34f7675026326cd9f39ff91e4555cf355]
>
> David Woodhouse (2):
> intel-iommu: Free old page tables before creating superpage
> [6491d4d02893d9787ba67279595990217177b351]
> solos-pci: fix double-free of TX skb in DMA mode
> [cae49ede00ec3d0cda290b03fee55b72b49efc11]
...
> Eric Dumazet (1):
> rcu: Fix batch-limit size problem
> [878d7439d0f45a95869e417576774673d1fa243f]
>
> Eric Sandeen (1):
> ext4: init pagevec in ext4_da_block_invalidatepages
> [66bea92c69477a75a5d37b9bfed5773c92a3c4b4]
>
> Eugene Shatokhin (1):
> ext4: fix memory leak in ext4_xattr_set_acl()'s error path
> [24ec19b0ae83a385ad9c55520716da671274b96c]
...
> x86: hpet: Fix masking of MSI interrupts
> [6acf5a8c931da9d26c8dd77d784daaf07fa2bff0]
...
> Kees Cook (2):
> exec: do not leave bprm->interp on stack
> [b66c5984017533316fd1951770302649baf1aa33]
...
> Marek Szyprowski (1):
> mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls
> [387870f2d6d679746020fa8e25ef786ff338dc98]
>
...
> Mel Gorman (1):
> tmpfs: fix shared mempolicy leak
> [18a2f371f5edf41810f6469cb9be39931ef9deb9]
...
> Mike Galbraith (1):
> Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
> [fd8ef11730f1d03d5d6555aa53126e9e34f52f12]
...
> Steven Rostedt (1):
> ring-buffer: Fix NULL pointer if rb_set_head_page() fails
> [54f7be5b831254199522523ccab4c3d954bbf576]
...
> Tejun Heo (4):
> cgroup: cgroup_subsys->fork() should be called after the task is added to css_set
> [5edee61edeaaebafe584f8fb7074c1ef4658596b]
> cgroup: remove incorrect dget/dput() pair in cgroup_create_dir()
> [175431635ec09b1d1bba04979b006b99e8305a83]
> freezer: add missing mb's to freezer_count() and freezer_should_skip()
> [dd67d32dbc5de299d70cc9e10c6c1e29ffa56b92]
> workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s
> [fc4b514f2727f74a4587c31db87e0e93465518c3]
>
> Thomas Gleixner (1):
> genirq: Always force thread affinity
> [04aa530ec04f61875b99c12721162e2964e3318c]
...
> Will Deacon (4):
...
> mm: highmem: export kmap_to_page for modules
> [f0263d2d222e9e25f2587e51a9dc58c6fb2a9352]
> virtio: 9p: correctly pass physical address to userspace for high pages
> [b9cdc88df8e63e81c723b82c286fc97f5d0dc325]
> virtio: force vring descriptors to be allocated from lowmem
> [b92b1b89a33c172c075edccf6afb0edc41d851fd]
...
> Xiaotian Feng (1):
> [libata] fix Null pointer dereference on disk error
> [26cd4d65deba587f3cf2329b6869ce02bcbe68ec]

Thanks,
Satoru
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/