diff options
author | jpaetzel <jpaetzel@FreeBSD.org> | 2017-03-07 18:27:35 +0000 |
---|---|---|
committer | jpaetzel <jpaetzel@FreeBSD.org> | 2017-03-07 18:27:35 +0000 |
commit | 302c1ab5872d36595738b22e5c81f25970497b05 (patch) | |
tree | 382f785c1dab36868091fe10fe9a634a9cc0d233 /secure | |
parent | c8cc52a72eded562905f2a1df47ce7f517dd0f53 (diff) | |
download | FreeBSD-src-302c1ab5872d36595738b22e5c81f25970497b05.zip FreeBSD-src-302c1ab5872d36595738b22e5c81f25970497b05.tar.gz |
MFC 313879
MVF: 313876
7504 kmem_reap hangs spa_sync and administrative tasks
illumos/illumos-gate@405a5a0f5c3ab36cb76559467d1a62ba648bd809
https://github.com/illumos/illumos-gate/commit/405a5a0f5c3ab36cb76559467d1a62ba648bd80
https://www.illumos.org/issues/7504
We see long spa_sync(). We are waiting to hold dp_config_rwlock for writer. Some
other thread holds dp_config_rwlock for reader, then calls arc_get_data_buf(),
which finds that arc_is_overflowing()==B_TRUE. So it waits (while holding
dp_config_rwlock for reader) for arc_reclaim_thread to signal arc_reclaim_waiters_cv.
Before signaling, arc_reclaim_thread does arc_kmem_reap_now(), which takes ~seconds.
Author: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'secure')
0 files changed, 0 insertions, 0 deletions