I have CONFIG_X86_FX and CONFIG_X86_XMM turned on.
My user program initializes %xmm0..%xmm7 to contain floating point
values 0..31. Then, once each second it reads these registers and
prints them out. Here is what I am seeing:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31
7.58801e+31 4.67192e+07 2.6663e+35 2.88384e+23 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
7.58801e+31 4.67192e+07 2.6663e+35 2.88384e+23 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31
As you can see, the first four have been clobbered, but later were fixed
(not by me). I did not see this behavior until swap was used.
I will turn off CONFIG_X86_XMM (which enables the XMM instructions in
kernel code) to see if the problem goes away.
--Lee Hetherington
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/