From: Loic Dachary Date: Fri, 30 May 2014 12:33:15 +0000 (+0200) Subject: erasure-code: control jerasure plugin variant selection X-Git-Tag: v0.85~100^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=be3e1e4097b1afc7a44f538b907b636bcb359f46;p=ceph.git erasure-code: control jerasure plugin variant selection The jerasure-variant parameter is interpreted as the name of the plugin variant to be loaded regardless of the available CPU features. The values can be sse3, sse4, generic. It is undocumented and meant for benchmarking purposes, primarily to force the generic plugin to be loaded when the sse4 would be chosen. Signed-off-by: Loic Dachary --- diff --git a/src/erasure-code/jerasure/ErasureCodePluginSelectJerasure.cc b/src/erasure-code/jerasure/ErasureCodePluginSelectJerasure.cc index 3d3ed3a9839b..b734bbbb0d8d 100644 --- a/src/erasure-code/jerasure/ErasureCodePluginSelectJerasure.cc +++ b/src/erasure-code/jerasure/ErasureCodePluginSelectJerasure.cc @@ -39,6 +39,12 @@ public: string name = "jerasure"; if (parameters.count("jerasure-name")) name = parameters.find("jerasure-name")->second; + if (parameters.count("jerasure-variant")) { + dout(10) << "jerasure-variant " + << parameters.find("jerasure-variant")->second << dendl; + ret = instance.factory(name + "_" + parameters.find("jerasure-variant")->second, + parameters, erasure_code, ss); + } else { if (ceph_arch_intel_pclmul && ceph_arch_intel_sse42 && ceph_arch_intel_sse41 && @@ -56,6 +62,7 @@ public: dout(10) << "generic plugin" << dendl; ret = instance.factory(name + "_generic", parameters, erasure_code, ss); } + } if (ret) derr << ss.str() << dendl; return ret;