summaryrefslogtreecommitdiff
path: root/usr/src/cmd/fm
diff options
context:
space:
mode:
authorHyon Kim <Hyon.Kim@Sun.COM>2010-08-16 16:49:45 -0700
committerHyon Kim <Hyon.Kim@Sun.COM>2010-08-16 16:49:45 -0700
commit8393544efeffe8042bf5273c148010b32fa827e2 (patch)
treed908d9bec0b4947c3ea07c93fe3aa81b0fcdfa6c /usr/src/cmd/fm
parent224626ecddeda26f76cf689e627a9088b1840c3b (diff)
downloadillumos-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.c2
-rw-r--r--usr/src/cmd/fm/fmd/common/fmd_topo.c19
-rw-r--r--usr/src/cmd/fm/fmd/common/fmd_topo.h5
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 *);