Print this page
[mq]: core-v2

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/vm/vm_pagelist.c
          +++ new/usr/src/uts/common/vm/vm_pagelist.c
↓ open down ↓ 2974 lines elided ↑ open up ↑
2975 2975                           * and p_prev fields. Large pages
2976 2976                           * are a contiguous group of
2977 2977                           * constituent pages linked together
2978 2978                           * on their p_next and p_prev fields.
2979 2979                           * The large pages are linked together
2980 2980                           * on the hash chain using p_vpnext
2981 2981                           * p_vpprev of the base constituent
2982 2982                           * page of each large page.
2983 2983                           */
2984 2984                          first_pp = pp;
2985      -                        while (IS_DUMP_PAGE(pp) || !page_trylock_cons(pp,
2986      -                            SE_EXCL)) {
     2985 +                        while (!page_trylock_cons(pp, SE_EXCL)) {
2987 2986                                  if (szc == 0) {
2988 2987                                          pp = pp->p_next;
2989 2988                                  } else {
2990 2989                                          pp = pp->p_vpnext;
2991 2990                                  }
2992 2991  
2993 2992                                  ASSERT(PP_ISFREE(pp));
2994 2993                                  ASSERT(PP_ISAGED(pp));
2995 2994                                  ASSERT(pp->p_vnode == NULL);
2996 2995                                  ASSERT(pp->p_hash == NULL);
↓ open down ↓ 1021 lines elided ↑ open up ↑
4018 4017                          mutex_enter(pcm);
4019 4018                          pp = PAGE_CACHELISTS(mnode, bin, mtype);
4020 4019                          if (pp == NULL)
4021 4020                                  goto bin_empty_0;
4022 4021  
4023 4022                          first_pp = pp;
4024 4023                          ASSERT(pp->p_vnode);
4025 4024                          ASSERT(PP_ISAGED(pp) == 0);
4026 4025                          ASSERT(pp->p_szc == 0);
4027 4026                          ASSERT(PFN_2_MEM_NODE(pp->p_pagenum) == mnode);
4028      -                        while (IS_DUMP_PAGE(pp) || !page_trylock(pp, SE_EXCL)) {
     4027 +                        while (!page_trylock(pp, SE_EXCL)) {
4029 4028                                  pp = pp->p_next;
4030 4029                                  ASSERT(pp->p_szc == 0);
4031 4030                                  if (pp == first_pp) {
4032 4031                                          /*
4033 4032                                           * We have searched the complete list!
4034 4033                                           * And all of them (might only be one)
4035 4034                                           * are locked. This can happen since
4036 4035                                           * these pages can also be found via
4037 4036                                           * the hash list. When found via the
4038 4037                                           * hash list, they are locked first,
↓ open down ↓ 421 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX