Messages in this thread | | | Date | Fri, 11 Apr 2014 11:15:14 -0400 | From | Chris Metcalf <> | Subject | Re: [RFC][PATCH 2/8] sched,idle,tile: Switch from TS_POLLING to TIF_POLLING_NRFLAG |
| |
On 4/11/2014 9:42 AM, Peter Zijlstra wrote: > Standardize the idle polling indicator to TIF_POLLING_NRFLAG such that > both TIF_NEED_RESCHED and TIF_POLLING_NRFLAG are in the same word. > This will allow us, using fetch_or(), to both set NEED_RESCHED and > check for POLLING_NRFLAG in a single operation and avoid pointless > wakeups. > > Changing from the non-atomic thread_info::status flags to the atomic > thread_info::flags shouldn't be a big issue since most polling state > changes were followed/preceded by a full memory barrier anyway. > > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Andy Lutomirski <luto@amacapital.net> > Cc: Chris Metcalf <cmetcalf@tilera.com> > Signed-off-by: Peter Zijlstra <peterz@infradead.org> > --- > arch/tile/include/asm/thread_info.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-)
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
It's unfortunate that you're rolling the fetch_or() unconditionally out of cmpxchg(), since some architectures (like tilegx) do have support for "fetchor" as a primitive atomic operation. Currently the tilegx fetchor is only exposed to architecture-independent code via set_bit() and test_and_set_bit(), but perhaps it's worth having an atomic_or() in atomic.h so architectures can choose to optimize it?
-- Chris Metcalf, Tilera Corp. http://www.tilera.com
| |