Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Feb 2013 21:47:31 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        arch@freebsd.org
Subject:   Re: Unmapped I/O
Message-ID:  <20130214194731.GK2522@kib.kiev.ua>
In-Reply-To: <20121219135451.GU71906@kib.kiev.ua>
References:  <20121219135451.GU71906@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

--XnmMk6h6iXODEPbR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

This is an update on the message
http://lists.freebsd.org/pipermail/freebsd-arch/2012-December/013672.html

The work implements the unmapped kernel I/O buffers, eliminating the
overhead of the mapping and IPIs, for most of i/o paths on the UFS
volumes.  In particular, read(2)/write(2) initiated i/o, including
clustered operations and page-ins are unmapped.  Also the physio is
unmapped if the geom/drivers support it.

Only ahci(4) is adopted to provide required support.  Most other HBAs
which properly use bus_dmamap_load_ccb() can be trivially converted in
a way similar to ahci(4), see the changes in the patch.  I did not the
conversion because I cannot test.

I consider the current patch ready to be committed into the HEAD.
Some elements of the design were discussed with Jeff Roberson.  The
patch was tested by Peter Holm, a backport to stable/9 got load
testing by Scott Long.  I see an ~30% reduction in the system time on
reading large files over UFS/ahci on the 4-core HTT machine.

The only big stop there is the lack of testing on non-x86 platforms.
Marius Strobl pointed out that pmap_copy_pages() for sparc64 is
incorrect.  For the final commit, I will disable the unmapped buffers
on any architecture which was not tested at the time of commit.

The patch is available at
http://people.freebsd.org/~kib/misc/unmapped.13.patch

--XnmMk6h6iXODEPbR
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQIcBAEBAgAGBQJRHT9TAAoJEJDCuSvBvK1BoP4P/jeOppSvMxn3oUX9/3zLphJw
Ho82hRCKt3QBTq9LDRB4h0kMpLZQw5W/l4vqXHcJMSpQ1qJkJQN9K4Wcpc4hs8Sv
qgrQfd+CvMukGLUUFFtEJLRkIwxA0wMAI/5U8LFwTjYZ8+OR5Lk2OUVw2m4LvGnn
9fHvqrSnRAIAiDuPYnWklR5uEy0YOmfkq5/vl/kXKWTShE/MBmpfrT2IvpfaIoJR
czpfgFkpzqNlIfJEiHhfgQ0Q3P9sTtmdVE7H7F7hvV8F2QNkVySRKy78mcqViGYP
kchcIpJQryquZtyEMXT5e1LacediwIR1OUC9jL8kPnCTXGIt9uryQJEFPqGSo4CT
h9vsaKG8s+a+yUbPusinXfOj5huCk4V5npygRtPoKhTAqQxgB0W97B+anOsX2PFW
PDwz/7mYSuNKc/14v0rdvhqOXOvsSn+RS1AFtds1Kjrt1yHEbocHfoxSYp3/zhtt
Xr0itgDorQXZHmQfjrhkbvAL+0c3Z17kpuhROjku4/swVUSDSd0HibkqpBOPOEFQ
LXBZfTxQ9LXlfPh8JGwa36/SWqywPVIwqXRJtGRX9TSx64lWWJPGDnlpwTT/ZnPp
6mgk2FbO/s3L7OW4RYudT3Do3ylfUmVZ/LMcjgCstY4yXmMS3uv5qD2FHoKmRuiR
YiqwiL3fXZrG1BrJRMz1
=E2h0
-----END PGP SIGNATURE-----

--XnmMk6h6iXODEPbR--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130214194731.GK2522>