Messages in this thread | | | Subject | RE: [BUG] Variable stopmachine_state should be volatile | Date | Mon, 12 Dec 2005 15:06:50 +0800 | From | "Zhang, Yanmin" <> |
| |
>>-----Original Message----- >>From: linux-ia64-owner@vger.kernel.org >>[mailto:linux-ia64-owner@vger.kernel.org] On Behalf Of Luck, Tony >>Sent: 2005年12月9日 2:53 >>To: Zhang, Yanmin; Arjan van de Ven; Pavel Machek >>Cc: linux-kernel@vger.kernel.org; Pallipadi, Venkatesh; Shah, Rajesh; >>linux-ia64@vger.kernel.org >>Subject: RE: [BUG] Variable stopmachine_state should be volatile >> >>> The right approach is to define ia64_hint to ia64_barrier in file >>> include/asm-ia64/intel_intrin.h. I tested the new approach and it >>> does work. >> >>Does that get you a "hint@pause" instruction inside the loop? If not, then >>it isn't all the way to the "right" approach.
Tony,
The approach just fixes compiler scheduling barrier problem of cpu_relax, and there is no hint@pause inside the loop.
Today I tried the latest icc, 9.0.027. It provides __hint, a new intrinsic, to support hint@pause. __hint also has the meaning of compiler scheduling barrier. So the best solution is to use __hint(0). The disassembled result showed the new intrinsic did work.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |