ref: ff3114008ee6d79a3715e66b2ddc28fa6277143d
parent: f71155a4403109118ea14d4219febbe7d970f27a
author: qwx <qwx@sciops.net>
date: Sat Jan 22 20:02:31 EST 2022
remove page-rice: merged
--- a/page-rice
+++ /dev/null
@@ -1,74 +1,0 @@
-diff 6f9838a6a5b80e0253bdc8fb194ad6f15eb655f5 uncommitted
---- a//sys/src/cmd/page.c
-+++ b//sys/src/cmd/page.c
-@@ -54,7 +54,7 @@
- char pagespool[] = "/tmp/pagespool.";
-
- enum {
-- NPROC = 4,
-+ NPROC = 8,
- NBUF = 8*1024,
- NPATH = 1024,
- };
-@@ -898,10 +898,6 @@
- {
- int fd;
-
-- qlock(&lru);
-- llinkhead(p);
-- qunlock(&lru);
--
- if(p->open != nil && p->image == nil){
- fd = openpage(p);
- if(fd >= 0){
-@@ -951,7 +947,11 @@
- loadpages(Page *p, int oviewgen)
- {
- while(p != nil && viewgen == oviewgen){
-- qlock(p);
-+ qlock(&lru);
-+ llinkhead(p);
-+ qunlock(&lru);
-+ if(!canqlock(p))
-+ goto next;
- loadpage(p);
- if(viewgen != oviewgen){
- unloadpage(p);
-@@ -972,6 +972,7 @@
- unlockdisplay(display);
- }
- qunlock(p);
-+ next:
- if(p != current && imemsize >= imemlimit)
- break; /* only one page ahead once we reach the limit */
- if(forward < 0){
-@@ -1309,16 +1310,17 @@
- writeaddr(p, "/dev/label");
- current = p;
- oviewgen = viewgen;
-+ if(nproc >= NPROC)
-+ waitpid();
- switch(rfork(RFPROC|RFMEM)){
- case -1:
- sysfatal("rfork: %r");
- case 0:
- loadpages(p, oviewgen);
-+ nproc--;
- exits(nil);
- }
-- if(++nproc >= NPROC)
-- if(waitpid() > 0)
-- nproc--;
-+ nproc++;
- }
-
- /* recursive display lock, called from main proc only */
-@@ -1691,6 +1693,8 @@
- addpage(root, "stdin", popenfile, strdup("/fd/0"), -1);
- for(; *argv; argv++)
- addpage(root, *argv, popenfile, strdup(*argv), -1);
-+ for(i=0; i<NPROC/4; i++) /* rice */
-+ showpage1(current);
-
- drawlock(1);
- for(;;){