HomeFreeBSD

MFC r284928: speed up ar(1) on UFS file systems

Description

MFC r284928: speed up ar(1) on UFS file systems

Fault in the buffer prior to writing to workaround poor performance due
to interaction with kernel fs deadlock avoidance code. See the comment
prior to vn_io_fault_doio() in sys/kern/vfs_vnops.c for details of the
issue.

On my stable/10 desktop with a 16MB obj.o and "ar r out.a obj.o" I see
the following run times (seconds):

x ar.r284891
+ ar.patched
+----------------------------------------------------------------------+

+
+ x
+ xx
AA

+----------------------------------------------------------------------+

N         Min          Max        Median           Avg        Stddev

x 3 1.307 1.321 1.315 1.3143333 0.0070237692
+ 3 0.020 0.023 0.022 0.021666667 0.0015275252
Difference at 95.0% confidence

-1.29267 +/- 0.0115203
-98.3515% +/- 0.876513%
(Student's t, pooled s = 0.00508265)

Thanks to kib for diagnosing and explaining the issue and suggesting
the workaround.

Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation

Details

Provenance
emasteAuthored on
Parents
rS285223: Welcome Conrad Meyer (cem) as a new src committer.
Branches
Unknown
Tags
Unknown