[U-Boot] [PATCH] mem_mtest: bail out after finding 1st memory error.

Paul Gortmaker paul.gortmaker at windriver.com
Wed Sep 30 22:53:20 CEST 2009


Wolfgang Denk wrote:
> Dear Paul Gortmaker,
> 
> In message <1254338488-15332-1-git-send-email-paul.gortmaker at windriver.com> you wrote:
>> The basic memtest function tries to watch for ^C after each
>> pattern pass as an escape mechanism, but if things are horribly
>> wrong, we'll be stuck in an inner loop flooding the console with
>> error messages and never check for ^C.  To make matters worse,
>> if the user waits for all the error messages to complete, we
>> then incorrectly report the test passed without errors.
>>
>> By inspecting the code, it is clear that the test was originally
>> written with returning after the 1st error in mind (which is what
>> the optional more extensive test does).  Making it do this also
>> solves the endless console flood problem if a person tests really
>> bad RAM.
> 
> Please don't change the behaviour, rather fix the problems with it.
> 
> If you like, please feel free to add code to bail out after a number
> of errors, but that should be optional (for example using an
> additional argument on the command line).

I agree in principle, and I'd actually 1st created a patch
that watched for ^C in the inner loop.  But the more I looked
at the code, the more I felt that the original intention of
the code was in fact the "new" behaviour.

For example, the CONFIG_SYS_ALT_MEMTEST contains:

             printf ("\nFAILURE: ....);
             return 1;

in several places throughout the test.  And in the
default test, the code has:

           if (iteration_limit && iterations > iteration_limit) {
                   printf("Tested %d iteration(s) without errors.\n",
                           iterations-1);
                   return 0;
           }

i.e. there was never any provision for checking the rcode
variable or counting the errors -- it assumed that if it
ran the full iteration count, then there were no errors.

If you still think it is best to maintain current behaviour
and not stop after the 1st error, that is fine, I can do that,
but I just wanted to be sure it was clear why I did it this
way.

Thanks,
Paul.

> 
> 
> Best regards,
> 
> Wolfgang Denk
> 



More information about the U-Boot mailing list