[sheepdog] [PATCH v1 1/3] sheep: migrate isa-l into sheepdog

Hitoshi Mitake mitake.hitoshi at lab.ntt.co.jp
Fri Sep 19 10:01:30 CEST 2014


At Fri, 19 Sep 2014 15:53:13 +0800,
Robin Dong wrote:
> 
> [1  <multipart/alternative (7bit)>]
> [1.1  <text/plain; UTF-8 (7bit)>]
> We have tested the sheepdog with or without isa-l in our servers.
> 
> The CPU usage of sheepdog with zfec is 72~73%
> The CPU usage of sheepdog with isa-l is 50~54%

Nice! Applied, thanks.
Hitoshi

> 
> 2014-09-19 15:42 GMT+08:00 Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>:
> 
> > At Fri, 19 Sep 2014 14:01:13 +0800,
> > Robin Dong wrote:
> > >
> > > From: Robin Dong <sanbai at taobao.com>
> > >
> > > isa-l is Intel Storage Acceleration Library which could accelerate
> > > computing of erasure-code on intel CPU. We migrate the whole code
> > > of isa-l v2.8
> > > (
> > https://01.org/sites/default/files/downloads/storage-acceleration-library/isa-l_open_src_2.8.tar.gz
> > )
> > > into sheepdog for following optimization of erasure-code.
> > >
> > > Signed-off-by: Robin Dong <sanbai at taobao.com>
> > > ---
> > >  lib/isa-l/About_bsd.txt                            |   26 +
> > >  lib/isa-l/Makefile                                 |   42 +
> > >  lib/isa-l/Makefile.nmake                           |   78 +
> > >  lib/isa-l/Release_notes_opensrc.txt                |   35 +
> > >  lib/isa-l/erasure_code/Makefile                    |   72 +
> > >  lib/isa-l/erasure_code/ec_base.c                   |  308 ++
> > >  lib/isa-l/erasure_code/ec_base.h                   | 4190
> > ++++++++++++++++++++
> > >  lib/isa-l/erasure_code/ec_highlevel_func.c         |   90 +
> > >  lib/isa-l/erasure_code/ec_multibinary.asm          |  214 +
> > >  lib/isa-l/erasure_code/erasure_code_base_perf.c    |  245 ++
> > >  lib/isa-l/erasure_code/erasure_code_base_test.c    |  614 +++
> > >  lib/isa-l/erasure_code/erasure_code_perf.c         |  245 ++
> > >  lib/isa-l/erasure_code/erasure_code_sse_perf.c     |  246 ++
> > >  lib/isa-l/erasure_code/erasure_code_sse_test.c     |  612 +++
> > >  lib/isa-l/erasure_code/erasure_code_test.c         |  616 +++
> > >  lib/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm   |  234 ++
> > >  .../erasure_code/gf_2vect_dot_prod_sse_perf.c      |  231 ++
> > >  .../erasure_code/gf_2vect_dot_prod_sse_test.c      |  496 +++
> > >  lib/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm   |  257 ++
> > >  .../erasure_code/gf_3vect_dot_prod_sse_perf.c      |  260 ++
> > >  .../erasure_code/gf_3vect_dot_prod_sse_test.c      |  593 +++
> > >  lib/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm   |  294 ++
> > >  .../erasure_code/gf_4vect_dot_prod_sse_perf.c      |  295 ++
> > >  .../erasure_code/gf_4vect_dot_prod_sse_test.c      |  694 ++++
> > >  lib/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm   |  310 ++
> > >  .../erasure_code/gf_5vect_dot_prod_sse_perf.c      |  330 ++
> > >  .../erasure_code/gf_5vect_dot_prod_sse_test.c      |  801 ++++
> > >  lib/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm   |  321 ++
> > >  .../erasure_code/gf_6vect_dot_prod_sse_perf.c      |  362 ++
> > >  .../erasure_code/gf_6vect_dot_prod_sse_test.c      |  898 +++++
> > >  lib/isa-l/erasure_code/gf_inverse_test.c           |  227 ++
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_1tbl.c     |  179 +
> > >  .../erasure_code/gf_vect_dot_prod_base_test.c      |  557 +++
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_perf.c     |  203 +
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_sse.asm    |  193 +
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_sse_perf.c |  203 +
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_sse_test.c |  557 +++
> > >  lib/isa-l/erasure_code/gf_vect_dot_prod_test.c     |  557 +++
> > >  lib/isa-l/erasure_code/gf_vect_mul_avx.asm         |  170 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_avx_perf.c      |  123 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_avx_test.c      |  167 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_base_test.c     |  155 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_perf.c          |  124 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_sse.asm         |  176 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_sse_perf.c      |  119 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_sse_test.c      |  185 +
> > >  lib/isa-l/erasure_code/gf_vect_mul_test.c          |  168 +
> > >  lib/isa-l/include/erasure_code.h                   |  379 ++
> > >  lib/isa-l/include/gf_vect_mul.h                    |  148 +
> > >  lib/isa-l/include/reg_sizes.asm                    |   94 +
> > >  lib/isa-l/include/test.h                           |   81 +
> > >  lib/isa-l/include/types.h                          |   78 +
> > >  lib/isa-l/make.inc                                 |  207 +
> > >  53 files changed, 19059 insertions(+)
> > >  create mode 100644 lib/isa-l/About_bsd.txt
> > >  create mode 100644 lib/isa-l/Makefile
> > >  create mode 100644 lib/isa-l/Makefile.nmake
> > >  create mode 100644 lib/isa-l/Release_notes_opensrc.txt
> > >  create mode 100644 lib/isa-l/erasure_code/Makefile
> > >  create mode 100644 lib/isa-l/erasure_code/ec_base.c
> > >  create mode 100644 lib/isa-l/erasure_code/ec_base.h
> > >  create mode 100644 lib/isa-l/erasure_code/ec_highlevel_func.c
> > >  create mode 100644 lib/isa-l/erasure_code/ec_multibinary.asm
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_base_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_base_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/erasure_code_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_2vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_3vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_4vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_5vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_6vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_inverse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_1tbl.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_base_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_dot_prod_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_avx_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_base_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse.asm
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse_perf.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_sse_test.c
> > >  create mode 100644 lib/isa-l/erasure_code/gf_vect_mul_test.c
> > >  create mode 100644 lib/isa-l/include/erasure_code.h
> > >  create mode 100644 lib/isa-l/include/gf_vect_mul.h
> > >  create mode 100644 lib/isa-l/include/reg_sizes.asm
> > >  create mode 100644 lib/isa-l/include/test.h
> > >  create mode 100644 lib/isa-l/include/types.h
> > >  create mode 100644 lib/isa-l/make.inc
> >
> > The patchset seems so large, but it has good modularity. I'd like to
> > apply it soon.
> >
> > But before applying, can I see benchmark results which can show
> > improvement by this patchset?
> >
> > Thanks,
> > Hitoshi
> >
> 
> 
> 
> -- 
> --
> Best Regard
> Robin Dong
> [1.2  <text/html; UTF-8 (quoted-printable)>]
> 
> [2  <text/plain; us-ascii (7bit)>]
> -- 
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog



More information about the sheepdog mailing list