depending on the sizes and coefficients listed.  For example:
                        numa=fake=2*512,1024,4*256
                gives two 512M nodes, a 1024M node, and four 256M nodes.  The
-               remaining system RAM is allocated to an additional node.
+               remaining system RAM is allocated to an additional node.  If
+               the last character of CMDLINE is a *, the remaining system RAM
+               is instead divided up equally among its coefficient.
 
   numa=hotadd=percent
                Only allow hotadd memory to preallocate page structures upto
 
 done:
        if (!num_nodes)
                return -1;
-       /* Fill remainder of system RAM with a final node, if appropriate. */
+       /* Fill remainder of system RAM, if appropriate. */
        if (addr < max_addr) {
-               setup_node_range(num_nodes, nodes, &addr, max_addr - addr,
-                                max_addr);
-               num_nodes++;
+               switch (*(cmdline - 1)) {
+               case '*':
+                       /* Split remaining nodes into coeff chunks */
+                       if (coeff <= 0)
+                               break;
+                       num_nodes += split_nodes_equally(nodes, &addr, max_addr,
+                                                        num_nodes, coeff);
+                       break;
+               case ',':
+                       /* Do not allocate remaining system RAM */
+                       break;
+               default:
+                       /* Give one final node */
+                       setup_node_range(num_nodes, nodes, &addr,
+                                        max_addr - addr, max_addr);
+                       num_nodes++;
+               }
        }
 out:
        memnode_shift = compute_hash_shift(nodes, num_nodes);