2009-06-08 17:55:44

by Hugh Dickins

[permalink] [raw]
Subject: [PATCH] latencytop: note task_struct bloat

Add belated comment to LATENCYTOP help text, making clear that this is a
much more expensive option than you might think: along with the options
it selects, it may add more than 4000 bytes to each struct task_struct
(on 64-bit; more than 2000 on 32-bit), effectively quadrupling the size
of an otherwise lean task_struct (in fact, slab on x86_64 fits only 1
in two pages, whereas it fits 5 in two pages without LATENCYTOP=y).

Signed-off-by: Hugh Dickins <[email protected]>
---

lib/Kconfig.debug | 4 ++++
1 file changed, 4 insertions(+)

--- 2.6.30-rc8/lib/Kconfig.debug 2009-05-16 10:26:16.000000000 +0100
+++ linux/lib/Kconfig.debug 2009-06-08 18:30:50.000000000 +0100
@@ -826,6 +826,10 @@ config LATENCYTOP
Enable this option if you want to use the LatencyTOP tool
to find out which userspace is blocking on what kernel operations.

+ Note: enabling this option may add more than 4000 bytes to each
+ task_struct on a 64-bit kernel (more than 2000 bytes to task_struct
+ on a 32-bit kernel), multiplying its memory usage by 4 or even 5.
+
config SYSCTL_SYSCALL_CHECK
bool "Sysctl checks"
depends on SYSCTL_SYSCALL


2009-06-08 20:52:55

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] latencytop: note task_struct bloat


* Hugh Dickins <[email protected]> wrote:

> Add belated comment to LATENCYTOP help text, making clear that this is a
> much more expensive option than you might think: along with the options
> it selects, it may add more than 4000 bytes to each struct task_struct
> (on 64-bit; more than 2000 on 32-bit), effectively quadrupling the size
> of an otherwise lean task_struct (in fact, slab on x86_64 fits only 1
> in two pages, whereas it fits 5 in two pages without LATENCYTOP=y).
>
> Signed-off-by: Hugh Dickins <[email protected]>
> ---
>
> lib/Kconfig.debug | 4 ++++
> 1 file changed, 4 insertions(+)
>
> --- 2.6.30-rc8/lib/Kconfig.debug 2009-05-16 10:26:16.000000000 +0100
> +++ linux/lib/Kconfig.debug 2009-06-08 18:30:50.000000000 +0100
> @@ -826,6 +826,10 @@ config LATENCYTOP
> Enable this option if you want to use the LatencyTOP tool
> to find out which userspace is blocking on what kernel operations.
>
> + Note: enabling this option may add more than 4000 bytes to each
> + task_struct on a 64-bit kernel (more than 2000 bytes to task_struct
> + on a 32-bit kernel), multiplying its memory usage by 4 or even 5.
> +

Ah, nasty - quadratics in action.

This should be improved really. Arjan, what would it take to convert
latencytop over to perfcounters? What would be ideal software
counter for this?

Ingo