~kris/9p

9hist

2768d03bd961bb6767231a035c1373381212827a — David du Colombier 32 years ago ac6595e
Plan 9 from Bell Labs 1994-08-08
5 files changed, 13 insertions(+), 21 deletions(-)

M carrera/mmu.c
M port/portdat.h
M port/proc.c
M port/sysproc.c
M port/taslock.c
M carrera/mmu.c => carrera/mmu.c +0 -2
@@ 47,13 47,11 @@ kmapinit(void)
{
	KMap *k, *klast;

	lock(&kmaplock);
	kmapfree = kpte;
	klast = &kpte[KPTESIZE-1];
	for(k=kpte; k<klast; k++)
		k->next = k+1;
	k->next = 0;
	unlock(&kmaplock);

	m->ktlbnext = TLBROFF;
}

M port/portdat.h => port/portdat.h +2 -1
@@ 577,7 577,8 @@ struct Proc
	int	(*notify)(void*, char*);

	Mach	*mp;		/* machine this process last ran on */
	ulong	priority;	/* priority level 0 is highest */
	ulong	priority;	/* priority level */
	ulong	basepri;	/* base priority level */
	ulong	movetime;	/* last time process switched processors */

	void	*ureg;		/* User registers for notes */

M port/proc.c => port/proc.c +5 -7
@@ 119,13 119,11 @@ ready(Proc *p)

	s = splhi();

	if(p->priority != 0){
		if(p->state == Running){
			if(p->priority < Nrq-1)
				p->priority++;
		} else
			p->priority = 1;
	}
	if(p->state == Running){
		if(p->priority < Nrq-1)
			p->priority++;
	} else
		p->priority = p->basepri;
	rq = &runq[p->priority];

	lock(runq);

M port/sysproc.c => port/sysproc.c +4 -2
@@ 166,6 166,7 @@ sysrfork(ulong *arg)
	 */
	flushmmu();
	p->priority = up->priority;
	p->basepri = up->basepri;
	p->mp = up->mp;
	ready(p);
	return pid;


@@ 386,9 387,10 @@ sysexec(ulong *arg)
	 *  '/' processes are high priority (hack to make /ip more responsive)
	 */
	if(devchar[tc->type] == L'/')
		up->priority = 0;
		up->basepri = 0;
	else
		up->priority = 1;
		up->basepri = 1;
	up->priority = up->basepri;
	close(tc);

	/*

M port/taslock.c => port/taslock.c +2 -9
@@ 8,19 8,12 @@
void
lock(Lock *l)
{
	int loop;

	if(tas(&l->key) == 0)
		return;

	loop = 50000000;
	for(;;){
		while(l->key) {
			if(loop-- <= 0) {
				dumpstack();
				panic("lock loop: lock %lux\n", l);
			}
		}
		while(l->key)
			;
		if(tas(&l->key) == 0)
			return;
	}