Index: sys/vm/swap_pager.c =================================================================== RCS file: /home/ncvs/src/sys/vm/swap_pager.c,v retrieving revision 1.273.2.2 diff -r1.273.2.2 swap_pager.c 285a286,288 > static int MB_per_sec = 1; /* be pessimist, might be sysctl'ed */ > static int timo_secs = 60; /* for msleep() in swap_pager_getpages() */ > 401a405 > 604a609 > 1104c1109 < if (msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", hz*20)) { --- > if (msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", hz*timo_secs)) { 1106,1107c1111,1114 < "swap_pager: indefinite wait buffer: bufobj: %p, blkno: %jd, size: %ld\n", < bp->b_bufobj, (intmax_t)bp->b_blkno, bp->b_bcount); --- > "swap_pager: wait buffer timeout (%d secs): bufobj: %p, blkno: %jd, size: %ld\n", > timo_secs, bp->b_bufobj, (intmax_t)bp->b_blkno, bp->b_bcount); > /* wait & pray ... respect mutex */ > msleep(mreq, &vm_page_queue_mtx, PSWP, "swread", 0); 2240a2248 > int timo_secs_swap, timo_secs_physmem; 2248a2257,2265 > > timo_secs_swap = MB_per_sec * (*total * PAGE_SIZE) / (1024*1024); > timo_secs_physmem = MB_per_sec * (physmem * PAGE_SIZE) / (1024*1024); > timo_secs = min(timo_secs_swap, timo_secs_physmem); > > if (timo_secs < 60) timo_secs=60; > printf("ARNO timo_secs = <%d>.\n", timo_secs); > printf("ARNO timo_secs_swap = <%d> timo_secs_physmem <%d>.\n", > timo_secs_swap, timo_secs_physmem);