Index: arc.c =================================================================== --- arc.c (wersja 204804) +++ arc.c (kopia robocza) @@ -1798,13 +1798,15 @@ else arc_c = arc_c_min; + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd", __LINE__, (intmax_t)arc_p)); atomic_add_64(&arc_p, -(arc_p >> arc_shrink_shift)); + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd", __LINE__, (intmax_t)arc_p)); if (arc_c > arc_size) arc_c = MAX(arc_size, arc_c_min); if (arc_p > arc_c) arc_p = (arc_c >> 1); ASSERT(arc_c >= arc_c_min); - ASSERT((int64_t)arc_p >= 0); + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd", __LINE__, (intmax_t)arc_p)); } if (arc_size > arc_c) @@ -2044,7 +2046,7 @@ arc_p = MAX(0, (int64_t)arc_p - bytes * mult); } - ASSERT((int64_t)arc_p >= 0); + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd %p %p %p %p", __LINE__, (intmax_t)arc_p, state, arc_anon, arc_mru_ghost, arc_mfu_ghost)); if (arc_reclaim_needed()) { cv_signal(&arc_reclaim_thr_cv); @@ -2070,7 +2072,7 @@ if (arc_p > arc_c) arc_p = arc_c; } - ASSERT((int64_t)arc_p >= 0); + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd", __LINE__, (intmax_t)arc_p)); } /* @@ -2202,6 +2204,7 @@ if (arc_size < arc_c && hdr->b_state == arc_anon && arc_anon->arcs_size + arc_mru->arcs_size > arc_p) arc_p = MIN(arc_c, arc_p + size); + KASSERT((int64_t)arc_p >= 0, ("%u: arc_p=%jd", __LINE__, (intmax_t)arc_p)); } }