RE: [BUG] Variable stopmachine_state should be volatile

From: Zhang, Yanmin
Date: Mon Dec 12 2005 - 02:06:39 EST


>>-----Original Message-----
>>From: linux-ia64-owner@xxxxxxxxxxxxxxx
>>[mailto:linux-ia64-owner@xxxxxxxxxxxxxxx] On Behalf Of Luck, Tony
>>Sent: 2005年12月9日 2:53
>>To: Zhang, Yanmin; Arjan van de Ven; Pavel Machek
>>Cc: linux-kernel@xxxxxxxxxxxxxxx; Pallipadi, Venkatesh; Shah, Rajesh;
>>linux-ia64@xxxxxxxxxxxxxxx
>>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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/