Print this page
6345 remove xhat support

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/seg_spt.c
          +++ new/usr/src/uts/common/vm/seg_spt.c
↓ open down ↓ 1916 lines elided ↑ open up ↑
1917 1917                          /*
1918 1918                           * Load up the translation keeping it
1919 1919                           * locked and don't unlock the page.
1920 1920                           */
1921 1921                          for (; pidx < npages; a += pgsz, pidx += pgcnt) {
1922 1922                                  hat_memload_array(sptseg->s_as->a_hat,
1923 1923                                      a, pgsz, &ppa[pidx], sptd->spt_prot,
1924 1924                                      HAT_LOAD_LOCK | HAT_LOAD_SHARE);
1925 1925                          }
1926 1926                  } else {
1927      -                        if (hat == seg->s_as->a_hat) {
     1927 +                        /*
     1928 +                         * Migrate pages marked for migration
     1929 +                         */
     1930 +                        if (lgrp_optimizations())
     1931 +                                page_migrate(seg, shm_addr, ppa, npages);
1928 1932  
1929      -                                /*
1930      -                                 * Migrate pages marked for migration
1931      -                                 */
1932      -                                if (lgrp_optimizations())
1933      -                                        page_migrate(seg, shm_addr, ppa,
1934      -                                            npages);
1935      -
1936      -                                /* CPU HAT */
1937      -                                for (; pidx < npages;
1938      -                                    a += pgsz, pidx += pgcnt) {
1939      -                                        hat_memload_array(sptseg->s_as->a_hat,
1940      -                                            a, pgsz, &ppa[pidx],
1941      -                                            sptd->spt_prot,
1942      -                                            HAT_LOAD_SHARE);
1943      -                                }
1944      -                        } else {
1945      -                                /* XHAT. Pass real address */
1946      -                                hat_memload_array(hat, shm_addr,
1947      -                                    size, ppa, sptd->spt_prot, HAT_LOAD_SHARE);
     1933 +                        for (; pidx < npages; a += pgsz, pidx += pgcnt) {
     1934 +                                hat_memload_array(sptseg->s_as->a_hat,
     1935 +                                    a, pgsz, &ppa[pidx],
     1936 +                                    sptd->spt_prot,
     1937 +                                    HAT_LOAD_SHARE);
1948 1938                          }
1949 1939  
1950 1940                          /*
1951 1941                           * And now drop the SE_SHARED lock(s).
1952 1942                           */
1953 1943                          if (dyn_ism_unmap) {
1954 1944                                  for (i = 0; i < npages; i++) {
1955 1945                                          page_unlock(ppa[i]);
1956 1946                                  }
1957 1947                          }
↓ open down ↓ 219 lines elided ↑ open up ↑
2177 2167                           * Load up the translation keeping it
2178 2168                           * locked and don't unlock the page.
2179 2169                           */
2180 2170                          for (; pidx < npages; a += pgsz, pidx += pgcnt) {
2181 2171                                  sz = MIN(pgsz, ptob(npages - pidx));
2182 2172                                  hat_memload_array(sptseg->s_as->a_hat, a,
2183 2173                                      sz, &ppa[pidx], sptd->spt_prot,
2184 2174                                      HAT_LOAD_LOCK | HAT_LOAD_SHARE);
2185 2175                          }
2186 2176                  } else {
2187      -                        if (hat == seg->s_as->a_hat) {
     2177 +                        /*
     2178 +                         * Migrate pages marked for migration.
     2179 +                         */
     2180 +                        if (lgrp_optimizations())
     2181 +                                page_migrate(seg, shm_addr, ppa, npages);
2188 2182  
2189      -                                /*
2190      -                                 * Migrate pages marked for migration.
2191      -                                 */
2192      -                                if (lgrp_optimizations())
2193      -                                        page_migrate(seg, shm_addr, ppa,
2194      -                                            npages);
2195      -
2196      -                                /* CPU HAT */
2197      -                                for (; pidx < npages;
2198      -                                    a += pgsz, pidx += pgcnt) {
2199      -                                        sz = MIN(pgsz, ptob(npages - pidx));
2200      -                                        hat_memload_array(sptseg->s_as->a_hat,
2201      -                                            a, sz, &ppa[pidx],
2202      -                                            sptd->spt_prot, HAT_LOAD_SHARE);
2203      -                                }
2204      -                        } else {
2205      -                                /* XHAT. Pass real address */
2206      -                                hat_memload_array(hat, shm_addr,
2207      -                                    ptob(npages), ppa, sptd->spt_prot,
2208      -                                    HAT_LOAD_SHARE);
     2183 +                        for (; pidx < npages; a += pgsz, pidx += pgcnt) {
     2184 +                                sz = MIN(pgsz, ptob(npages - pidx));
     2185 +                                hat_memload_array(sptseg->s_as->a_hat,
     2186 +                                    a, sz, &ppa[pidx],
     2187 +                                    sptd->spt_prot, HAT_LOAD_SHARE);
2209 2188                          }
2210 2189  
2211 2190                          /*
2212 2191                           * And now drop the SE_SHARED lock(s).
2213 2192                           */
2214 2193                          for (i = 0; i < npages; i++)
2215 2194                                  page_unlock(ppa[i]);
2216 2195                  }
2217 2196                  AS_LOCK_EXIT(sptseg->s_as, &sptseg->s_as->a_lock);
2218 2197  
↓ open down ↓ 899 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX