From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 From: Jessica Yu Date: Sun, 30 Nov 2014 23:28:09 -0500 Message-ID: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Subject: Re: [9fans] rebalance() funny Topicbox-Message-UUID: 30690eda-ead9-11e9-9d60-3106f5b1d025 That definitely seems incorrect to me. Since rebalance is only called on mach0, as it loops through the global run queue, it will skip processes that are not on mach0, so I think you are correct. (This was fixed on the mqs version of the nix scheduler; every mach calls rebalance to take care of their respective run queues.) On Sun, Nov 30, 2014 at 11:28 AM, erik quanstrom wrote: > rebalance(void) > { > ... > if(p->mp != MACHP(m->machno)) > continue; > > since p->mp != nil for forked processes, and rebalance is only called > on mach0, only processes on mach0 get rebalanced, for a 8 core system, > that should be ~1/8 of them. > > this is so amazingly wrong, i can't help but wonder if i've missed > something? > > (by the way, the old nix code didn't rebalance anything, > unless it was on the first scheduler.) > > - erik >