home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3c / migration.z / migration
Encoding:
Text File  |  2002-10-03  |  10.8 KB  |  199 lines

  1.  
  2.  
  3.  
  4. mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))                                                      mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      migr_range_migrate, migr_policy_args_init - user migration operations
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
  13.      ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ppppmmmmoooo....hhhh>>>>
  14.  
  15.      ttttyyyyppppeeeeddddeeeeffff ssssttttrrrruuuucccctttt mmmmiiiiggggrrrr____ppppoooolllliiiiccccyyyy____uuuuppppaaaarrrrmmmmssss {{{{
  16.              ________uuuuiiiinnnntttt66664444____tttt  mmmmiiiiggggrrrr____bbbbaaaasssseeee____eeeennnnaaaabbbblllleeeedddd         ::::1111,,,,
  17.                          mmmmiiiiggggrrrr____bbbbaaaasssseeee____tttthhhhrrrreeeesssshhhhoooolllldddd       ::::8888,,,,
  18.                          mmmmiiiiggggrrrr____ffffrrrreeeeeeeezzzzeeee____eeeennnnaaaabbbblllleeeedddd       ::::1111,,,,
  19.                          mmmmiiiiggggrrrr____ffffrrrreeeeeeeezzzzeeee____tttthhhhrrrreeeesssshhhhoooolllldddd     ::::8888,,,,
  20.                          mmmmiiiiggggrrrr____mmmmeeeelllltttt____eeeennnnaaaabbbblllleeeedddd         ::::1111,,,,
  21.                          mmmmiiiiggggrrrr____mmmmeeeelllltttt____tttthhhhrrrreeeesssshhhhoooolllldddd       ::::8888,,,,
  22.                          mmmmiiiiggggrrrr____eeeennnnqqqqoooonnnnffffaaaaiiiillll____eeeennnnaaaabbbblllleeeedddd    ::::1111,,,,
  23.                          mmmmiiiiggggrrrr____ddddaaaammmmppppeeeennnniiiinnnngggg____eeeennnnaaaabbbblllleeeedddd    ::::1111,,,,
  24.                          mmmmiiiiggggrrrr____ddddaaaammmmppppeeeennnniiiinnnngggg____ffffaaaaccccttttoooorrrr     ::::8888,,,,
  25.                          mmmmiiiiggggrrrr____rrrreeeeffffccccnnnntttt____eeeennnnaaaabbbblllleeeedddd       ::::1111,,,,
  26.                          mmmmiiiiggggrrrr____rrrreeeessssvvvv____bbbbiiiittttssss            ::::4444;;;;
  27.      }}}} mmmmiiiiggggrrrr____ppppoooolllliiiiccccyyyy____uuuuppppaaaarrrrmmmmssss____tttt;;;;
  28.  
  29.  
  30.      iiiinnnntttt mmmmiiiiggggrrrr____rrrraaaannnnggggeeee____mmmmiiiiggggrrrraaaatttteeee((((vvvvooooiiiidddd**** bbbbaaaasssseeee____aaaaddddddddrrrr,,,, ssssiiiizzzzeeee____tttt lllleeeennnnggggtttthhhh,,,,
  31.                             ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt ppppmmmmoooo____hhhhaaaannnnddddlllleeee))))
  32.  
  33.  
  34.      vvvvooooiiiidddd mmmmiiiiggggrrrr____ppppoooolllliiiiccccyyyy____aaaarrrrggggssss____iiiinnnniiiitttt((((mmmmiiiiggggrrrr____ppppoooolllliiiiccccyyyy____uuuuppppaaaarrrrmmmmssss____tttt**** pppp))))
  35.  
  36. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  37.      _mmmm_iiii_gggg_rrrr______rrrr_aaaa_nnnn_gggg_eeee______mmmm_iiii_gggg_rrrr_aaaa_tttt_eeee migrates a range of memory to the node where the
  38.      _pppp_mmmm_oooo______hhhh_aaaa_nnnn_dddd_llll_eeee has been placed. The _pppp_mmmm_oooo______hhhh_aaaa_nnnn_dddd_llll_eeee can be a placed MLD or an
  39.      MLDSET with at least one placed MLD contained within it.
  40.  
  41.      _mmmm_iiii_gggg_rrrr______pppp_oooo_llll_iiii_cccc_yyyy______aaaa_rrrr_gggg_ssss______iiii_nnnn_iiii_tttt fills a migration parameter structure with default
  42.      values. This function is applicable to Origin 2000/200 systems, and has
  43.      no effect on other Origin systems.
  44.  
  45.      _mmmm_iiii_gggg_rrrr______rrrr_aaaa_nnnn_gggg_eeee______mmmm_iiii_gggg_rrrr_aaaa_tttt_eeee attempts to move all pages that have been faulted in
  46.      within the range of _bbbb_aaaa_ssss_eeee______aaaa_dddd_dddd_rrrr plus _llll_eeee_nnnn_gggg_tttt_hhhh.  If _bbbb_aaaa_ssss_eeee______aaaa_dddd_dddd_rrrr is not on a page
  47.      boundary, the actual start address of the migration is rounded down to
  48.      the previous page boundary. If _bbbb_aaaa_ssss_eeee______aaaa_dddd_dddd_rrrr+_llll_eeee_nnnn_gggg_tttt_hhhh is not on a page
  49.      boundary, the actual migration length is adjusted by rounding up to end
  50.      on the next page boundary.  If a page cannot be migrated, it is skipped
  51.      and the next page is attempted. If the destination node does not have
  52.      enough available free memory to migrate the new pages into, the migration
  53.      operation is ended and error is returned (see below).  It is usually not
  54.      possible to migrate every single page of user memory for a variety of
  55.      reasons. A page that is set up for DMA I/O is an example of an un-
  56.      migratable page. A page set up for fetchops, a pinned page, a page not
  57.      faulted in, and a page that is shared with unrelated processes will not
  58.      migrate. In some cases of a physical page shared with several virtual
  59.      addresses, it may be migratable if the migrating process can obtain all
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))                                                      mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))
  71.  
  72.  
  73.  
  74.      the necessary locks. In situations where pages are skipped over, these
  75.      skipped pages remain on their current node location for the duration of
  76.      their existence.
  77.  
  78.      _mmmm_iiii_gggg_rrrr______rrrr_aaaa_nnnn_gggg_eeee______mmmm_iiii_gggg_rrrr_aaaa_tttt_eeee will fail and some or all of the specified memory may
  79.      not be successfully migrated if one or more of the following are true:
  80.  
  81.      _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT         Arguments could not be copied into kernel space.
  82.  
  83.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified _pppp_mmmm_oooo______hhhh_aaaa_nnnn_dddd_llll_eeee is invalid or does not exist.
  84.  
  85.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         The specified _pppp_mmmm_oooo______hhhh_aaaa_nnnn_dddd_llll_eeee is not placed on a valid node.
  86.  
  87.      _EEEE_IIII_NNNN_VVVV_AAAA_LLLL         Memory to migrate is not a user segment address.
  88.  
  89.      _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM         The user address is not mapped.
  90.  
  91.      _EEEE_BBBB_UUUU_SSSS_YYYY          One or more of the user pages is already in the process of
  92.                     migrating.
  93.  
  94.      _EEEE_BBBB_UUUU_SSSS_YYYY          The anonymous page being migrated is no longer owned by
  95.                     the caller.
  96.  
  97.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages to migrate has raw I/O in progress.
  98.  
  99.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages to migrate is on its way back from
  100.                     backing store.
  101.  
  102.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages is marked BAD and cannot be moved.
  103.  
  104.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages has its RMAP lock set and cannot be
  105.                     moved.
  106.  
  107.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages could not achieve a lock on all shared
  108.                     page table entries.
  109.  
  110.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages has no page table entry.
  111.  
  112.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages has a mismatch of shared use and reverse
  113.                     map entries.
  114.  
  115.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the pages has a lock set from another shared
  116.                     virtual address.
  117.  
  118.      _EEEE_BBBB_UUUU_SSSS_YYYY          One of the vnode pages has changed while migrating.
  119.  
  120.      _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM         There is not enough free memory to migrate the specified
  121.                     memory.
  122.  
  123.      _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP        Memory locality domains are not supported on this system
  124.                     architecture.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))                                                      mmmmiiiiggggrrrraaaattttiiiioooonnnn((((3333))))
  137.  
  138.  
  139.  
  140. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  141.      numa(5), mmci(5), mld(3c), mldset(3c), pm(3c).
  142.  
  143. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  144.      Upon successful completion, _mmmm_iiii_gggg_rrrr______rrrr_aaaa_nnnn_gggg_eeee______mmmm_iiii_gggg_rrrr_aaaa_tttt_eeee returns 0.  Otherwise, a
  145.      value of -1 is returned and _e_r_r_n_o is set to indicate the error.
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.