* cgroup debug seems dead? @ 2010-10-19 15:51 Stephen Hemminger 2010-10-20 1:11 ` Li Zefan 0 siblings, 1 reply; 10+ messages in thread From: Stephen Hemminger @ 2010-10-19 15:51 UTC (permalink / raw) To: Paul Menage, Li Zefan Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA While running namespace checks to look for dead code, I found that debug_subsys is declared global but never used in current code. This leads to the fact that since debug_subsys is never used, the whole set of debugging functions is also never used. Is the whole CGROUP_DEBUG config option dead? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: cgroup debug seems dead? 2010-10-19 15:51 cgroup debug seems dead? Stephen Hemminger @ 2010-10-20 1:11 ` Li Zefan [not found] ` <4CBE41AE.2020101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Li Zefan @ 2010-10-20 1:11 UTC (permalink / raw) To: Stephen Hemminger Cc: Paul Menage, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA Stephen Hemminger wrote: > While running namespace checks to look for dead code, > I found that debug_subsys is declared global but never > used in current code. > > This leads to the fact that since debug_subsys is never > used, the whole set of debugging functions is also never > used. Is the whole CGROUP_DEBUG config option dead? > No, it's not. The debug code has been moved from kernel/cgroup_debug.c to kernel/cgroup.c, but the config and the code is not dead. Is it a false positive of that check? The pointer to debug_subsys is stored in an array, and the array will be iterated in some places, so debug_subsys will be accessed. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <4CBE41AE.2020101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>]
* Re: cgroup debug seems dead? [not found] ` <4CBE41AE.2020101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> @ 2010-10-20 1:12 ` Stephen Hemminger 2010-10-20 1:14 ` Paul Menage 0 siblings, 1 reply; 10+ messages in thread From: Stephen Hemminger @ 2010-10-20 1:12 UTC (permalink / raw) To: Li Zefan Cc: Paul Menage, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA On Wed, 20 Oct 2010 09:11:10 +0800 Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> wrote: > Stephen Hemminger wrote: > > While running namespace checks to look for dead code, > > I found that debug_subsys is declared global but never > > used in current code. > > > > This leads to the fact that since debug_subsys is never > > used, the whole set of debugging functions is also never > > used. Is the whole CGROUP_DEBUG config option dead? > > > > No, it's not. > > The debug code has been moved from kernel/cgroup_debug.c to > kernel/cgroup.c, but the config and the code is not dead. > > Is it a false positive of that check? The pointer to debug_subsys > is stored in an array, and the array will be iterated in some places, > so debug_subsys will be accessed. Where is it stored in an array? ~/kernel/linux-2.6$ git grep debug_subsys kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); kernel/cgroup.c:struct cgroup_subsys debug_subsys = { kernel/cgroup.c: .subsys_id = debug_subsys_id, There does not appear to be any place that structure is referenced. -- ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: cgroup debug seems dead? 2010-10-20 1:12 ` Stephen Hemminger @ 2010-10-20 1:14 ` Paul Menage [not found] ` <AANLkTinH2t41jvGG_D9qAdN5MvRHg7aR+J2mKV5ifMfC-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Paul Menage @ 2010-10-20 1:14 UTC (permalink / raw) To: Stephen Hemminger; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: > > Where is it stored in an array? > > ~/kernel/linux-2.6$ git grep debug_subsys > kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); > kernel/cgroup.c:struct cgroup_subsys debug_subsys = { > kernel/cgroup.c: .subsys_id = debug_subsys_id, It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c Paul ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <AANLkTinH2t41jvGG_D9qAdN5MvRHg7aR+J2mKV5ifMfC-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: cgroup debug seems dead? [not found] ` <AANLkTinH2t41jvGG_D9qAdN5MvRHg7aR+J2mKV5ifMfC-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2010-10-20 1:37 ` Stephen Hemminger 2010-10-20 1:42 ` Paul Menage 2010-10-20 1:43 ` Li Zefan 0 siblings, 2 replies; 10+ messages in thread From: Stephen Hemminger @ 2010-10-20 1:37 UTC (permalink / raw) To: Paul Menage; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA On Tue, 19 Oct 2010 18:14:10 -0700 Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: > On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger > <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: > > > > Where is it stored in an array? > > > > ~/kernel/linux-2.6$ git grep debug_subsys > > kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); > > kernel/cgroup.c:struct cgroup_subsys debug_subsys = { > > kernel/cgroup.c: .subsys_id = debug_subsys_id, > > It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c > > Paul That would work but doesn't because the following is missing in cgroup_subsys.h! #ifdef CONFIG_CGROUP_DEBUG SUBSYS(debug) #endif /* */ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: cgroup debug seems dead? 2010-10-20 1:37 ` Stephen Hemminger @ 2010-10-20 1:42 ` Paul Menage 2010-10-20 1:43 ` Li Zefan 1 sibling, 0 replies; 10+ messages in thread From: Paul Menage @ 2010-10-20 1:42 UTC (permalink / raw) To: Stephen Hemminger; +Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA On Tue, Oct 19, 2010 at 6:37 PM, Stephen Hemminger <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: > > That would work but doesn't because the following is missing > in cgroup_subsys.h! > > #ifdef CONFIG_CGROUP_DEBUG > SUBSYS(debug) > #endif > > /* */ > I see that fragment at line 16 in cgroup_subsys.h (see e.g. http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/cgroup_subsys.h;h=ccefff02b6cb005123c4b904e06116cb3a850474;hb=HEAD) Which kernel tree are you looking at? Paul ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: cgroup debug seems dead? 2010-10-20 1:37 ` Stephen Hemminger 2010-10-20 1:42 ` Paul Menage @ 2010-10-20 1:43 ` Li Zefan [not found] ` <4CBE492A.3020208-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> 1 sibling, 1 reply; 10+ messages in thread From: Li Zefan @ 2010-10-20 1:43 UTC (permalink / raw) To: Stephen Hemminger Cc: Paul Menage, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA Stephen Hemminger wrote: > On Tue, 19 Oct 2010 18:14:10 -0700 > Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: > >> On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger >> <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: >>> Where is it stored in an array? >>> >>> ~/kernel/linux-2.6$ git grep debug_subsys >>> kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); >>> kernel/cgroup.c:struct cgroup_subsys debug_subsys = { >>> kernel/cgroup.c: .subsys_id = debug_subsys_id, >> It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c >> >> Paul > > That would work but doesn't because the following is missing > in cgroup_subsys.h! It's there in cgroup_subsys.h (2.6.36-rc8). What kernel are you using? #ifdef CONFIG_CPUSETS SUBSYS(cpuset) #endif /* */ #ifdef CONFIG_CGROUP_DEBUG SUBSYS(debug) #endif /* */ #ifdef CONFIG_CGROUP_NS SUBSYS(ns) #endif > > #ifdef CONFIG_CGROUP_DEBUG > SUBSYS(debug) > #endif > ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <4CBE492A.3020208-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>]
* Re: cgroup debug seems dead? [not found] ` <4CBE492A.3020208-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> @ 2010-10-20 2:14 ` Stephen Hemminger 2010-10-20 2:23 ` Li Zefan 0 siblings, 1 reply; 10+ messages in thread From: Stephen Hemminger @ 2010-10-20 2:14 UTC (permalink / raw) To: Li Zefan Cc: Paul Menage, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA On Wed, 20 Oct 2010 09:43:06 +0800 Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> wrote: > Stephen Hemminger wrote: > > On Tue, 19 Oct 2010 18:14:10 -0700 > > Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: > > > >> On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger > >> <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: > >>> Where is it stored in an array? > >>> > >>> ~/kernel/linux-2.6$ git grep debug_subsys > >>> kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); > >>> kernel/cgroup.c:struct cgroup_subsys debug_subsys = { > >>> kernel/cgroup.c: .subsys_id = debug_subsys_id, > >> It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c > >> > >> Paul > > > > That would work but doesn't because the following is missing > > in cgroup_subsys.h! > > It's there in cgroup_subsys.h (2.6.36-rc8). What kernel are you using? Found it, thanks. Still not sure why the tools were confused. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: cgroup debug seems dead? 2010-10-20 2:14 ` Stephen Hemminger @ 2010-10-20 2:23 ` Li Zefan [not found] ` <4CBE52AE.2010409-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Li Zefan @ 2010-10-20 2:23 UTC (permalink / raw) To: Stephen Hemminger Cc: Paul Menage, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA Stephen Hemminger wrote: > On Wed, 20 Oct 2010 09:43:06 +0800 > Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> wrote: > >> Stephen Hemminger wrote: >>> On Tue, 19 Oct 2010 18:14:10 -0700 >>> Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: >>> >>>> On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger >>>> <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: >>>>> Where is it stored in an array? >>>>> >>>>> ~/kernel/linux-2.6$ git grep debug_subsys >>>>> kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); >>>>> kernel/cgroup.c:struct cgroup_subsys debug_subsys = { >>>>> kernel/cgroup.c: .subsys_id = debug_subsys_id, >>>> It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c >>>> >>>> Paul >>> That would work but doesn't because the following is missing >>> in cgroup_subsys.h! >> It's there in cgroup_subsys.h (2.6.36-rc8). What kernel are you using? > > Found it, thanks. Still not sure why the tools were confused. > That's normal. Think about how many false positives we can get with checkpatch.pl. Your tools should be static code analyzers, and the macro we use in cgroup is too complex for them. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <4CBE52AE.2010409-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>]
* Re: cgroup debug seems dead? [not found] ` <4CBE52AE.2010409-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> @ 2010-10-20 4:49 ` Américo Wang 0 siblings, 0 replies; 10+ messages in thread From: Américo Wang @ 2010-10-20 4:49 UTC (permalink / raw) To: Li Zefan Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Stephen Hemminger, Paul Menage On Wed, Oct 20, 2010 at 10:23:42AM +0800, Li Zefan wrote: >Stephen Hemminger wrote: >> On Wed, 20 Oct 2010 09:43:06 +0800 >> Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> wrote: >> >>> Stephen Hemminger wrote: >>>> On Tue, 19 Oct 2010 18:14:10 -0700 >>>> Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> wrote: >>>> >>>>> On Tue, Oct 19, 2010 at 6:12 PM, Stephen Hemminger >>>>> <shemminger-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org> wrote: >>>>>> Where is it stored in an array? >>>>>> >>>>>> ~/kernel/linux-2.6$ git grep debug_subsys >>>>>> kernel/cgroup.c: kfree(cont->subsys[debug_subsys_id]); >>>>>> kernel/cgroup.c:struct cgroup_subsys debug_subsys = { >>>>>> kernel/cgroup.c: .subsys_id = debug_subsys_id, >>>>> It's via the include of cgroup_subsys.h at the start of kernel/cgroup.c >>>>> >>>>> Paul >>>> That would work but doesn't because the following is missing >>>> in cgroup_subsys.h! >>> It's there in cgroup_subsys.h (2.6.36-rc8). What kernel are you using? >> >> Found it, thanks. Still not sure why the tools were confused. >> > >That's normal. Think about how many false positives we can get with >checkpatch.pl. > >Your tools should be static code analyzers, and the macro we use in cgroup >is too complex for them. namespace.pl is not that static. Becuase it checks the binary not the source, a little more dynamic that you think. ;) Stephen, what message did you see? ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-10-20 4:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-19 15:51 cgroup debug seems dead? Stephen Hemminger
2010-10-20 1:11 ` Li Zefan
[not found] ` <4CBE41AE.2020101-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-10-20 1:12 ` Stephen Hemminger
2010-10-20 1:14 ` Paul Menage
[not found] ` <AANLkTinH2t41jvGG_D9qAdN5MvRHg7aR+J2mKV5ifMfC-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-20 1:37 ` Stephen Hemminger
2010-10-20 1:42 ` Paul Menage
2010-10-20 1:43 ` Li Zefan
[not found] ` <4CBE492A.3020208-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-10-20 2:14 ` Stephen Hemminger
2010-10-20 2:23 ` Li Zefan
[not found] ` <4CBE52AE.2010409-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2010-10-20 4:49 ` Américo Wang
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.