From 664807589341f1627328f80d9bc930bccbaaa2d4 Mon Sep 17 00:00:00 2001 From: Xavier Hernandez Date: Mon, 20 Feb 2017 09:29:19 +0100 Subject: doc: Release notes for disperse Change-Id: Ib7f586dc1a2c79180d18a737f476757e170f8a2e BUG: 1417735 Signed-off-by: Xavier Hernandez Reviewed-on: https://review.gluster.org/16685 CentOS-regression: Gluster Build System NetBSD-regression: NetBSD Build System Smoke: Gluster Build System Reviewed-by: Shyamsundar Ranganathan --- doc/release-notes/3.10.0.md | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'doc/release-notes') diff --git a/doc/release-notes/3.10.0.md b/doc/release-notes/3.10.0.md index b08dd273d0e..0de25b2574d 100644 --- a/doc/release-notes/3.10.0.md +++ b/doc/release-notes/3.10.0.md @@ -197,6 +197,53 @@ The above option is on by default. *Known Issues:* +### Added support for CPU extensions in disperse computations +*Notes for users:* +To improve disperse computations, a new way of generating dynamic code +targeting specific CPU extensions like SSE and AVX on Intel processors is +implemented. The available extensions are detected on run time. This can +roughly double encoding and decoding speeds (or halve CPU usage). + +This change is 100% compatible with the old method. No change is needed if +an existing volume is upgraded. + +You can control which extensions to use or disable them with the following +command: + +```bash +# gluster volume set disperse.cpu-extensions +``` + +Valid values are: + +* none: Completely disable dynamic code generation +* auto: Automatically detect available extensions and use the best one +* x64: Use dynamic code generation using standard 64 bits instructions +* sse: Use dynamic code generation using SSE extensions (128 bits) +* avx: Use dynamic code generation using AVX extensions (256 bits) + +The default value is 'auto'. If a value is specified that is not detected on +run-time, it will automatically fallback to the next available option. + +*Limitations:* + +*Known Issues:* +To solve a conflict between the dynamic code generator and SELinux, it +has been necessary to create a dynamic file on runtime in the directory +/usr/libexec/glusterfs. This directory only exists if the server package +is installed. On nodes with only the client package installed, this directory +won't exist and the dynamic code won't be used. + +It also needs root privileges to create the file there, so any gfapi +application not running as root won't be able to use dynamic code generation. + +In these cases, disperse volumes will continue working normally but using +the old implementation (equivalent to setting disperse.cpu-extensions to none). + +More information and a discussion on how to solve this can be found here: + +https://bugzilla.redhat.com/1421649 + ## Bugs addressed Bugs addressed since release-3.9 are listed below. -- cgit