plan 9 kernel history: overview | file list | diff list

1992/0301/port/swap.c (diff list | history)

1992/0130/sys/src/9/port/swap.c:15,211992/0301/sys/src/9/port/swap.c:15,21 (short | long | prev | next)
1991/0705    
 
enum 
{ 
1991/0706    
	Maxpages = 500,		/* Max number of pageouts per segment pass */ 
1992/0301    
	Maxpages = 300,		/* Max number of pageouts per segment pass */ 
1991/0705    
}; 
 
Image 	swapimage; 
1992/0130/sys/src/9/port/swap.c:109,1241992/0301/sys/src/9/port/swap.c:109,122
1991/0705    
		if(waserror())  
			panic("pager: os error\n"); 
 
1992/0301    
		u->p->psstate = "Idle"; 
		sleep(&swapalloc.r, needpages, 0); 
		u->p->psstate = "Pageout"; 
 
1991/0705    
		for(p = proctab(0); p < ep; p++) { 
			if(p->state == Dead || p->kp) 
				continue; 
 
1991/0926    
			u->p->psstate = "Idle"; 
1991/0705    
			sleep(&swapalloc.r, needpages, 0); 
1991/0926    
			u->p->psstate = "Pageout"; 
1991/0705    
                 
1991/0726    
			if(p->state == Dead || p->kp) 
				continue; 
1991/0705    
			if(swapimage.c) { 
				for(i = 0; i < NSEG; i++) 
					if(s = p->seg[i]) { 
1992/0130/sys/src/9/port/swap.c:235,2511992/0301/sys/src/9/port/swap.c:233,238
1991/0705    
		*pg = 0; 
		break; 
	case SG_DATA: 
		/* Unmodified data may be reverted to a demand load record if it 
		 * is not the last page in the DSEG 
		 */ 
/*							BUG: needs to check the last page 
		if((outp->modref&PG_MOD) == 0) { 
			putpage(outp); 
			*pg = 0; 
			break; 
		} 
*/ 
							/* NO break */	 
	case SG_BSS: 
	case SG_STACK: 
	case SG_SHARED: 
1992/0130/sys/src/9/port/swap.c:284,2921992/0301/sys/src/9/port/swap.c:271,280
1991/0705    
 
	for(i = 0; i < ioptr; i++) { 
		out = iolist[i]; 
1992/0301    
#ifdef asdf 
1991/0705    
		if(out->ref > 2) { 
			lockpage(out); 
			if(out->ref > 2) {		/* Page was reclaimed, abort io */ 
1992/0301    
			if(out->ref > 2) {	 
1991/0705    
				out->ref -= 2; 
				unlockpage(out); 
				continue; 
1992/0130/sys/src/9/port/swap.c:293,2981992/0301/sys/src/9/port/swap.c:281,287
1991/0705    
			} 
			unlockpage(out); 
		} 
1992/0301    
#endif 
1991/0705    
		k = kmap(out); 
		kaddr = (char*)VA(k); 
		qlock(&c->wrl); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)