~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/mm/free_page_reporting.rst

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 =====================
  2 Free Page Reporting
  3 =====================
  4 
  5 Free page reporting is an API by which a device can register to receive
  6 lists of pages that are currently unused by the system. This is useful in
  7 the case of virtualization where a guest is then able to use this data to
  8 notify the hypervisor that it is no longer using certain pages in memory.
  9 
 10 For the driver, typically a balloon driver, to use of this functionality
 11 it will allocate and initialize a page_reporting_dev_info structure. The
 12 field within the structure it will populate is the "report" function
 13 pointer used to process the scatterlist. It must also guarantee that it can
 14 handle at least PAGE_REPORTING_CAPACITY worth of scatterlist entries per
 15 call to the function. A call to page_reporting_register will register the
 16 page reporting interface with the reporting framework assuming no other
 17 page reporting devices are already registered.
 18 
 19 Once registered the page reporting API will begin reporting batches of
 20 pages to the driver. The API will start reporting pages 2 seconds after
 21 the interface is registered and will continue to do so 2 seconds after any
 22 page of a sufficiently high order is freed.
 23 
 24 Pages reported will be stored in the scatterlist passed to the reporting
 25 function with the final entry having the end bit set in entry nent - 1.
 26 While pages are being processed by the report function they will not be
 27 accessible to the allocator. Once the report function has been completed
 28 the pages will be returned to the free area from which they were obtained.
 29 
 30 Prior to removing a driver that is making use of free page reporting it
 31 is necessary to call page_reporting_unregister to have the
 32 page_reporting_dev_info structure that is currently in use by free page
 33 reporting removed. Doing this will prevent further reports from being
 34 issued via the interface. If another driver or the same driver is
 35 registered it is possible for it to resume where the previous driver had
 36 left off in terms of reporting free pages.
 37 
 38 Alexander Duyck, Dec 04, 2019

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php