Re: vmyield diff (2) please test

2012-06-17 Thread Brett
On Thu, 14 Jun 2012 03:48:12 +0200 Ariane van der Steldt ari...@stack.nl wrote: Hi, This diff implements yielding in the vm system, with the intention to make expensive system calls preempt every once in a while, to allow userland system calls to progress. The diff has a name

Re: vmyield diff (2) please test

2012-06-15 Thread Ted Unangst
On Fri, Jun 15, 2012 at 18:07, Ariane van der Steldt wrote: I'm wondering if if (curcpu()-ci_schedstate.spc_schedflags SPCF_SHOULDYIELD) preempt(NULL); shouldn't be a special function in kern_sched, I suspect its useful for more parts of the kernel (although I wouldn't know which ones). In

Re: vmyield diff (2) please test

2012-06-14 Thread Alexandre Ratchov
On Thu, Jun 14, 2012 at 03:48:12AM +0200, Ariane van der Steldt wrote: Hi, This diff implements yielding in the vm system, with the intention to make expensive system calls preempt every once in a while, to allow userland system calls to progress. It's a very conservative application at

Re: vmyield diff (2) please test

2012-06-14 Thread Mark Kettenis
Date: Thu, 14 Jun 2012 14:13:25 +0200 From: Ariane van der Steldt ari...@stack.nl Cc: a...@caoua.org, tech@openbsd.org Content-Disposition: inline X-CNFS-Analysis: v=2.0 cv=BoYqN/r5 c=1 sm=0 a=GztW+Mr2qRhXIB90GGmOig==:17 a=wom5GMh1gUkA:10 a=90mjwyQIHKgA:10 a=kj9zAlcOel0A:10

Re: vmyield diff (2) please test

2012-06-14 Thread Ted Unangst
. If neither is true, we don't preempt (thus not calling mpswitch(), not releasing the kernel lock etc etc). For this reason it doesn't work well on SMP. Unfortunately the above conditions may be false if for ex 2 processes are spread out across 2 cpus: the cpu with the biglock will not

vmyield diff (2) please test

2012-06-13 Thread Ariane van der Steldt
Hi, This diff implements yielding in the vm system, with the intention to make expensive system calls preempt every once in a while, to allow userland system calls to progress. It's a very conservative application at the moment, only interleaving during memory unmapping. If this works, we can