Memory and Thread Placement Optimization Developer's Guide

Exit Print View

Updated: July 2014
 
 

Locality Groups and Thread and Memory Placement

This section discusses the APIs used to discover and affect thread and memory placement with respect to lgroups.

  • The lgrp_home(3LGRP) function is used to discover thread placement.

  • The meminfo(2) system call is used to discover memory placement.

  • The MADV_ACCESS flags to the madvise(3C) function are used to affect memory allocation among lgroups.

  • The lgrp_affinity_set(3LGRP) function can affect thread and memory placement by setting a thread's affinity for a given lgroup.

  • The affinities of an lgroup may specify an order of preference for lgroups from which to allocate resources.

  • The kernel needs information about the likely pattern of an application's memory use in order to allocate memory resources efficiently.

  • The madvise() function and its shared object analogue madv.so.1 provide this information to the kernel.

  • A running process can gather memory usage information about itself by using the meminfo() system call.