From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <32762b37691e254428ee1fd8ce6dac10@felloff.net> References: <32762b37691e254428ee1fd8ce6dac10@felloff.net> Date: Mon, 16 Dec 2013 08:57:01 -0600 Message-ID: From: Blake McBride To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=089e01494c3241f36404eda806eb Subject: Re: [9fans] 9front pegs CPU on VMware Topicbox-Message-UUID: 9e3530b6-ead8-11e9-9d60-3106f5b1d025 --089e01494c3241f36404eda806eb Content-Type: text/plain; charset=ISO-8859-1 I am running a dual core setup. CPU info is: vendor GenuineIntel procmodel 00020655 / 00010800 features fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat features pse36 clflush dts mmx fxsr sse sse2 ss features pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor extmodel 00000000 / 00000000 extfeatures nx tscp lm extfeatures ahf64 procname Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz physbits 40 virtbits 48 I have the latest version of VMware Fusion. I don't have this problem with a Linux, OpenIndiana, NetBSD, etc. I did have the problem with MS-DOS but downloaded a fix. Thanks. Blake On Mon, Dec 16, 2013 at 4:17 AM, wrote: > the idlehands() on 9front is as follows: > > /* > * put the processor in the halt state if we've no processes to run. > * an interrupt will get us going again. > */ > void > idlehands(void) > { > extern int nrdy; > > if(conf.nmach == 1) > halt(); > else if(m->cpuidcx & Monitor) > mwait(&nrdy); > } > > the reason for not just unconditionally calling halt() on a > *multiprocessor* > is that this would keep the processor sleeping even when processes become > ready to be executed. there is currently no way for the first woken > processor > to wakup another one other than the monitor/mwait mechanism; which for some > reason seems not to be emulated in that vmware fusion setup. one can run > aux/cpuid to see what processor features are supported. > > yes, theres the HZ tick that should wake up the sleeping processor > eventually, > but then it might be too late. > > note, this only applies to *multiprocessor* systems. so when you setup your > vm with just a single cpu, it will not waste cycles spinning. > > -- > cinap > > --089e01494c3241f36404eda806eb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I am running a dual core setup. =A0CPU info is:

vendor GenuineIntel
procmodel 00020655 / 00010800
features fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov= pat=A0
features pse36 clflush dts mmx fxsr sse sse2 ss=A0
<= div>features pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hyper= visor=A0
extmodel 00000000 / 00000000
extfeatures nx tsc= p lm=A0
extfeatures ahf64=A0
procname Intel(R) Core(TM) i7 C= PU =A0 =A0 =A0 M 620 =A0@ 2.67GHz
physbits 40
virtbits 48

I have the latest version of VMware Fusion. =A0I don't h= ave this problem with a Linux, OpenIndiana, NetBSD, etc. =A0I = did have the problem with MS-DOS but downloaded a fix.

Thanks.

Blake



On = Mon, Dec 16, 2013 at 4:17 AM, <cinap_lenrek@felloff.net> wrote:
the idlehands() on 9front is as follows:

/*
=A0* =A0put the processor in the halt state if we've no processes to ru= n.
=A0* =A0an interrupt will get us going again.
=A0*/
void
idlehands(void)
{
=A0 =A0 =A0 =A0 extern int nrdy;

=A0 =A0 =A0 =A0 if(conf.nmach =3D=3D 1)
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 halt();
=A0 =A0 =A0 =A0 else if(m->cpuidcx & Monitor)
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 mwait(&nrdy);
}

the reason for not just unconditionally calling halt() on a *multiprocessor= *
is that this would keep the processor sleeping even when processes become ready to be executed. there is currently no way for the first woken process= or
to wakup another one other than the monitor/mwait mechanism; which for some=
reason seems not to be emulated in that vmware fusion setup. one can run aux/cpuid to see what processor features are supported.

yes, theres the HZ tick that should wake up the sleeping processor eventual= ly,
but then it might be too late.

note, this only applies to *multiprocessor* systems. so when you setup your=
vm with just a single cpu, it will not waste cycles spinning.

--
cinap


--089e01494c3241f36404eda806eb--