Re: [PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di"
On Wed, Dec 10, 2014 at 01:49:44PM -0800, Andrew Morton wrote: > On Wed, 10 Dec 2014 10:52:42 -0500 Tejun Heo wrote: > > The first two patches implement the pr_cont variants of the formatting > > functions. The rest convert the existing users to pr_cont and seq > > functions subsystem-by-subsystem. It'd be the easiest to route all > > through -mm but the conversion patches can go through individual > > subsystem trees afterwards if necessary. > > But you're working on other code which will depend on this? If so > perhaps these should be held in your tree. Yeah, that works too. I was still targeting 3.19 window and some of the conversion patches were conflicting, so thought it'd be easier through -mm. Given that the changes aren't that invasive, I think it'd be still a good idea to merge the workqueue debugging during this merge window as it gives a lot more visibility into tricky issues. Once it's agreed on, I'll try to route the feature patches (the first two from this series + actual workqueue changes) early through wq branch. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di"
On Wed, 10 Dec 2014 10:52:42 -0500 Tejun Heo wrote: > 0001-bitmap-restructure-bitmap_sn-list-printf.patch > 0002-bitmap-cpumask-nodemask-implement-pr_cont-variants-o.patch > 0003-mips-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch > 0004-powerpc-use-cpu-node-mask-pr_cont-and-seq-output-fun.patch > 0005-tile-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch > 0006-x86-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch > 0007-xtensa-use-cpu-node-mask-pr_cont-and-seq-output-func.patch > 0008-cpuset-use-cpu-node-mask-pr_cont-and-seq-output-func.patch > 0009-rcu-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch > 0010-sched-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch > 0011-timer-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch > 0012-percpu-use-cpu-node-mask-pr_cont-and-seq-output-func.patch > > The first two patches implement the pr_cont variants of the formatting > functions. The rest convert the existing users to pr_cont and seq > functions subsystem-by-subsystem. It'd be the easiest to route all > through -mm but the conversion patches can go through individual > subsystem trees afterwards if necessary. But you're working on other code which will depend on this? If so perhaps these should be held in your tree. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di"
Hello, bitmap implements two variants of scnprintf functions to format a bitmap into a string and cpumask and nodemask wrap them to provide equivalent interfaces. The scnprintf family of functions require a string buffer as an output target which complicates code paths which just want to print out the mask through printk for informational or debug purposes as they have to worry about how large the buffer should be and whether it's too large to allocate on stack. Neither cpumask or nodemask provides a guildeline on how large the target buffer should be forcing users come up with their own solutions - some allocate an arbitrarily sized buffer which is small enough to allocate on stack but may be too short in corner cases, other come up with a custom upper limit calculation considering the output format, some allocate the buffer dynamically while one resorted to using lock to synchronize access to a static buffer. This is an artificial problem which is being solved repeatedly for no benefit. In a lot of cases, the output area already exists and can be targeted directly making the intermediate buffer unnecessary. This patchset implement pr_cont variants of the formatting functions and convert the scnprintf output function users to use them or seq_*() functions to directly target the output area and remove the intermediate buffers where possible. This patchset contains the following 12 patches. 0001-bitmap-restructure-bitmap_sn-list-printf.patch 0002-bitmap-cpumask-nodemask-implement-pr_cont-variants-o.patch 0003-mips-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0004-powerpc-use-cpu-node-mask-pr_cont-and-seq-output-fun.patch 0005-tile-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0006-x86-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0007-xtensa-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0008-cpuset-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0009-rcu-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0010-sched-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0011-timer-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0012-percpu-use-cpu-node-mask-pr_cont-and-seq-output-func.patch The first two patches implement the pr_cont variants of the formatting functions. The rest convert the existing users to pr_cont and seq functions subsystem-by-subsystem. It'd be the easiest to route all through -mm but the conversion patches can go through individual subsystem trees afterwards if necessary. While there's ~70 line increase in LOC, the increase is from the restructuring of bitmap output functions and addition of inline interface functions along with comments and things get simplified / more robust on the user side and future users won't have to try to solve the same fruitless problem over and over again. The patchset is based on top of -mm as of Dec 9, 2014 and also available in the following git branch. git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git review-bitmap-pr_cont arch/mips/netlogic/common/smp.c | 11 +- arch/powerpc/sysdev/xics/ics-opal.c |7 - arch/powerpc/sysdev/xics/ics-rtas.c |8 - arch/tile/kernel/hardwall.c |6 - arch/tile/kernel/proc.c |6 - arch/tile/kernel/setup.c| 12 +- arch/tile/mm/homecache.c| 14 +-- arch/tile/mm/init.c | 12 +- arch/x86/mm/numa.c |9 -- arch/x86/platform/uv/uv_nmi.c | 27 ++ arch/xtensa/kernel/setup.c | 10 -- drivers/net/ethernet/tile/tilegx.c |6 - drivers/net/ethernet/tile/tilepro.c |6 - include/linux/bitmap.h |4 include/linux/cpumask.h | 18 include/linux/nodemask.h| 16 +++ kernel/cpuset.c | 13 --- kernel/rcu/tree_plugin.h|6 - kernel/sched/core.c | 11 +- kernel/sched/stats.c| 11 -- kernel/time/tick-sched.c| 12 -- lib/bitmap.c| 148 ++-- mm/percpu.c |7 - 23 files changed, 224 insertions(+), 156 deletions(-) Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di
Hello, bitmap implements two variants of scnprintf functions to format a bitmap into a string and cpumask and nodemask wrap them to provide equivalent interfaces. The scnprintf family of functions require a string buffer as an output target which complicates code paths which just want to print out the mask through printk for informational or debug purposes as they have to worry about how large the buffer should be and whether it's too large to allocate on stack. Neither cpumask or nodemask provides a guildeline on how large the target buffer should be forcing users come up with their own solutions - some allocate an arbitrarily sized buffer which is small enough to allocate on stack but may be too short in corner cases, other come up with a custom upper limit calculation considering the output format, some allocate the buffer dynamically while one resorted to using lock to synchronize access to a static buffer. This is an artificial problem which is being solved repeatedly for no benefit. In a lot of cases, the output area already exists and can be targeted directly making the intermediate buffer unnecessary. This patchset implement pr_cont variants of the formatting functions and convert the scnprintf output function users to use them or seq_*() functions to directly target the output area and remove the intermediate buffers where possible. This patchset contains the following 12 patches. 0001-bitmap-restructure-bitmap_sn-list-printf.patch 0002-bitmap-cpumask-nodemask-implement-pr_cont-variants-o.patch 0003-mips-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0004-powerpc-use-cpu-node-mask-pr_cont-and-seq-output-fun.patch 0005-tile-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0006-x86-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0007-xtensa-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0008-cpuset-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0009-rcu-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0010-sched-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0011-timer-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0012-percpu-use-cpu-node-mask-pr_cont-and-seq-output-func.patch The first two patches implement the pr_cont variants of the formatting functions. The rest convert the existing users to pr_cont and seq functions subsystem-by-subsystem. It'd be the easiest to route all through -mm but the conversion patches can go through individual subsystem trees afterwards if necessary. While there's ~70 line increase in LOC, the increase is from the restructuring of bitmap output functions and addition of inline interface functions along with comments and things get simplified / more robust on the user side and future users won't have to try to solve the same fruitless problem over and over again. The patchset is based on top of -mm as of Dec 9, 2014 and also available in the following git branch. git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git review-bitmap-pr_cont arch/mips/netlogic/common/smp.c | 11 +- arch/powerpc/sysdev/xics/ics-opal.c |7 - arch/powerpc/sysdev/xics/ics-rtas.c |8 - arch/tile/kernel/hardwall.c |6 - arch/tile/kernel/proc.c |6 - arch/tile/kernel/setup.c| 12 +- arch/tile/mm/homecache.c| 14 +-- arch/tile/mm/init.c | 12 +- arch/x86/mm/numa.c |9 -- arch/x86/platform/uv/uv_nmi.c | 27 ++ arch/xtensa/kernel/setup.c | 10 -- drivers/net/ethernet/tile/tilegx.c |6 - drivers/net/ethernet/tile/tilepro.c |6 - include/linux/bitmap.h |4 include/linux/cpumask.h | 18 include/linux/nodemask.h| 16 +++ kernel/cpuset.c | 13 --- kernel/rcu/tree_plugin.h|6 - kernel/sched/core.c | 11 +- kernel/sched/stats.c| 11 -- kernel/time/tick-sched.c| 12 -- lib/bitmap.c| 148 ++-- mm/percpu.c |7 - 23 files changed, 224 insertions(+), 156 deletions(-) Thanks. -- tejun -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di
On Wed, 10 Dec 2014 10:52:42 -0500 Tejun Heo t...@kernel.org wrote: 0001-bitmap-restructure-bitmap_sn-list-printf.patch 0002-bitmap-cpumask-nodemask-implement-pr_cont-variants-o.patch 0003-mips-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0004-powerpc-use-cpu-node-mask-pr_cont-and-seq-output-fun.patch 0005-tile-use-cpu-node-mask-pr_cont-and-seq-output-functi.patch 0006-x86-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0007-xtensa-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0008-cpuset-use-cpu-node-mask-pr_cont-and-seq-output-func.patch 0009-rcu-use-cpu-node-mask-pr_cont-and-seq-output-functio.patch 0010-sched-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0011-timer-use-cpu-node-mask-pr_cont-and-seq-output-funct.patch 0012-percpu-use-cpu-node-mask-pr_cont-and-seq-output-func.patch The first two patches implement the pr_cont variants of the formatting functions. The rest convert the existing users to pr_cont and seq functions subsystem-by-subsystem. It'd be the easiest to route all through -mm but the conversion patches can go through individual subsystem trees afterwards if necessary. But you're working on other code which will depend on this? If so perhaps these should be held in your tree. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCHSET -mm] bitmap, cpumask, nodemask: implement pr_cont functions and use di
On Wed, Dec 10, 2014 at 01:49:44PM -0800, Andrew Morton wrote: On Wed, 10 Dec 2014 10:52:42 -0500 Tejun Heo t...@kernel.org wrote: The first two patches implement the pr_cont variants of the formatting functions. The rest convert the existing users to pr_cont and seq functions subsystem-by-subsystem. It'd be the easiest to route all through -mm but the conversion patches can go through individual subsystem trees afterwards if necessary. But you're working on other code which will depend on this? If so perhaps these should be held in your tree. Yeah, that works too. I was still targeting 3.19 window and some of the conversion patches were conflicting, so thought it'd be easier through -mm. Given that the changes aren't that invasive, I think it'd be still a good idea to merge the workqueue debugging during this merge window as it gives a lot more visibility into tricky issues. Once it's agreed on, I'll try to route the feature patches (the first two from this series + actual workqueue changes) early through wq branch. Thanks. -- tejun -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/