16 Feb, 2006

1 commit

  • The original ia64 udelay() was simple, but flawed for platforms without
    synchronized ITCs: a preemption and migration to another CPU during the
    while-loop likely resulted in too-early termination or very, very
    lengthy looping.

    The first fix (now in 2.6.15) broke the delay loop into smaller,
    non-preemptible chunks, reenabling preemption between the chunks. This
    fix is flawed in that the total udelay is computed to be the sum of just
    the non-premptible while-loop pieces, i.e., not counting the time spent
    in the interim preemptible periods. If an interrupt or a migration
    occurs during one of these interim periods, then that time is invisible
    and only serves to lengthen the effective udelay().

    This new fix backs out the current flawed fix and returns to a simple
    udelay(), fully preemptible and interruptible. It implements two simple
    alternative udelay() routines: one a default generic version that uses
    ia64_get_itc(), and the other an sn-specific version that uses that
    platform's RTC.

    Signed-off-by: John Hawkes
    Signed-off-by: Tony Luck

    hawkes@sgi.com
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds