On Tue, Jul 26, 2016 at 01:35:50PM +0200, Alexandre DERUMIER wrote: > Hi Wolfgang, > > I just come back from holiday.
Hope you had a good time :-) > > > > >>Issue #1: The above code currently does not honor our 'hostnodes' option > >>and breaks when trying to use them together. > > mmm indeed. I think this can be improved. I'll try to check that next week. > > > > >>Issue #2: We create one node per *virtual* socket, which means enabling > >>hugepages with more virtual sockets than physical numa nodes will die > >>with the error that the numa node doesn't exist. This should be fixable > >>as far as I can tell, as nothing really prevents us from putting them on > >>the same node? At least this used to work and I've already asked this > >>question at some point. You said the host kernel will try to map them, > >>yet it worked without issues before, so I'm still not sure about this. > >>Here's the conversation snippet: > > you can create more virtual numa node than physical, only if you don't define > "hostnodes" option. > > (from my point of vue, it's totally useless, as the whole point of numa > option is to map virtual node to physical node, to avoid memory access > bottleneck) Useless, yes, which is why I'm wondering whether this should be supported/warned about/error... > > if hostnodes is defined, you need to have physical numa node available (vm > with 2 numa node need host with 2 numa node) > > With hugepage enabled, I have added a restriction to have hostnode defined, > because you want to be sure that memory is on same node. > > > # hostnodes > my $hostnodelists = $numa->{hostnodes}; > if (defined($hostnodelists)) { > my $hostnodes; > foreach my $hostnoderange (@$hostnodelists) { > my ($start, $end) = @$hostnoderange; > $hostnodes .= ',' if $hostnodes; > $hostnodes .= $start; > $hostnodes .= "-$end" if defined($end); > $end //= $start; > for (my $i = $start; $i <= $end; ++$i ) { > die "host NUMA node$i doesn't exist\n" if ! -d > "/sys/devices/system/node/node$i/"; > } > } > > # policy > my $policy = $numa->{policy}; > die "you need to define a policy for hostnode $hostnodes\n" > if !$policy; > $mem_object .= ",host-nodes=$hostnodes,policy=$policy"; > } else { > die "numa hostnodes need to be defined to use hugepages" if > $conf->{hugepages}; > } > > > >>Issue #3: Actually just an extension to #2: we currently cannot enable > >>NUMA at all (even without hugepages) when there are more virtual sockets > >>than physical numa nodes, and this used to work. The big question is > >>now: does this even make sense? Or should we tell users not to do this? > > That's strange, it should work if you don't defined hugepages and hostnodes > option(in numaX) Actually this one was my own faulty configuration, sorry. _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel