All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
To: Yerden Zhumabekov <e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v6 0/7] rte_hash_crc reworked to be platform-independent
Date: Sun, 1 Feb 2015 09:13:56 -0500	[thread overview]
Message-ID: <20150201141356.GA3141@localhost.localdomain> (raw)
In-Reply-To: <cover.1417092208.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>

On Thu, Jan 29, 2015 at 02:48:11PM +0600, Yerden Zhumabekov wrote:
> This is a rework of my previous patches improving performance of rte_hash_crc.
> 
> Summary of changes:
> * software implementation of CRC32 introduced;
> * in the runtime, algorithm can fall back to software version if CPU doesn't support SSE4.2;
> * best available algorithm is automatically detected upon application startup;
> * redundant compile checks removed from test utilities;
> * assembly code for emitting SSE4.2 instructions is used instead of built-in intrinsics;
> * rte_hash_crc() function performance significantly improved.
> 
> v6 changes:
> * added 'const' qualifier to crc32c lookup tables declaration.
> 
> v5 changes:
> * given up gcc's builtin SSE4.2 intrinsics;
> * add assembly code for emitting SSE4.2 instructions.
> 
> v4 changes:
> * icc-specific compile checks removed.
> 
> v3 changes:
> * setting default algorithm implementation as a constructor while application startup;
> * crc32 software implementation improved;
> * removed compile-time checks from test_hash_perf and test_hash.
> 
> v2 changes:
> * added CRC32 software implementation;
> * added rte_hash_crc_set_alg() function to control availability of SSE4.2;
> * added fallback to sw crc32 in case SSE4.2 is not available, or if SSE4.2 is intentionally disabled.
> 
> Initial version (v1) changes:
> * added rte_hash_crc_8byte() function to calculate CRC32 on 8-byte operand;
> * reworked rte_hash_crc() function which leverages both versions of CRC32 hash calculation functions with 4 and 8-byte operands.
> 
> 
> Yerden Zhumabekov (7):
>   hash: add software CRC32 implementation
>   hash: add assembly implementation of CRC32 intrinsics
>   hash: replace built-in functions implementing SSE4.2
>   hash: add rte_hash_crc_8byte function
>   hash: add fallback to software CRC32 implementation
>   hash: rte_hash_crc() slices data into 8-byte pieces
>   test: remove redundant compile checks
> 
>  app/test/test_hash.c           |    7 -
>  app/test/test_hash_perf.c      |   11 -
>  lib/librte_hash/rte_hash_crc.h |  459 +++++++++++++++++++++++++++++++++++++++-
>  3 files changed, 448 insertions(+), 29 deletions(-)
> 
> -- 
> 1.7.9.5
> 
> 
Just to be clear, this does build if you compile it against the "default"
machine type, correct?
Neil

  parent reply	other threads:[~2015-02-01 14:13 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-03  6:05 [PATCH 0/2] rewritten rte_hash_crc() call Yerden Zhumabekov
     [not found] ` <1409724351-23786-1-git-send-email-e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-09-03  6:05   ` [PATCH 1/2] hash: add new rte_hash_crc_8byte call Yerden Zhumabekov
2014-09-03  6:05   ` [PATCH 2/2] hash: rte_hash_crc uses 8- and 4-byte CRC32 intrinsics Yerden Zhumabekov
2014-11-13 17:33   ` [PATCH 0/2] rewritten rte_hash_crc() call Thomas Monjalon
2014-11-14  0:52     ` Neil Horman
     [not found]       ` <20141114005211.GC14230-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-11-14  7:15         ` Yerden Zhumabekov
     [not found]           ` <5465AC00.1070602-8EHiFRVJVgQ@public.gmane.org>
2014-11-14 11:33             ` Neil Horman
     [not found]               ` <20141114113327.GA19147-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-14 11:57                 ` Yerden Zhumabekov
     [not found]                   ` <5465EE3F.2010404-8EHiFRVJVgQ@public.gmane.org>
2014-11-14 13:53                     ` Neil Horman
     [not found]                       ` <20141114135308.GD19147-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-14 14:33                         ` Thomas Monjalon
2014-11-14 16:43                         ` Yerden Zhumabekov
     [not found]                           ` <5466313B.6040407-8EHiFRVJVgQ@public.gmane.org>
2014-11-14 18:41                             ` Neil Horman
     [not found]                               ` <20141114184157.GF19147-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-15 21:45                                 ` Yerden Zhumabekov
2014-11-16 17:59   ` [PATCH v2 0/4] rte_hash_crc reworked to be platform-independent Yerden Zhumabekov
     [not found]     ` <1416160760-16087-1-git-send-email-e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-17 11:31       ` Neil Horman
     [not found]         ` <20141117113110.GB17886-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-17 11:54           ` Yerden Zhumabekov
     [not found]             ` <5469E1ED.4040109-8EHiFRVJVgQ@public.gmane.org>
2014-11-25 17:05               ` Stephen Hemminger
2014-11-18  3:21       ` [PATCH v3 0/5] " Yerden Zhumabekov
     [not found]         ` <cover.1416280649.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-18  3:21           ` [PATCH v3 1/5] hash: add software CRC32 implementation Yerden Zhumabekov
     [not found]             ` <ea79d201b532a9f165396a9197b31d6d331738a6.1416280649.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-25 17:34               ` Stephen Hemminger
2014-11-18  3:21           ` [PATCH v3 2/5] hash: add new rte_hash_crc_8byte call Yerden Zhumabekov
2014-11-18  3:21           ` [PATCH v3 3/5] hash: add fallback to software CRC32 implementation Yerden Zhumabekov
     [not found]             ` <faece334ae2ae58553c0a19c5f8830993ae543f3.1416280649.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-18  4:56               ` Yerden Zhumabekov
     [not found]                 ` <546AD178.9070109-8EHiFRVJVgQ@public.gmane.org>
2014-11-18 13:33                   ` Neil Horman
     [not found]                     ` <20141118133307.GA32375-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-18 13:37                       ` Yerden Zhumabekov
2014-11-18 13:43                       ` Thomas Monjalon
2014-11-18  3:21           ` [PATCH v3 4/5] hash: rte_hash_crc() slices data into 8-byte pieces Yerden Zhumabekov
2014-11-18  3:25           ` [PATCH v3 5/5] test: remove redundant compile checks Yerden Zhumabekov
2014-11-16 17:59   ` [PATCH v2 1/4] hash: add software CRC32 implementation Yerden Zhumabekov
2014-11-16 17:59   ` [PATCH v2 2/4] hash: add new rte_hash_crc_8byte call Yerden Zhumabekov
2014-11-16 17:59   ` [PATCH v2 3/4] hash: add fallback to software CRC32 implementation Yerden Zhumabekov
     [not found]     ` <1416160760-16087-4-git-send-email-e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-17 12:34       ` Ananyev, Konstantin
     [not found]         ` <2601191342CEEE43887BDE71AB977258213AE40F-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-17 12:41           ` Yerden Zhumabekov
2014-11-17 14:06           ` Neil Horman
2014-11-16 17:59   ` [PATCH v2 4/4] hash: rte_hash_crc() slices data into 8-byte pieces Yerden Zhumabekov
2014-11-18 14:03   ` [PATCH v4 0/5] rte_hash_crc reworked to be platform-independent Yerden Zhumabekov
     [not found]     ` <cover.1416318389.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-18 14:03       ` [PATCH v4 1/5] hash: add software CRC32 implementation Yerden Zhumabekov
2014-11-18 14:03       ` [PATCH v4 2/5] hash: add new rte_hash_crc_8byte call Yerden Zhumabekov
2014-11-18 14:03       ` [PATCH v4 3/5] hash: add fallback to software CRC32 implementation Yerden Zhumabekov
     [not found]         ` <a875a94021448514bfbcf1409e4303cde50882f3.1416318389.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-18 14:41           ` Neil Horman
     [not found]             ` <20141118144138.GB32375-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-18 15:06               ` Yerden Zhumabekov
     [not found]                 ` <546B607B.9030808-8EHiFRVJVgQ@public.gmane.org>
2014-11-18 16:00                   ` Neil Horman
     [not found]                     ` <20141118160005.GC32375-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-18 16:04                       ` Bruce Richardson
2014-11-18 16:08                         ` Bruce Richardson
2014-11-18 16:38                         ` Neil Horman
2014-11-18 17:13                       ` Yerden Zhumabekov
     [not found]                         ` <546B7E2D.7050705-8EHiFRVJVgQ@public.gmane.org>
2014-11-18 17:29                           ` Wang, Shawn
     [not found]                             ` <12C2AAD9525203489F7B523D670129D91CCF3615-CFWIZfY9kHm7lkz2zA3lWedPMyk3kRfBmjCW/i4Lttk@public.gmane.org>
2014-11-19  4:07                               ` Yerden Zhumabekov
2014-11-18 17:46                           ` Neil Horman
     [not found]                             ` <20141118174619.GE32375-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-18 17:52                               ` Bruce Richardson
2014-11-18 21:36                                 ` Neil Horman
     [not found]                                   ` <20141118213624.GF32375-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-19  3:51                                     ` Yerden Zhumabekov
2014-11-19 10:16                                     ` Bruce Richardson
2014-11-19 11:34                                       ` Neil Horman
     [not found]                                         ` <20141119113408.GA10004-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-19 11:38                                           ` Bruce Richardson
2014-11-19 11:50                                             ` Ananyev, Konstantin
     [not found]                                               ` <2601191342CEEE43887BDE71AB977258213B6C4D-kPTMFJFq+rEu0RiL9chJVbfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-11-19 11:59                                                 ` Yerden Zhumabekov
2014-11-19 15:05                                                 ` Neil Horman
     [not found]                                                   ` <20141119150533.GA28013-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-11-19 16:51                                                     ` Ananyev, Konstantin
2014-11-19 11:35                                       ` Yerden Zhumabekov
     [not found]                                         ` <546C8097.6000509-8EHiFRVJVgQ@public.gmane.org>
2014-11-19 15:07                                           ` Neil Horman
     [not found]                                             ` <20141119150725.GB28013-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-11-20  3:04                                               ` Yerden Zhumabekov
2014-11-18 17:58                               ` Yerden Zhumabekov
2014-11-18 14:03       ` [PATCH v4 4/5] hash: rte_hash_crc() slices data into 8-byte pieces Yerden Zhumabekov
2014-11-18 14:05       ` [PATCH v4 5/5] test: remove redundant compile checks Yerden Zhumabekov
2014-11-20  5:15   ` [PATCH v5 0/7] rte_hash_crc reworked to be platform-independent Yerden Zhumabekov
     [not found]     ` <cover.1416459284.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-20  5:16       ` [PATCH v5 1/7] hash: add software CRC32 implementation Yerden Zhumabekov
2014-11-20  5:16       ` [PATCH v5 2/7] hash: add assembly implementation of CRC32 intrinsics Yerden Zhumabekov
2014-11-20  5:16       ` [PATCH v5 3/7] hash: replace built-in functions implementing SSE4.2 Yerden Zhumabekov
2014-11-20  5:16       ` [PATCH v5 4/7] hash: add rte_hash_crc_8byte function Yerden Zhumabekov
     [not found]         ` <5bc163e39a2e8176f7e0b424c70bb051d2f5a0a8.1416459284.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2014-11-21 11:22           ` Neil Horman
     [not found]             ` <20141121112242.GA20661-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-11-21 11:26               ` Yerden Zhumabekov
2014-11-20  5:17       ` [PATCH v5 6/7] hash: rte_hash_crc() slices data into 8-byte pieces Yerden Zhumabekov
2014-11-20  5:17       ` [PATCH v5 7/7] test: remove redundant compile checks Yerden Zhumabekov
2014-11-20  5:17       ` [PATCH v5 5/7] hash: add fallback to software CRC32 implementation Yerden Zhumabekov
2014-11-27 21:04       ` [PATCH v5 0/7] rte_hash_crc reworked to be platform-independent Thomas Monjalon
2014-11-28  3:28         ` Yerden Zhumabekov
2015-01-29  8:48   ` [PATCH v6 " Yerden Zhumabekov
     [not found]     ` <cover.1417092208.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2015-01-29  8:48       ` [PATCH v6 1/7] hash: add software CRC32 implementation Yerden Zhumabekov
2015-01-29  8:48       ` [PATCH v6 2/7] hash: add assembly implementation of CRC32 intrinsics Yerden Zhumabekov
     [not found]         ` <3fdc339aa3f0206ae2200937b9791af69e83409e.1417092208.git.e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
2015-02-02  5:15           ` Liang, Cunming
     [not found]             ` <54CF0805.8040103-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-02  5:34               ` Yerden Zhumabekov
     [not found]                 ` <54CF0C49.5000002-8EHiFRVJVgQ@public.gmane.org>
2015-02-02  5:59                   ` Liang, Cunming
2015-01-29  8:49       ` [PATCH v6 3/7] hash: replace built-in functions implementing SSE4.2 Yerden Zhumabekov
2015-01-29  8:49       ` [PATCH v6 4/7] hash: add rte_hash_crc_8byte function Yerden Zhumabekov
2015-01-29  8:50       ` [PATCH v6 5/7] hash: add fallback to software CRC32 implementation Yerden Zhumabekov
2015-01-29  8:50       ` [PATCH v6 6/7] hash: rte_hash_crc() slices data into 8-byte pieces Yerden Zhumabekov
2015-01-29  8:50       ` [PATCH v6 7/7] test: remove redundant compile checks Yerden Zhumabekov
2015-02-01 14:13       ` Neil Horman [this message]
     [not found]         ` <20150201141356.GA3141-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-02-02  3:07           ` [PATCH v6 0/7] rte_hash_crc reworked to be platform-independent Yerden Zhumabekov
     [not found]             ` <54CEEA01.3090600-8EHiFRVJVgQ@public.gmane.org>
2015-02-02  3:31               ` Neil Horman
     [not found]                 ` <20150202033122.GA18728-0o1r3XBGOEbbgkc5XkKeNuvMHUBZFtU3YPYVAmT7z5s@public.gmane.org>
2015-02-02  5:18                   ` HA: " Жумабеков Ерден Мирзагулович
2015-02-02  5:39                   ` Yerden Zhumabekov
     [not found]                     ` <54CF0D86.3090507-8EHiFRVJVgQ@public.gmane.org>
2015-02-19 15:21                       ` Bruce Richardson
2015-02-23 17:36                         ` Thomas Monjalon
2015-02-24  3:00                           ` Yerden Zhumabekov
     [not found]                             ` <54EBE934.8080707-8EHiFRVJVgQ@public.gmane.org>
2015-02-24  3:10                               ` Thomas Monjalon
2015-02-24  9:12                                 ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150201141356.GA3141@localhost.localdomain \
    --to=nhorman-2xusbdqka4r54taoqtywwq@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    --cc=e_zhumabekov-8EHiFRVJVgQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.