Print this page
patch tsoome-feedback


  62                 if (page->page_flags & CMD_MEM_F_FAULTING ||
  63                     fmd_nvl_fmri_unusable(hdl, page->page_asru_nvl)) {
  64                         /* Page already faulted, don't fault again. */
  65                         page->page_flags |= CMD_MEM_F_FAULTING;
  66                         return;
  67                 }
  68         } else {
  69                 page = cmd_page_create(hdl, modasru, afar);
  70         }
  71 
  72         page->page_flags |= CMD_MEM_F_FAULTING;
  73         if (page->page_case.cc_cp == NULL)
  74                 page->page_case.cc_cp = cmd_case_create(hdl,
  75                     &page->page_header, CMD_PTR_PAGE_CASE, &uuid);
  76 
  77 #ifdef sun4v
  78         nvlfru = cmd_mem2hc(hdl, modfru);
  79         flt = cmd_nvl_create_fault(hdl, "fault.memory.page", 100,
  80             page->page_asru_nvl, nvlfru, NULL);
  81         flt = cmd_fault_add_location(hdl, flt, cmd_fmri_get_unum(modfru));
  82         if (nvlfru != NULL)
  83                 nvlist_free(nvlfru);
  84 #else /* sun4v */
  85         flt = cmd_nvl_create_fault(hdl, "fault.memory.page", 100,
  86             page->page_asru_nvl, modfru, NULL);
  87 #endif /* sun4v */
  88 
  89         if (nvlist_add_boolean_value(flt, FM_SUSPECT_MESSAGE, B_FALSE) != 0)
  90                 fmd_hdl_abort(hdl, "failed to add no-message member to fault");
  91 
  92         fmd_case_add_ereport(hdl, page->page_case.cc_cp, ep);
  93         fmd_case_add_suspect(hdl, page->page_case.cc_cp, flt);
  94         fmd_case_solve(hdl, page->page_case.cc_cp);
  95 }
  96 
  97 void
  98 cmd_page_close(fmd_hdl_t *hdl, void *arg)
  99 {
 100         cmd_page_destroy(hdl, arg);
 101 }


  62                 if (page->page_flags & CMD_MEM_F_FAULTING ||
  63                     fmd_nvl_fmri_unusable(hdl, page->page_asru_nvl)) {
  64                         /* Page already faulted, don't fault again. */
  65                         page->page_flags |= CMD_MEM_F_FAULTING;
  66                         return;
  67                 }
  68         } else {
  69                 page = cmd_page_create(hdl, modasru, afar);
  70         }
  71 
  72         page->page_flags |= CMD_MEM_F_FAULTING;
  73         if (page->page_case.cc_cp == NULL)
  74                 page->page_case.cc_cp = cmd_case_create(hdl,
  75                     &page->page_header, CMD_PTR_PAGE_CASE, &uuid);
  76 
  77 #ifdef sun4v
  78         nvlfru = cmd_mem2hc(hdl, modfru);
  79         flt = cmd_nvl_create_fault(hdl, "fault.memory.page", 100,
  80             page->page_asru_nvl, nvlfru, NULL);
  81         flt = cmd_fault_add_location(hdl, flt, cmd_fmri_get_unum(modfru));

  82         nvlist_free(nvlfru);
  83 #else /* sun4v */
  84         flt = cmd_nvl_create_fault(hdl, "fault.memory.page", 100,
  85             page->page_asru_nvl, modfru, NULL);
  86 #endif /* sun4v */
  87 
  88         if (nvlist_add_boolean_value(flt, FM_SUSPECT_MESSAGE, B_FALSE) != 0)
  89                 fmd_hdl_abort(hdl, "failed to add no-message member to fault");
  90 
  91         fmd_case_add_ereport(hdl, page->page_case.cc_cp, ep);
  92         fmd_case_add_suspect(hdl, page->page_case.cc_cp, flt);
  93         fmd_case_solve(hdl, page->page_case.cc_cp);
  94 }
  95 
  96 void
  97 cmd_page_close(fmd_hdl_t *hdl, void *arg)
  98 {
  99         cmd_page_destroy(hdl, arg);
 100 }