<div dir="ltr">We have tested the sheepdog with or without isa-l in our servers.<div><br></div><div>The CPU usage of sheepdog with zfec is 72~73%</div><div>The CPU usage of sheepdog with isa-l is 50~54%</div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-19 15:42 GMT+08:00 Hitoshi Mitake <span dir="ltr"><<a href="mailto:mitake.hitoshi@lab.ntt.co.jp" target="_blank">mitake.hitoshi@lab.ntt.co.jp</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At Fri, 19 Sep 2014 14:01:13 +0800,<br>
<div><div class="h5">Robin Dong wrote:<br>
><br>
> From: Robin Dong <<a href="mailto:sanbai@taobao.com">sanbai@taobao.com</a>><br>
><br>
> isa-l is Intel Storage Acceleration Library which could accelerate<br>
> computing of erasure-code on intel CPU. We migrate the whole code<br>
> of isa-l v2.8<br>
> (<a href="https://01.org/sites/default/files/downloads/storage-acceleration-library/isa-l_open_src_2.8.tar.gz" target="_blank">https://01.org/sites/default/files/downloads/storage-acceleration-library/isa-l_open_src_2.8.tar.gz</a>)<br>
> into sheepdog for following optimization of erasure-code.<br>
><br>
> Signed-off-by: Robin Dong <<a href="mailto:sanbai@taobao.com">sanbai@taobao.com</a>><br>
> ---<br>
>  lib/isa-l/About_bsd.txt                            |   26 +<br>
>  lib/isa-l/Makefile                                 |   42 +<br>
>  lib/isa-l/Makefile.nmake                           |   78 +<br>
>  lib/isa-l/Release_notes_opensrc.txt                |   35 +<br>
>  lib/isa-l/erasure_code/Makefile                    |   72 +<br>
>  lib/isa-l/erasure_code/ec_base.c                   |  308 ++<br>
>  lib/isa-l/erasure_code/ec_base.h                   | 4190 ++++++++++++++++++++<br>
>  lib/isa-l/erasure_code/ec_highlevel_func.c         |   90 +<br>
>  lib/isa-l/erasure_code/ec_multibinary.asm          |  214 +<br>
>  lib/isa-l/erasure_code/erasure_code_base_perf.c    |  245 ++<br>
>  lib/isa-l/erasure_code/erasure_code_base_test.c    |  614 +++<br>
>  lib/isa-l/erasure_code/erasure_code_perf.c         |  245 ++<br>
>  lib/isa-l/erasure_code/erasure_code_sse_perf.c     |  246 ++<br>
>  lib/isa-l/erasure_code/erasure_code_sse_test.c     |  612 +++<br>
>  lib/isa-l/erasure_code/erasure_code_test.c         |  616 +++<br>
>  lib/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm   |  234 ++<br>
>  .../erasure_code/gf_2vect_dot_prod_sse_perf.c      |  231 ++<br>
>  .../erasure_code/gf_2vect_dot_prod_sse_test.c      |  496 +++<br>
>  lib/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm   |  257 ++<br>
>  .../erasure_code/gf_3vect_dot_prod_sse_perf.c      |  260 ++<br>
>  .../erasure_code/gf_3vect_dot_prod_sse_test.c      |  593 +++<br>
>  lib/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm   |  294 ++<br>
>  .../erasure_code/gf_4vect_dot_prod_sse_perf.c      |  295 ++<br>
>  .../erasure_code/gf_4vect_dot_prod_sse_test.c      |  694 ++++<br>
>  lib/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm   |  310 ++<br>
>  .../erasure_code/gf_5vect_dot_prod_sse_perf.c      |  330 ++<br>
>  .../erasure_code/gf_5vect_dot_prod_sse_test.c      |  801 ++++<br>
>  lib/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm   |  321 ++<br>
>  .../erasure_code/gf_6vect_dot_prod_sse_perf.c      |  362 ++<br>
>  .../erasure_code/gf_6vect_dot_prod_sse_test.c      |  898 +++++<br>
>  lib/isa-l/erasure_code/gf_inverse_test.c           |  227 ++<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_1tbl.c     |  179 +<br>
>  .../erasure_code/gf_vect_dot_prod_base_test.c      |  557 +++<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_perf.c     |  203 +<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_sse.asm    |  193 +<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_sse_perf.c |  203 +<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_sse_test.c |  557 +++<br>
>  lib/isa-l/erasure_code/gf_vect_dot_prod_test.c     |  557 +++<br>
>  lib/isa-l/erasure_code/gf_vect_mul_avx.asm         |  170 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_avx_perf.c      |  123 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_avx_test.c      |  167 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_base_test.c     |  155 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_perf.c          |  124 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_sse.asm         |  176 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_sse_perf.c      |  119 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_sse_test.c      |  185 +<br>
>  lib/isa-l/erasure_code/gf_vect_mul_test.c          |  168 +<br>
>  lib/isa-l/include/erasure_code.h                   |  379 ++<br>
>  lib/isa-l/include/gf_vect_mul.h                    |  148 +<br>
>  lib/isa-l/include/reg_sizes.asm                    |   94 +<br>
>  lib/isa-l/include/test.h                           |   81 +<br>
>  lib/isa-l/include/types.h                          |   78 +<br>
>  lib/isa-l/make.inc                                 |  207 +<br>
>  53 files changed, 19059 insertions(+)<br>
>  create mode 100644 lib/isa-l/About_bsd.txt<br>
>  create mode 100644 lib/isa-l/Makefile<br>
>  create mode 100644 lib/isa-l/Makefile.nmake<br>
>  create mode 100644 lib/isa-l/Release_notes_opensrc.txt<br>
>  create mode 100644 lib/isa-l/erasure_code/Makefile<br>
>  create mode 100644 lib/isa-l/erasure_code/ec_base.c<br>
>  create mode 100644 lib/isa-l/erasure_code/ec_base.h<br>
>  create mode 100644 lib/isa-l/erasure_code/ec_highlevel_func.c<br>
>  create mode 100644 lib/isa-l/erasure_code/ec_multibinary.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_base_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_base_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/erasure_code_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_inverse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_1tbl.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_base_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_base_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse.asm<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse_perf.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse_test.c<br>
>  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_test.c<br>
>  create mode 100644 lib/isa-l/include/erasure_code.h<br>
>  create mode 100644 lib/isa-l/include/gf_vect_mul.h<br>
>  create mode 100644 lib/isa-l/include/reg_sizes.asm<br>
>  create mode 100644 lib/isa-l/include/test.h<br>
>  create mode 100644 lib/isa-l/include/types.h<br>
>  create mode 100644 lib/isa-l/make.inc<br>
<br>
</div></div>The patchset seems so large, but it has good modularity. I'd like to<br>
apply it soon.<br>
<br>
But before applying, can I see benchmark results which can show<br>
improvement by this patchset?<br>
<br>
Thanks,<br>
Hitoshi<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>--<br>Best Regard<br>Robin Dong
</div>