On 02/05/2017 22:09, Eduardo Habkost wrote: > On Tue, May 02, 2017 at 06:29:55PM +0200, Laurent Vivier wrote: > [...] >> diff --git a/numa.c b/numa.c >> index 6fc2393..750fd95 100644 >> --- a/numa.c >> +++ b/numa.c >> @@ -294,6 +294,42 @@ static void validate_numa_cpus(void) >> g_free(seen_cpus); >> } >> >> +void numa_legacy_auto_assign_ram(MachineClass *mc, NodeInfo *nodes, >> + int nb_nodes, ram_addr_t size) >> +{ >> + int i; >> + uint64_t usedmem = 0; >> + >> + /* Align each node according to the alignment >> + * requirements of the machine class >> + */ >> + >> + for (i = 0; i < nb_nodes - 1; i++) { >> + nodes[i].node_mem = (size / nb_nodes) & >> + ~((1 << mc->numa_mem_align_shift) - 1); >> + usedmem += nodes[i].node_mem; >> + } >> + nodes[i].node_mem = size - usedmem; >> +} >> + >> +void numa_default_auto_assign_ram(MachineClass *mc, NodeInfo *nodes, >> + int nb_nodes, ram_addr_t size) >> +{ >> + int i; >> + uint64_t usedmem = 0, node_mem; >> + uint64_t granularity = size / nb_nodes; >> + uint64_t propagate = 0; >> + >> + for (i = 0; i < nb_nodes - 1; i++) { >> + node_mem = (granularity + propagate) & >> + ~((1 << mc->numa_mem_align_shift) - 1); >> + propagate = granularity + propagate - node_mem; >> + nodes[i].node_mem = node_mem; >> + usedmem += node_mem; >> + } >> + nodes[i].node_mem = ram_size - usedmem; > > I believe you meant 'size - usedmem' here. > > I can fix this while applying the patch, if that's OK. The rest > of the patch looks good to me.
Yes, you're right. You can fix this and apply. Thanks, Laurent