862
863 if ((datap == &kvp) || (datap == &zvp)) {
864 PR_DECR_KSTAT(pr_pending_kas);
865 }
866 }
867
868 /*
869 * Initialize the page retire mechanism:
870 *
871 * - Establish the correctable error retire limit.
872 * - Initialize locks.
873 * - Build the retired_pages vnode.
874 * - Set up the kstats.
875 * - Fire off the background thread.
876 * - Tell page_retire() it's OK to start retiring pages.
877 */
878 void
879 page_retire_init(void)
880 {
881 const fs_operation_def_t retired_vnodeops_template[] = {
882 { NULL, NULL }
883 };
884 struct vnodeops *vops;
885 kstat_t *ksp;
886
887 const uint_t page_retire_ndata =
888 sizeof (page_retire_kstat) / sizeof (kstat_named_t);
889
890 ASSERT(page_retire_ksp == NULL);
891
892 if (max_pages_retired_bps <= 0) {
893 max_pages_retired_bps = MCE_BPT;
894 }
895
896 mutex_init(&pr_q_mutex, NULL, MUTEX_DEFAULT, NULL);
897
898 retired_pages = vn_alloc(KM_SLEEP);
899 if (vn_make_ops("retired_pages", retired_vnodeops_template, &vops)) {
900 cmn_err(CE_PANIC,
901 "page_retired_init: can't make retired vnodeops");
902 }
|
862
863 if ((datap == &kvp) || (datap == &zvp)) {
864 PR_DECR_KSTAT(pr_pending_kas);
865 }
866 }
867
868 /*
869 * Initialize the page retire mechanism:
870 *
871 * - Establish the correctable error retire limit.
872 * - Initialize locks.
873 * - Build the retired_pages vnode.
874 * - Set up the kstats.
875 * - Fire off the background thread.
876 * - Tell page_retire() it's OK to start retiring pages.
877 */
878 void
879 page_retire_init(void)
880 {
881 const fs_operation_def_t retired_vnodeops_template[] = {
882 { NULL, {NULL} }
883 };
884 struct vnodeops *vops;
885 kstat_t *ksp;
886
887 const uint_t page_retire_ndata =
888 sizeof (page_retire_kstat) / sizeof (kstat_named_t);
889
890 ASSERT(page_retire_ksp == NULL);
891
892 if (max_pages_retired_bps <= 0) {
893 max_pages_retired_bps = MCE_BPT;
894 }
895
896 mutex_init(&pr_q_mutex, NULL, MUTEX_DEFAULT, NULL);
897
898 retired_pages = vn_alloc(KM_SLEEP);
899 if (vn_make_ops("retired_pages", retired_vnodeops_template, &vops)) {
900 cmn_err(CE_PANIC,
901 "page_retired_init: can't make retired vnodeops");
902 }
|