Bug #184
closedzfs_putpage() optimization
100%
Description
This has been logged as CR 6979725 but not yet fixed by Oracle.
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6979725
I experienced the issue during a filebench run on Nexenta in which the file "re-use" operation (msync) on a 20GB file caused all I/O to hang for more than 30 seconds, even other zpools. Stack trace looked like this:
[ ffffff0010429990 _resume_from_idle+0xf1() ]
ffffff0010429b10 page_lookup_create+0xd6(ffffff02d2813c40, 37588b000, 1, 0, 0, 0)
ffffff0010429b40 page_lookup+0x26(ffffff02d2813c40, 375889000, 1)
ffffff0010429c00 zfs_putpage+0x1af(ffffff02d2813c40, 3758a5000, 1000, 10000, ffffff02cf328f20, 0)
ffffff0010429c70 fop_putpage+0x74(ffffff02d2813c40, 3758b0000, 1000, 10000, ffffff02cf328f20, 0)
ffffff0010429d50 segvn_sync+0x459(ffffff02ecb4e7f0, fffffd7f63c00000, 40000000, 0, 6)
ffffff0010429e40 as_ctl+0x200(ffffff02d15efda0, fffffd7f63c00000, 40000000, 1, 0, 6, 0, 0)
ffffff0010429f00 memcntl+0x764(fffffd7f63c00000, 40000000, 1, 2, 0, 0)
ffffff0010429f10 sys_syscall+0x17a()
I created the attached patch and re-ran the filebench tests, and the long I/O stalls were reduced to only 3 or 4 seconds. I'm creating this issue report since the problem most likely exists in Illumos as well. Looking for comments/feedback on whether this fix seems correct and appropriate. Thanks!
Files
Updated by Garrett D'Amore over 11 years ago
- Category set to kernel
- Status changed from New to In Progress
- Assignee set to Garrett D'Amore
- % Done changed from 0 to 90
The patch looks good, and the ZFS working group members have blessed the change, with one suggestion (the insertion of an ASSERT at the right point.)
Updated by Garrett D'Amore over 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 90 to 100
garrett@thinkpad{31}> hg head
changeset: 13283:4f8f71d21b9f
tag: tip
user: Garrett D'Amore <garrett@nexenta.com>
date: Mon Feb 07 14:16:27 2011 -0800
description:
184 zfs_putpage() optimization
Reviewed by: eric.schrock@delphix.com
Reviewed by: george.wilson@delphix.com
Approved by: gwr@nexenta.com