[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
Closed #645 via 5c27f9187a229d792514242b32561a5079fcfa3a. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#event-1742932192 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-Mbe4c980f549fb1d2b8885340 Delivery options: https://openzfs.topicbox.com/groups/developer/subscription
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
andy-js approved this pull request. I've seen the deadlock. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#pullrequestreview-129120299 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-M10c2c23c8a9d5ca7738b3092 Delivery options: https://openzfs.topicbox.com/groups
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
behlendorf approved this pull request. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#pullrequestreview-128081663 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-Mb2a8425cf9fdd51c8b11d4e3 Delivery options: https://openzfs.topicbox.com/groups
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
Ramzec commented on this pull request. > @@ -2940,7 +2916,8 @@ dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag) db->db.db_size, db); mutex_exit(>db_mtx); - if (db->db_caching_status == DB_DBUF_CACHE) { + if (db->db_caching_status == DB_DBUF_CACHE && + !evicting) { dbuf_evict_notify(); Thank you. I have no other questions. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#discussion_r193510838 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-Mde0129846393d55fefc46d70 Delivery options: https://openzfs.topicbox.com/groups
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
Ramzec requested changes on this pull request. > @@ -2940,7 +2916,8 @@ dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag) db->db.db_size, db); mutex_exit(>db_mtx); - if (db->db_caching_status == DB_DBUF_CACHE) { + if (db->db_caching_status == DB_DBUF_CACHE && + !evicting) { dbuf_evict_notify(); What if pass "evicting" param to the function as a "don't_do_direct_eviction" param so eviction thread will always be awakened ASAP? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#pullrequestreview-125409966 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-M2e6004a0219f621a107ea3ad Delivery options: https://openzfs.topicbox.com/groups
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
@Ramzec This is 3rd hand info... would be great if someone from Nexenta (@skiselkov ?) could file a bug report. ``` Thread A is evicting dbufs that are related to dnodeA dnode_evict_dbufs(dnoneA) enters dn_dbufs_mtx after that walks the AVL of dbufs and calls: dbuf_destroy()->...->dbuf_evict_notify()->dbuf_evict_one()->select a dbuf from cache->dbuf_destroy()->mutex_enter(dn_dbufs_mtx of dnoneB) Thread B is evicting dbufs that are related to dnodeB dnode_evict_dbufs(dnodeB) enters dn_dbufs_mtx, after that walks the AVL of dbufs and calls: dbuf_destroy()->...->dbuf_evict_notify()->dbuf_evict_one()->select a dbuf from cache->dbuf_destroy()->mutex_enter(dn_dbufs_mtx of dnodeA) > $C d001eb9b8570 vpanic() d001eb9b8610 0xfbb2d77a() d001eb9b8680 mutex_vector_enter+0x3a3(d06372a15498) d001eb9b86e0 dbuf_destroy+0x1b3(d063729427e8) d001eb9b8700 dbuf_evict_one+0xae() d001eb9b8720 dbuf_evict_notify+0xb9() d001eb9b87f0 dbuf_rele_and_unlock+0x2b1(d063748e0258, d063b28b3e10) d001eb9b8830 dbuf_rele+0x30(d063748e0258, d063b28b3e10) d001eb9b8890 dbuf_destroy+0x168(d063b28b3e10) d001eb9b89c0 dnode_evict_dbufs+0x120(d063b432b560, ) d001eb9b8cb0 dmu_objset_evict_dbufs+0x83(d06372540b00) d001eb9b8d10 zfsvfs_teardown+0x142(d063c42db000, 1) d001eb9b8d70 zfs_umount+0x10c(d063a44b6028, 0, d06332a1b528) d001eb9b8da0 fsop_unmount+0x1b(d063a44b6028, 0, d06332a1b528) d001eb9b8df0 dounmount+0x57(d063a44b6028, 0, d06332a1b528) d001eb9b8e40 umount2_engine+0x96(d063a44b6028, 0, d06332a1b528, 1) d001eb9b8ec0 umount2+0x163(819e1e8, 0) d001eb9b8f10 _sys_sysenter_post_swapgs+0x149() ``` This change would prevent the reported stack trace. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#issuecomment-394165394 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-M71a1f2cfb6926406b5889424 Delivery options: https://openzfs.topicbox.com/groups
[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)
Could you please explain how the change handles the 3rd problem? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/645#issuecomment-394149250 -- openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Tb73a3d2cba6f4c23-M577dd33de998a968dcdc1ae7 Delivery options: https://openzfs.topicbox.com/groups