[Linuxppc-users] memmap kernel option on ubuntu 16.04 power8

Michael Ellerman mpe at ellerman.id.au
Wed Sep 27 20:45:56 AEST 2017


Hi Brian,

Brian Horton <brianh at linux.vnet.ibm.com> writes:
> Greetings all.
>
> I'm trying to run some tests with less memory than what's installed. the 
> 'mem=128G' option works, but it ends up putting all of the memory on the 
> first numa node:

It doesn't put memory anywhere, it just clamps the total memory, and it
happens that the first (lowest address) 128G of RAM is all on node 0.

>     available: 2 nodes (0,8)
>     node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
>     22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
>       41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
>     63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
>     node 0 size: 130695 MB
>     node 0 free: 10765 MB
>     node 8 cpus: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
>     98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
>     113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
>     130 131 132 133 134 135 136 137 138 139 140 141 142 143 1
>     44 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
>     node 8 size: 0 MB
>     node 8 free: 0 MB
>
>
> I want 64G on each of the 2 numa nodes. Found this kernel option:
>
>          memmap=nn[KMG]$ss[KMG]
>                          [KNL,ACPI] Mark specific memory as reserved.
>                          Region of memory to be reserved is from ss to ss+nn.
>                          Example: Exclude memory from 0x18690000-0x1869ffff
>                                   memmap=64K$0x18690000
>                                   or
>                                   memmap=0x10000$0x18690000
>
> and it works on x86:
>
>     available: 2 nodes (0-1)
>     node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 24 25 26 27 28 29 30 31 32 33
>     34 35
>     node 0 size: 64315 MB
>     node 0 free: 364 MB
>     node 1 cpus: 12 13 14 15 16 17 18 19 20 21 22 23 36 37 38 39 40 41
>     42 43 44 45 46 47
>     node 1 size: 64507 MB
>     node 1 free: 134 MB
>
>
> but i can't get it to work on Ubuntu 16.04 Power8.

It's not supported on Power.

Further up in the docs it says:

	memmap=exactmap	[KNL,X86] Enable setting of an exact
			E820 memory map, as specified by the user.

Where the X86 means x86 only.

> someone said that it worked on RHEL, so maybe it's an Ubuntu-specific bug..

OK that would be interesting, but I suspect it's not true :)

> thoughts? ideas?

AFAIK there's no way to achieve what you're after, without changing
kernel code or creating a custom device tree.

The mem= option is very primitive, it just clamps the total as I said
above, it's not NUMA aware.

What hardware/platform are you trying to do this on? Are you familiar
with kexec?

cheers


More information about the Linuxppc-users mailing list