View | Details | Raw Unified | Return to bug 257314
Collapse All | Expand All

(-)b/sys/vm/swap_pager.c (+2 lines)
Lines 2040-2045 swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk) Link Here
2040
                                   0, 1))
2040
                                   0, 1))
2041
                                       printf("swap blk zone exhausted, "
2041
                                       printf("swap blk zone exhausted, "
2042
                                           "increase kern.maxswzone\n");
2042
                                           "increase kern.maxswzone\n");
2043
                               printf("swp_pager_meta_build: swap blk uma zone exhausted\n");
2043
                               vm_pageout_oom(VM_OOM_SWAPZ);
2044
                               vm_pageout_oom(VM_OOM_SWAPZ);
2044
                               pause("swzonxb", 10);
2045
                               pause("swzonxb", 10);
2045
                       } else
2046
                       } else
Lines 2070-2075 swp_pager_meta_build(vm_object_t object, vm_pindex_t pindex, daddr_t swapblk) Link Here
2070
                                   0, 1))
2071
                                   0, 1))
2071
                                       printf("swap pctrie zone exhausted, "
2072
                                       printf("swap pctrie zone exhausted, "
2072
                                           "increase kern.maxswzone\n");
2073
                                           "increase kern.maxswzone\n");
2074
                               printf("swp_pager_meta_build: swap pctrie uma zone exhausted\n");
2073
                               vm_pageout_oom(VM_OOM_SWAPZ);
2075
                               vm_pageout_oom(VM_OOM_SWAPZ);
2074
                               pause("swzonxp", 10);
2076
                               pause("swzonxp", 10);
2075
                       } else
2077
                       } else
(-)b/sys/vm/vm_fault.c (-3 / +2 lines)
Lines 1135-1143 vm_fault_allocate(struct faultstate *fs) Link Here
1135
                       fs->oom++;
1135
                       fs->oom++;
1136
                       vm_waitpfault(dset, vm_pfault_oom_wait * hz);
1136
                       vm_waitpfault(dset, vm_pfault_oom_wait * hz);
1137
               } else  {
1137
               } else  {
1138
                       if (bootverbose)
1138
                       printf(
1139
                               printf(
1139
               "vm_fault_allocate: proc %d (%s) failed to alloc page on fault, starting OOM\n",
1140
               "proc %d (%s) failed to alloc page on fault, starting OOM\n",
1141
                                   curproc->p_pid, curproc->p_comm);
1140
                                   curproc->p_pid, curproc->p_comm);
1142
                       vm_pageout_oom(VM_OOM_MEM_PF);
1141
                       vm_pageout_oom(VM_OOM_MEM_PF);
1143
                       fs->oom = 0;
1142
                       fs->oom = 0;
(-)b/sys/vm/vm_page.c (+1 lines)
Lines 3186-3191 vm_wait_doms(const domainset_t *wdoms, int mflags) Link Here
3186
        * race-free vm_wait_domain().
3186
        * race-free vm_wait_domain().
3187
        */
3187
        */
3188
       if (curproc == pageproc) {
3188
       if (curproc == pageproc) {
3189
               printf("thread %d waiting for memory\n", curthread->td_tid);
3189
               mtx_lock(&vm_domainset_lock);
3190
               mtx_lock(&vm_domainset_lock);
3190
               vm_pageproc_waiters++;
3191
               vm_pageproc_waiters++;
3191
               error = msleep(&vm_pageproc_waiters, &vm_domainset_lock,
3192
               error = msleep(&vm_pageproc_waiters, &vm_domainset_lock,
(-)b/sys/vm/vm_pageout.c (-2 / +18 lines)
Lines 1829-1834 vm_pageout_mightbe_oom(struct vm_domain *vmd, int page_shortage, Link Here
1829
        * start OOM.  Initiate the selection and signaling of the
1829
        * start OOM.  Initiate the selection and signaling of the
1830
        * victim.
1830
        * victim.
1831
        */
1831
        */
1832
       printf("vm_pageout_mightbe_oom: kill context: v_free_count: %u, v_inactive_count: %u\n",
1833
           vmd->vmd_free_count, vmd->vmd_pagequeues[PQ_INACTIVE].pq_cnt);
1832
       vm_pageout_oom(VM_OOM_MEM);
1834
       vm_pageout_oom(VM_OOM_MEM);
1833
1835
1834
       /*
1836
       /*
Lines 2021-2030 vm_pageout_oom(int shortage) Link Here
2021
       }
2023
       }
2022
       sx_sunlock(&allproc_lock);
2024
       sx_sunlock(&allproc_lock);
2023
       if (bigproc != NULL) {
2025
       if (bigproc != NULL) {
2026
               char *reason_text;
2027
               switch (shortage) {
2028
               case VM_OOM_MEM_PF:
2029
                       reason_text= "fault's page allocation failed";
2030
                       break;
2031
               case VM_OOM_MEM:
2032
                       reason_text= "free RAM stayed below threshold";
2033
                       break;
2034
               case VM_OOM_SWAPZ:
2035
                       reason_text= "swblk or swpctrie zone exhausted";
2036
                       break;
2037
               default:
2038
                       reason_text= "Unknown Reason";
2039
               }
2024
               if (vm_panic_on_oom != 0 && --vm_panic_on_oom == 0)
2040
               if (vm_panic_on_oom != 0 && --vm_panic_on_oom == 0)
2025
                       panic("out of swap space");
2041
                       panic("%s",reason_text);
2026
               PROC_LOCK(bigproc);
2042
               PROC_LOCK(bigproc);
2027
               killproc(bigproc, "out of swap space");
2043
               killproc(bigproc, reason_text);
2028
               sched_nice(bigproc, PRIO_MIN);
2044
               sched_nice(bigproc, PRIO_MIN);
2029
               _PRELE(bigproc);
2045
               _PRELE(bigproc);
2030
               PROC_UNLOCK(bigproc);
2046
               PROC_UNLOCK(bigproc);

Return to bug 257314