Print this page
NEX-3166 need to add FMA events for SSD lifespan
Reviewed by: Jeffry Molanus <jeffry.molanus@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
OS-119 use disk sense data to trigger over-temp fault

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/fm/modules/common/disk-transport/disk_transport.c
          +++ new/usr/src/cmd/fm/modules/common/disk-transport/disk_transport.c
↓ open down ↓ 160 lines elided ↑ open up ↑
 161  161                          if (nvpair_type(elem) != DATA_TYPE_BOOLEAN_VALUE)
 162  162                                  continue;
 163  163  
 164  164                          (void) nvpair_value_boolean_value(elem, &fault);
 165  165                          if (!fault ||
 166  166                              nvlist_lookup_nvlist(result, nvpair_name(elem),
 167  167                              &details) != 0)
 168  168                                  continue;
 169  169  
 170  170                          if (strcmp(nvpair_name(elem),
      171 +                            FM_EREPORT_SCSI_OVERTEMP) == 0 &&
      172 +                            fmd_prop_get_int32(dmp->dm_hdl,
      173 +                            "ignore-overtemp") == FMD_B_TRUE)
      174 +                                continue;
      175 +
      176 +                        if (strcmp(nvpair_name(elem),
 171  177                              FM_EREPORT_SCSI_SSMWEAROUT) == 0 &&
 172  178                              fmd_prop_get_int32(dmp->dm_hdl,
 173  179                              "ignore-ssm-wearout") == FMD_B_TRUE)
 174  180                                  continue;
 175  181  
 176  182                          dt_post_ereport(dmp->dm_hdl, dmp->dm_xprt, protocol,
 177  183                              nvpair_name(elem),
 178  184                              fmd_event_ena_create(dmp->dm_hdl), fmri, details);
 179  185                  }
 180  186          }
↓ open down ↓ 64 lines elided ↑ open up ↑
 245  251          fmd_timer_remove(hdl, dmp->dm_timer);
 246  252          dmp->dm_timer = fmd_timer_install(hdl, NULL, NULL,
 247  253              fmd_prop_get_int64(hdl, "min-interval"));
 248  254          dmp->dm_timer_istopo = B_TRUE;
 249  255  }
 250  256  
 251  257  static const fmd_prop_t fmd_props[] = {
 252  258          { "interval", FMD_TYPE_TIME, "1h" },
 253  259          { "min-interval", FMD_TYPE_TIME, "1min" },
 254  260          { "simulate", FMD_TYPE_STRING, "" },
      261 +        { "ignore-overtemp", FMD_TYPE_BOOL, "true"},
 255  262          { "ignore-ssm-wearout", FMD_TYPE_BOOL, "false"},
 256  263          { NULL, 0, NULL }
 257  264  };
 258  265  
 259  266  static const fmd_hdl_ops_t fmd_ops = {
 260  267          NULL,                   /* fmdo_recv */
 261  268          dt_timeout,             /* fmdo_timeout */
 262      -        NULL,                   /* fmdo_close */
      269 +        NULL,                   /* fmdo_close */
 263  270          NULL,                   /* fmdo_stats */
 264  271          NULL,                   /* fmdo_gc */
 265  272          NULL,                   /* fmdo_send */
 266  273          dt_topo_change,         /* fmdo_topo_change */
 267  274  };
 268  275  
 269  276  static const fmd_hdl_info_t fmd_info = {
 270  277          "Disk Transport Agent", "1.1", &fmd_ops, fmd_props
 271  278  };
 272  279  
↓ open down ↓ 88 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX