
Dear Peter Tyser,
In message 1274382441.18152.37.camel@petert you wrote:
I can see your point but the current memtest code is not consistent with your description.
- Every other test other than the increment/decrement tests the region <
end address. Eg in the start:0x1000 end:0x2000 example, the *only* test that touches 0x2000-0x2003 region is the increment/decrement test. Either its broken, or the other memory test functions are.
I think this might indeed be the case. IIRC I originally wrote only the simple increment/decrement test, and the other tests got added later by others, probably with nobody noticing the differing behaviour.
- The output of 'mtest' is misleading:
=> mtest 0x1000 0x2000 1 1 Testing 00001000 ... 00002000:
That should be "00001000 ... 00002003" then, correct? (I know it should
No, it should not. The output shows the addresses where data is written to. If you write a 32 bit word to address 00002000, this writes to the byte addresses 00002000, 00002001, 00002002 and 00002003 (assuming a big endian system). So the output actually is correct.
be "00001000 ... 00001fff" to be consistent with this patch's implementation, so this argument is weak...)
No, because we do not actually write to this address (which would also be misaligned for a word write).
How would you like this cleaned up? Bring the address coverage of the other tests inline with the increment/decrement test? Improve the mtest output so its obvious what exactly is being tested?
Both, of course :-) Although I think the output is even correct, it just leaves room for misinterpretation.
Best regards,
Wolfgang Denk