Re: [RFC -V5] autonuma: Migrate on fault among multiple bound nodes

From: Huang, Ying
Date: Thu Nov 19 2020 - 03:03:18 EST


Mel Gorman <mgorman@xxxxxxx> writes:

> On Thu, Nov 19, 2020 at 02:17:21PM +0800, Huang, Ying wrote:
>> >> Various page placement optimization based on the NUMA balancing can be
>> >> done with these flags. As the first step, in this patch, if the
>> >> memory of the application is bound to multiple nodes (MPOL_BIND), and
>> >> in the hint page fault handler the accessing node are in the policy
>> >> nodemask, the page will be tried to be migrated to the accessing node
>> >> to reduce the cross-node accessing.
>> >>
>> >
>> > The patch still lacks supporting data. It really should have a basic
>> > benchmark of some sort serving as an example of how the policies should
>> > be set and a before/after comparison showing the throughput of MPOL_BIND
>> > accesses spanning 2 or more nodes is faster when numa balancing is enabled.
>>
>> Sure. Will add some basic benchmark data and usage example.
>>
>
> Thanks
>
>> > A man page update should also be added clearly outlining when an
>> > application should consider using it with the linux-api people cc'd
>> > for review.
>>
>> Yes. Will Cc linux-api for review and will submit patches to
>> manpages.git after the API is finalized.
>>
>
> Add the manpages patch to this series. While it is not merged through
> the kernel, it's important for review purposes.
>
>> > The main limitation is that if this requires application modification,
>> > it may never be used. For example, if an application uses openmp places
>> > that translates into bind then openmp needs knowledge of the flag.
>> > Similar limitations apply to MPI. This feature has a risk that no one
>> > uses it.
>>
>> My plan is to add a new option to `numactl`
>> (https://github.com/numactl/numactl/), so users who want to enable NUMA
>> balancing within the constrains of NUMA binding can use that. I can
>> reach some Openstack and Kubernate developers to check whether it's
>> possible to add the support to these software. For other applications,
>> Yes, it may take long time for the new flag to be used.
>>
>
> Patch for numactl should also be included to see what it looks like in
> practice. Document what happens if the flag does not exist in the
> running kernel.
>
> I know this is awkward, but it's an interface exposed to userspace and
> as it is expected that applications will exist that then try run on
> older kernels, it needs to be very up-front about what happens on older
> kernels. It would not be a complete surprise for openmp and openmpi
> packages to be updated on distributions with older kernels (either by
> source or via packaging) leading to surprises.

Sure. I understand that we should be careful about the user space
interface. I will send out a new version together with the man pages
and numactl patches with all your comments addressed.

Best Regards,
Huang, Ying