[lkml]   [2012]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 3/3] x86: UV2 BAU hang workarounds

    * Cliff Wickman <> wrote:

    > On SGI's UV2 the BAU (Broadcast Assist Unit) driver can hang under a
    > heavy load. To cure this:
    > - Disable the UV2 extended status mode (see UV2_EXT_SHFT), as this
    > mode changes BAU behavior in more ways then just delivering an extra bit
    > of status. Revert status to just two meaningful bits, like UV1.
    > - Use no IPI-style resets on UV2. Just give up the request for whatever the
    > reason it failed and let it be accomplished with the legacy IPI method.
    > - Use no alternate sending descriptor (the former UV2 workaround
    > bcp->using_desc and handle_uv2_busy() stuff). Just disable the use of the
    > BAU for a period of time in favor of the legacy IPI method when the h/w bug
    > leaves a descriptor busy.
    > -- new tunable: giveup_limit determines the threshold at which a hub is
    > so plugged that it should do all requests with the legacy IPI method for a
    > period of time
    > -- generalize disable_for_congestion() (renamed disable_for_period()) for
    > use whenever a hub should avoid using the BAU for a period of time
    > Misc:
    > - fix find_another_by_swack(), which is part of the UV2 bug workaround
    > - correct and clarify the statistics (new stats s_overipilimit s_giveuplimit
    > s_enters s_ipifordisabled s_plugged s_congested)

    Sigh, it looks like something that ought to be 7 successive,
    easy to review commits got mixed up into a single, huge, hard to
    review commit. How did that happen?



     \ /
      Last update: 2012-06-25 12:42    [W:0.023 / U:35.984 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site