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>