1. 05 3月, 2006 1 次提交
  2. 27 2月, 2006 2 次提交
  3. 13 2月, 2006 1 次提交
  4. 10 2月, 2006 1 次提交
  5. 08 2月, 2006 2 次提交
  6. 05 2月, 2006 2 次提交
  7. 30 1月, 2006 1 次提交
  8. 23 1月, 2006 1 次提交
  9. 20 1月, 2006 1 次提交
  10. 19 1月, 2006 6 次提交
  11. 18 1月, 2006 1 次提交
    • R
      [SPARC64]: Eliminate race condition reading Hummingbird STICK register · 9eb3394b
      Richard Mortimer 提交于
      Ensure a consistent value is read from the STICK register by ensuring
      that both high and low are read without high changing due to a roll
      over of the low register.
      
      Various Debian/SPARC users (myself include) have noticed problems with
      Hummingbird based systems. The symptoms are that the system time is
      seen to jump forward 3 days, 6 hours, 11 minutes give or take a few
      seconds. In many cases the system then hangs some time afterwards.
      
      I've spotted a race condition in the code to read the STICK register.
      I could not work out why 3d, 6h, 11m is important but guess that it is
      due to the 2^32 jump of STICK (forwards on one read and then the next
      read will seem to be backwards) during a timer interrupt. I'm guessing
      that a change of -2^32 will get converted to a large unsigned
      increment after the arithmetic manipulation between STICK,
      nanoseconds, jiffies etc.
      
      I did a test where I modified __hbird_read_stick to artificially
      inject rollover faults forcefully every few seconds. With this I saw
      the clock jump over 6 times in 12 hours compared to once every month
      or so.
      Signed-off-by: NRichard Mortimer <richm@oldelvet.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9eb3394b
  12. 13 1月, 2006 3 次提交
  13. 12 1月, 2006 3 次提交
  14. 11 1月, 2006 5 次提交
  15. 10 1月, 2006 5 次提交
  16. 09 1月, 2006 2 次提交
  17. 29 12月, 2005 1 次提交
  18. 23 12月, 2005 2 次提交