1. 22 7月, 2010 1 次提交
    • C
      x86, UV: Make kdump avoid stack dumps · 5edd19af
      Cliff Wickman 提交于
      UV NMI callback's should not write stack dumps when a kdump is to be written.
      
      When invoking the crash kernel to write a dump, kdump_nmi_shootdown_cpus()
      uses NMI's to get all the cpu's to save their register context and halt.
      
      But the NMI interrupt handler runs a callback list.  This patch sets a flag
      to prevent any of those callbacks from interfering with the halt of the cpu.
      
      For UV, which currently has the only callback to which this is relevant, the
      uv_handle_nmi() callback should not do dumping of stacks.
      
      The 'in_crash_kexec' flag is defined as an extern in kdebug.h firstly
      because x2apic_uv_x.c includes it.  Secondly because some future callback
      might need the flag to know that it should not enter the debugger.
      (Such a scenario was in fact present in the 2.6.32 kernel, SuSE distribution,
       where a call to kdb needed to be avoided.)
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      LKML-Reference: <E1ObLvt-0005UZ-Va@eag09.americas.sgi.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      5edd19af
  2. 17 7月, 2010 1 次提交
    • C
      x86, UV: Initialize BAU MMRs only on hubs with cpus · 93a7ca0c
      Cliff Wickman 提交于
      Remove the initialization of MMRs
      UVH_LB_BAU_SB_ACTIVATION_CONTROL and UVH_BAU_DATA_BROADCAST on
      UV hubs that have no active cpus. Such initialization on hubs
      with no active cpus would result in a kernel page fault.
      
      This is not of real high priority, because we don't have any
      such systems (with UV hubs that have no active cpus).  But they
      will be coming.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      LKML-Reference: <E1OZmZN-0006cW-RC@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      93a7ca0c
  3. 09 6月, 2010 11 次提交
    • C
      x86, UV: Modularize BAU send and wait · f6d8a566
      Cliff Wickman 提交于
      Streamline the large uv_flush_send_and_wait() function by use of
      a couple of helper functions.
      
      And remove some excess comments.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004ay-IH@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f6d8a566
    • C
      x86, UV: BAU broadcast to the local hub · 450a007e
      Cliff Wickman 提交于
      Make the Broadcast Assist Unit driver use the BAU for TLB
      shootdowns of cpu's on the local uvhub.
      
      It was previously thought that IPI might be faster to the cpu's
      on the local hub.  But the IPI operation would have to follow
      the completion of the BAU broadcast anyway.  So we broadcast to
      the local uvhub in all cases except when the current cpu was the
      only local cpu in the mask.
      
      This simplifies uv_flush_send_and_wait() in that it returns
      either all shootdowns complete, or none.
      
      Adjust the statistics to account for shootdowns on the local
      uvhub.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004aq-G7@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      450a007e
    • C
      x86, UV: Correct BAU regular message type · 7fba1bcd
      Cliff Wickman 提交于
      The Broadcast Assist Unit messages have a regular or retry
      message type. The regular type was not being set, but needs to
      be, because the lack of a message type is sometimes used to
      identify an unused entry in the message queue.
      Also removing some excess comments.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004ak-Dy@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7fba1bcd
    • C
      x86, UV: Remove BAU check for stay-busy · 90cc7d94
      Cliff Wickman 提交于
      Remove a faulty assumption that a long running BAU request has
      encountered a hardware problem and will never finish.
      
      Numalink congestion can make a request appear to have
      encountered such a problem, but it is not safe to cancel the
      request.  If such a cancel is done but a reply is later received
      we can miss a TLB shootdown.
      
      We depend upon the max_bau_concurrent 'throttle' to prevent the
      stay-busy case from happening.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004ad-BV@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      90cc7d94
    • C
      x86, UV: Correct BAU discovery of hubs and sockets · a8328ee5
      Cliff Wickman 提交于
      Correct the initialization-time assumption of contigous blade
      numbers and of sockets numbered from zero.
      
      There may be hubs present with no cpu's enabled.
      There may be disabled sockets such that the active socket is not
      number zero.
      
      And assign a 'socket master' by assuming that a socket is a
      node. (it is not safe to extract socket number from an apicid)
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004aW-9S@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a8328ee5
    • C
      x86, UV: Correct BAU software acknowledge · 39847e7f
      Cliff Wickman 提交于
      Correct the acknowledgment and the reset of a BAU
      software-acknowledged message.
      
      A retry message should be testing only for timed-out resources
      (mask << 8). (And we delete a log message that might cause
      unnecessary concern) The acknowledge MMR is
      |--timed-out--|---pending--|,  each is 8 bits.
      
      The IPI-driven reset of software acknowledge resources frees
      both timed out and pending resources.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004aP-7O@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      39847e7f
    • C
      x86, UV: BAU structure rearranging · 4faca155
      Cliff Wickman 提交于
      Move some structure definitions from the C code to the BAU
      header file, and change the organization of that header file a
      little.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004aI-54@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4faca155
    • C
      x86, UV: Shorten access to BAU statistics structure · 712157aa
      Cliff Wickman 提交于
      Use a pointer from the per-cpu BAU control structure to the
      per-cpu BAU statistics structure.
      We nearly always know the first before needing the second.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004aB-2k@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      712157aa
    • C
      x86, UV: Disable BAU on network congestion · 50fb55ac
      Cliff Wickman 提交于
      The numalink network can become so congested that TLB shootdown
      using the Broadcast Assist Unit becomes slower than using IPI's.
      
      In that case, disable the use of the BAU for a period of time.
      The period is tunable.  When the period expires the use of the
      BAU is re-enabled. A count of these actions is added to the
      statistics file.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNy-0004a4-0a@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      50fb55ac
    • C
      x86, UV: BAU tunables into a debugfs file · e8e5e8a8
      Cliff Wickman 提交于
      Make the Broadcast Assist Unit driver's nine tuning values variable by
      making them accessible through a read/write debugfs file.
      
      The file will normally be mounted as
      /sys/kernel/debug/sgi_uv/bau_tunables. The tunables are kept in each
      cpu's per-cpu BAU structure.
      
      The patch also does a little name improvement, and corrects the reset of
      two destination timeout counters.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNx-0004Zx-Uo@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e8e5e8a8
    • C
      x86, UV: Calculate BAU destination timeout · 12a6611f
      Cliff Wickman 提交于
      Calculate the Broadcast Assist Unit's destination timeout period from the
      values in the relevant MMR's.
      
      Store it in each cpu's per-cpu BAU structure so that a destination
      timeout can be differentiated from a 'plugged' situation in which all
      software ack resources are already allocated and a timeout is pending.
      That case returns an immediate destination error.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: gregkh@suse.de
      LKML-Reference: <E1OJvNx-0004Zq-RK@eag09.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      12a6611f
  4. 05 6月, 2010 5 次提交
  5. 03 6月, 2010 2 次提交
  6. 02 6月, 2010 12 次提交
  7. 01 6月, 2010 2 次提交
  8. 31 5月, 2010 6 次提交