Paul Dagnelie
893a6d62c1
Allow metaslab to be unloaded even when not freed from
...
On large systems, the memory used by loaded metaslabs can become
a concern. While range trees are a fairly efficient data structure,
on heavily fragmented pools they can still consume a significant
amount of memory. This problem is amplified when we fail to unload
metaslabs that we aren't using. Currently, we only unload a metaslab
during metaslab_sync_done; in order for that function to be called
on a given metaslab in a given txg, we have to have dirtied that
metaslab in that txg. If the dirtying was the result of an allocation,
we wouldn't be unloading it (since it wouldn't be 8 txgs since it
was selected), so in effect we only unload a metaslab during txgs
where it's being freed from.
We move the unload logic from sync_done to a new function, and
call that function on all metaslabs in a given vdev during
vdev_sync_done().
Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Paul Dagnelie <pcd@delphix.com>
Closes #8837
2019-06-06 19:10:43 -07:00
..
2019-02-28 17:52:55 -08:00
2018-10-19 12:08:03 -07:00
2019-06-06 13:14:48 -07:00
2017-11-04 13:25:13 -07:00
2019-03-06 09:50:55 -08:00
2017-08-14 10:36:48 -07:00
2019-06-03 20:54:43 -07:00
2018-06-06 09:35:59 -07:00
2019-02-12 10:41:15 -08:00
2018-10-01 10:42:05 -07:00
2019-05-07 15:18:44 -07:00
2018-05-29 16:00:33 -07:00
2019-01-17 15:25:00 -08:00
2018-05-01 11:24:20 -07:00
2019-05-07 15:18:44 -07:00
2019-02-19 18:41:18 -08:00
2019-05-07 15:18:44 -07:00
2019-05-07 15:18:44 -07:00
2018-08-15 09:53:44 -07:00
2018-10-01 10:42:05 -07:00
2019-05-23 13:46:33 -07:00
2019-05-30 17:13:18 -07:00
2019-06-06 13:47:33 -07:00
2019-05-19 17:30:33 -07:00
2019-03-13 11:00:43 -07:00
2019-03-14 16:48:30 -07:00
2019-03-21 10:36:58 -07:00
2018-04-14 12:16:17 -07:00
2018-05-29 16:00:33 -07:00
2019-01-08 10:17:46 -08:00
2019-04-12 11:30:59 -07:00
2019-02-12 10:41:15 -08:00
2018-05-29 16:00:33 -07:00
2019-06-03 09:40:48 -07:00
2018-06-26 10:07:42 -07:00
2019-02-15 12:41:38 -08:00
2018-07-30 11:30:03 -07:00
2018-05-29 16:00:33 -07:00
2017-10-11 16:54:48 -04:00
2019-05-02 16:46:04 -07:00
2019-03-29 09:13:20 -07:00
2019-06-06 19:10:43 -07:00
2019-03-21 12:47:57 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-07 15:40:42 -08:00
2019-04-16 12:38:36 -07:00
2019-04-16 12:38:36 -07:00
2019-04-16 12:38:36 -07:00
2019-04-16 12:38:36 -07:00
2019-04-04 18:57:06 -07:00
2018-10-09 10:05:48 -07:00
2018-10-01 10:42:05 -07:00
2018-10-01 10:42:05 -07:00
2018-03-15 10:53:58 -07:00
2019-02-12 10:38:11 -08:00
2019-05-29 16:18:14 -07:00
2018-05-29 16:00:33 -07:00
2018-10-08 21:57:02 -07:00
2019-05-23 19:17:00 -07:00
2019-04-04 18:57:06 -07:00
2019-05-09 10:08:05 -07:00
2019-04-04 18:57:06 -07:00
2018-04-14 12:16:17 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2018-04-14 12:16:17 -07:00
2019-04-04 09:44:46 -07:00
2019-03-21 12:47:57 -07:00
2018-05-29 16:00:33 -07:00
2019-05-04 16:39:10 -07:00
2019-04-25 10:17:27 -07:00
2018-05-29 16:00:33 -07:00
2019-02-12 10:38:11 -08:00
2019-05-24 12:17:52 -07:00
2019-03-29 09:13:20 -07:00
2019-03-29 09:13:20 -07:00
2019-04-14 11:03:06 -07:00
2019-01-07 10:37:26 -08:00
2019-03-29 09:13:20 -07:00
2019-05-08 10:18:40 -07:00
2019-05-08 10:18:40 -07:00
2019-05-08 10:18:40 -07:00
2019-05-08 10:18:40 -07:00
2018-05-29 16:00:33 -07:00
2019-03-29 09:13:20 -07:00
2019-04-04 18:57:06 -07:00
2019-01-07 10:37:26 -08:00
2019-03-29 09:13:20 -07:00
2019-06-06 19:10:43 -07:00
2019-01-18 09:58:46 -08:00
2019-01-10 14:37:43 -08:00
2018-05-31 10:53:11 -07:00
2019-03-13 11:00:43 -07:00
2018-02-08 15:29:24 -08:00
2018-07-12 10:49:27 -07:00
2018-06-26 10:07:42 -07:00
2018-07-10 21:29:23 -07:00
2019-04-16 10:01:51 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2019-05-24 16:43:23 -07:00
2019-04-04 18:57:06 -07:00
2019-02-12 10:41:15 -08:00
2018-11-08 16:47:24 -08:00
2018-05-29 16:00:33 -07:00
2019-05-29 16:18:14 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-04 17:34:51 -08:00
2019-04-25 10:17:27 -07:00
2018-10-11 10:19:33 -07:00
2018-02-13 14:54:54 -08:00
2019-04-04 19:00:55 -07:00
2019-05-08 16:43:55 -07:00
2019-05-25 14:29:10 -07:00
2019-06-06 12:59:39 -07:00
2019-04-16 10:01:45 -07:00
2017-11-04 13:25:13 -07:00
2018-08-29 11:33:33 -07:00
2019-04-10 15:39:40 -07:00
2019-03-15 14:14:31 -07:00
2019-04-04 18:57:06 -07:00
2018-02-09 10:08:05 -08:00
2018-05-02 15:01:24 -07:00
2019-05-08 10:04:04 -07:00
2019-05-08 10:04:04 -07:00
2018-09-24 17:11:25 -07:00
2018-08-02 14:03:56 -07:00
2018-05-29 16:00:33 -07:00
2019-04-04 09:44:46 -07:00
2019-05-08 10:04:04 -07:00