[developer] Re: [openzfs/openzfs] 9577 remove zfs_dbuf_evict_key tsd (#645)

2018-07-19 Thread Prakash Surya
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)

2018-06-15 Thread Andrew Stormont
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)

2018-06-12 Thread Brian Behlendorf
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)

2018-06-06 Thread Roman Strashkin
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)

2018-06-03 Thread Roman Strashkin
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)

2018-06-03 Thread Matthew Ahrens
@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)

2018-06-03 Thread Roman Strashkin
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