As soon as an entry is found on `pmr_control.allocs' the boolean
`work_done' will be set to true.  So it is impossible to reach the
case below that sets UVM_PMA_FAIL.

CID 1453061 Logically dead code

Ok?

Index: uvm/uvm_pdaemon.c
===================================================================
RCS file: /cvs/src/sys/uvm/uvm_pdaemon.c,v
retrieving revision 1.85
diff -u -p -u -4 -r1.85 uvm_pdaemon.c
--- uvm/uvm_pdaemon.c   30 Dec 2019 23:58:38 -0000      1.85
+++ uvm/uvm_pdaemon.c   24 Mar 2020 14:12:22 -0000
@@ -209,9 +209,8 @@ void
 uvm_pageout(void *arg)
 {
        struct uvm_constraint_range constraint;
        struct uvm_pmalloc *pma;
-       int work_done;
        int npages = 0;
 
        /* ensure correct priority and set paging parameters... */
        uvm.pagedaemon_proc = curproc;
@@ -222,9 +221,8 @@ uvm_pageout(void *arg)
        uvm_unlock_pageq();
 
        for (;;) {
                long size;
-               work_done = 0; /* No work done this iteration. */
 
                uvm_lock_fpageq();
                if (!uvm_nowait_failed && TAILQ_EMPTY(&uvm.pmr_control.allocs)) 
{
                        msleep_nsec(&uvm.pagedaemon, &uvm.fpageqlock, PVM,
@@ -281,9 +279,8 @@ uvm_pageout(void *arg)
                if (pma != NULL ||
                    ((uvmexp.free - BUFPAGES_DEFICIT) < uvmexp.freetarg) ||
                    ((uvmexp.inactive + BUFPAGES_INACT) < uvmexp.inactarg)) {
                        uvmpd_scan();
-                       work_done = 1; /* XXX we hope... */
                }
 
                /*
                 * if there's any free memory to be had,
@@ -296,10 +293,8 @@ uvm_pageout(void *arg)
                }
 
                if (pma != NULL) {
                        pma->pm_flags &= ~UVM_PMA_BUSY;
-                       if (!work_done)
-                               pma->pm_flags |= UVM_PMA_FAIL;
                        if (pma->pm_flags & (UVM_PMA_FAIL | UVM_PMA_FREED)) {
                                pma->pm_flags &= ~UVM_PMA_LINKED;
                                TAILQ_REMOVE(&uvm.pmr_control.allocs, pma,
                                    pmq);

Reply via email to