[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/40419 (processor sets broken on 5.99.6)
The following reply was made to PR kern/40419; it has been noted by GNATS.
From: Andrew Doran <ad%netbsd.org@localhost>
To: Mindaugas Rasiukevicius <rmind%netbsd.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, netbsd-bugs%netbsd.org@localhost,
Subject: Re: kern/40419 (processor sets broken on 5.99.6)
Date: Mon, 19 Jan 2009 09:02:17 +0000
> I have committed one fix (please review), sched_takecpu() would keep the
> thread on local CPU if it idles.
Thanks. I will look at it later, don't have the time right now.
> However, in your test case, application might still be on local CPU,
> because curlwp (LSONRPOC) might not migrate that fast.
I think this is what's happending.
> We can do yield() in sys__pset_bind(). Do you think it is worth?
I was thinking of a function that scans all threads, with cpu_lock held, and
checks to see if their l_cpu is allowed by their affinity mask, processor
set or LP_BOUND flag. If not, change l_cpu (or migrate if online), then do a
broadcast xcall to nullop() if there have been migrations.
Hmm, shouldn't psets and affinity masks be mutually exclusive?
Main Index |
Thread Index |