Re: [PATCH v2 5/5] Numachip: use 2GB memory block size

From: Ingo Molnar
Date: Mon Oct 20 2014 - 08:02:54 EST



* Daniel J Blueman <daniel@xxxxxxxxxxxxx> wrote:

> On 19/10/2014 17:23, Ingo Molnar wrote:
> >
> >* Daniel J Blueman <daniel@xxxxxxxxxxxxx> wrote:
> >
> >>Use appropriate memory block size to reduce sysfs entry creation time
> >>by 16x.
> >>
> >>Boot-tested with the four permutations of X86_UV and X86_NUMACHIP.
> >>
> >>Signed-off-by: Daniel J Blueman <daniel@xxxxxxxxxxxxx>
> >>---
> >> arch/x86/mm/init_64.c | 7 ++++---
> >> 1 file changed, 4 insertions(+), 3 deletions(-)
> >>
> >>diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> >>index 5621c47..22ea6de 100644
> >>--- a/arch/x86/mm/init_64.c
> >>+++ b/arch/x86/mm/init_64.c
> >>@@ -53,6 +53,7 @@
> >> #include <asm/cacheflush.h>
> >> #include <asm/init.h>
> >> #include <asm/uv/uv.h>
> >>+#include <asm/numachip/numachip.h>
> >> #include <asm/setup.h>
> >>
> >> #include "mm_internal.h"
> >>@@ -1235,9 +1236,9 @@ static unsigned long probe_memory_block_size(void)
> >> /* start from 2g */
> >> unsigned long bz = 1UL<<31;
> >>
> >>-#ifdef CONFIG_X86_UV
> >>- if (is_uv_system()) {
> >>- printk(KERN_INFO "UV: memory block size 2GB\n");
> >>+#ifdef CONFIG_X86_64
> >>+ if (is_uv_system() || is_numachip_system()) {
> >>+ pr_info("Memory block size 2GB for large-SMP system\n");
> >> return 2UL * 1024 * 1024 * 1024;
> >
> >It would be a lot cleaner and more robust to have a more
> >intelligent decision here.
> >
> >Is there a reliable indicator for large 'sysfs entry creation
> >time', such as a lot of RAM present?
>
> Yes, agreed exactly.
>
> > Also, it would be nice to list the pros/cons of this change,
> > an advantage is reduced overhead - what are the
> > disadvantages?
>
> The single disadvantage is that small-memory systems won't be
> able to have finer control of memory offlining, though the
> impact of that depend on why the user is offlining memory of
> course.
>
> If it seems reasonable for x86-64 systems with >64GB memory to
> have 2GB memory block sizes, I could prepare that change
> instead and document the above if preferred?

I'd make it >= 64GB, but yes, that sounds like a good limit.

Thanks,

Ingo
--
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/