diff options
| author | Hyon Kim <Hyon.Kim@Sun.COM> | 2010-08-16 16:49:45 -0700 |
|---|---|---|
| committer | Hyon Kim <Hyon.Kim@Sun.COM> | 2010-08-16 16:49:45 -0700 |
| commit | 8393544efeffe8042bf5273c148010b32fa827e2 (patch) | |
| tree | d908d9bec0b4947c3ea07c93fe3aa81b0fcdfa6c /usr/src/cmd/fm | |
| parent | 224626ecddeda26f76cf689e627a9088b1840c3b (diff) | |
| download | illumos-joyent-8393544efeffe8042bf5273c148010b32fa827e2.tar.gz | |
6969657 Taking DINFOFORCE devinfo snapshot in libtopo may cause a long delay for fmtopo and fmd.
Diffstat (limited to 'usr/src/cmd/fm')
| -rw-r--r-- | usr/src/cmd/fm/fmd/common/fmd_dr.c | 2 | ||||
| -rw-r--r-- | usr/src/cmd/fm/fmd/common/fmd_topo.c | 19 | ||||
| -rw-r--r-- | usr/src/cmd/fm/fmd/common/fmd_topo.h | 5 |
3 files changed, 9 insertions, 17 deletions
diff --git a/usr/src/cmd/fm/fmd/common/fmd_dr.c b/usr/src/cmd/fm/fmd/common/fmd_dr.c index 3b5eba87aa..e4fec10d08 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_dr.c +++ b/usr/src/cmd/fm/fmd/common/fmd_dr.c @@ -134,7 +134,7 @@ fmd_dr_event(sysevent_t *sep) (void) pthread_mutex_unlock(&fmd.d_stats_lock); TRACE((FMD_DBG_XPRT, "dr event %p, gen=%llu", (void *)sep, gen)); - fmd_topo_update(B_FALSE); + fmd_topo_update(); ftp = fmd_topo_hold(); e = fmd_event_create(FMD_EVT_TOPO, ftp->ft_time_end, NULL, ftp); diff --git a/usr/src/cmd/fm/fmd/common/fmd_topo.c b/usr/src/cmd/fm/fmd/common/fmd_topo.c index 3173f82ce1..a7d80b4396 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_topo.c +++ b/usr/src/cmd/fm/fmd/common/fmd_topo.c @@ -19,8 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ /* @@ -61,7 +60,7 @@ fmd_topo_rele_locked(fmd_topo_t *ftp) } void -fmd_topo_update(boolean_t need_force) +fmd_topo_update(void) { int err; topo_hdl_t *tp; @@ -87,15 +86,9 @@ fmd_topo_update(boolean_t need_force) ftp->ft_hdl = tp; ftp->ft_time_begin = fmd_time_gethrtime(); - if (need_force) { - if ((id = topo_snap_hold(tp, NULL, &err)) == NULL) - fmd_panic("failed to get topology snapshot: %s", - topo_strerror(err)); - } else { - if ((id = topo_snap_hold_no_forceload(tp, NULL, &err)) == NULL) - fmd_panic("failed to get topology snapshot: %s", - topo_strerror(err)); - } + if ((id = topo_snap_hold(tp, NULL, &err)) == NULL) + fmd_panic("failed to get topology snapshot: %s", + topo_strerror(err)); topo_hdl_strfree(tp, id); @@ -166,7 +159,7 @@ fmd_topo_rele_hdl(topo_hdl_t *thp) void fmd_topo_init(void) { - fmd_topo_update(B_TRUE); + fmd_topo_update(); } void diff --git a/usr/src/cmd/fm/fmd/common/fmd_topo.h b/usr/src/cmd/fm/fmd/common/fmd_topo.h index 9b53e8ab8a..faabb66b24 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_topo.h +++ b/usr/src/cmd/fm/fmd/common/fmd_topo.h @@ -19,8 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ #ifndef _FMD_TOPO_H @@ -45,7 +44,7 @@ typedef struct fmd_topo { hrtime_t ft_time_end; } fmd_topo_t; -extern void fmd_topo_update(boolean_t); +extern void fmd_topo_update(void); extern fmd_topo_t *fmd_topo_hold(void); extern void fmd_topo_addref(fmd_topo_t *); extern void fmd_topo_rele(fmd_topo_t *); |
