x86, UV: Shorten access to BAU statistics structure
[firefly-linux-kernel-4.4.55.git] / arch / x86 / include / asm / uv / uv_bau.h
index e5543c1a80cab2801000b83a466d048b773a5617..6a42d42eb8f9a1482285eb3d16491881a7dffc3d 100644 (file)
@@ -34,6 +34,7 @@
  */
 
 #define UV_ITEMS_PER_DESCRIPTOR                8
+/* the 'throttle' to prevent the hardware stay-busy bug */
 #define MAX_BAU_CONCURRENT             3
 #define UV_CPUS_PER_ACT_STATUS         32
 #define UV_ACT_STATUS_MASK             0x3
@@ -331,6 +332,7 @@ struct bau_control {
        struct bau_payload_queue_entry *bau_msg_head;
        struct bau_control *uvhub_master;
        struct bau_control *socket_master;
+       struct ptc_stats *statp;
        unsigned long timeout_interval;
        unsigned long set_bau_on_time;
        atomic_t active_descriptor_count;
@@ -338,6 +340,7 @@ struct bau_control {
        int timeout_tries;
        int ipi_attempts;
        int conseccompletes;
+       int baudisabled;
        int set_bau_off;
        short cpu;
        short uvhub_cpu;
@@ -389,6 +392,8 @@ struct ptc_stats {
        unsigned long s_busy; /* status stayed busy past s/w timer */
        unsigned long s_throttles; /* waits in throttle */
        unsigned long s_retry_messages; /* retry broadcasts */
+       unsigned long s_bau_reenabled; /* for bau enable/disable */
+       unsigned long s_bau_disabled; /* for bau enable/disable */
        /* destination statistics */
        unsigned long d_alltlb; /* times all tlb's on this cpu were flushed */
        unsigned long d_onetlb; /* times just one tlb on this cpu was flushed */