• John David Anglin's avatar
    parisc: Reorder TLB flush timing calculation · a886c979
    John David Anglin authored
    On boot (mostly reboot), my c8000 sometimes crashes after it prints the
    TLB flush threshold.  The lockup is hard.  The front LED flashes red and
    the box must be unplugged to reset the error.
    
    I noticed that when the crash occurs the TLB flush threshold is about
    one quarter what it is on a successful boot.  If I disabled the
    calculation, the crash didn't occur.  There also seemed to be a timing
    dependency affecting the crash.  I finally realized that the
    flush_tlb_all() timing test runs just after the secondary CPUs are
    started.  There seems to be a problem with running flush_tlb_all() too
    soon after the CPUs are started.
    
    The timing for the range test always seemed okay.  So, I reversed the
    order of the two timing tests and I haven't had a crash at this point so
    far.
    
    I added a couple of information messages which I have left to help with
    diagnosis if the problem should appear on another machine.
    
    This version reduces the minimum TLB flush threshold to 16 KiB.
    Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    a886c979
cache.c 17.7 KB