Re: [PATCH] kmemcheck: disable fast string operations on P4 CPUs

Vegard Nossum
2009-02-22T10:51:46Z

2009/2/22 H. Peter Anvin <hpa@zytor.com>:
> Vegard Nossum wrote:
>> This patch may allow us to remove the REP emulation code from
>> kmemcheck.
>
>> +#ifdef CONFIG_KMEMCHECK
>> + /*
>> + * P4s have a "fast strings" feature which causes single-
>> + * stepping REP instructions to only generate a #DB on
>> + * cache-line boundaries.
>> + *
>> + * Ingo Molnar reported a Pentium D (model 6) and a Xeon
>> + * (model 2) with the same problem.
>> + */
>> + if (c->x86 == 15) {
>
> If this is supposed to refer to the Intel P4 core, you should exclude
> the post-P4 cores that also have x86 == 15 (e.g. Core 2 and Core i7).
> If those are affected, too, they should be mentioned in the comment.

Thanks for the review!

This is supposed to happen only for those machines where the "fast
string ops" is enabled by default.

We have a test for that in the part that you snipped -- and since the
MSR is architectural, I believe it would exist (i.e. not cause an
error if we read it, but just be cleared by default or hard-wired to
clear) on those post-P4 cores you mentioned too?

Vegard

--
"The animistic metaphor of the bug that maliciously sneaked in while
the programmer was not looking is intellectually dishonest as it
disguises that the error is the programmer's own creation."
-- E. W. Dijkstra, EWD1036