From: Yerden Zhumabekov <e_zhumabekov-8EHiFRVJVgQ@public.gmane.org>
To: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH 0/2] rewritten rte_hash_crc() call
Date: Fri, 14 Nov 2014 22:43:39 +0600 [thread overview]
Message-ID: <5466313B.6040407@sts.kz> (raw)
In-Reply-To: <20141114135308.GD19147-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
14.11.2014 19:53, Neil Horman пишет:
> On Fri, Nov 14, 2014 at 05:57:51PM +0600, Yerden Zhumabekov wrote:
>> 14.11.2014 17:33, Neil Horman пишет:
>>> Not really. That covers the case of applications selecting the hash function
>>> using the DEFUALT_HASH_FUNC macro, but doesn't nothing for applications using
>>> the function directly. Test_hash_perf is an example of this, and ostensibly
>>> because of the behavior without SSE4.2 it defines these huge test tables twice
>>> based on the availability of SSE4.2. It would be better if we could allow
>>> applications to use rte_hash_crc regardless, and make the code it uses at run
>>> time configurable.
>> I see, then we have a problem here :)
>>
>> Actually, that was one of my concerns when developing these patches. I
>> looked through the source code of libs and examples and I saw the
>> '#ifdef..#include..#endif'-like appoach while selecting hash function
>> was common. So I organized patches to minimize the impact on API and not
>> to contradict this approach.
>>
> Thats a reasonable approach, but I really hate the idea of continuing this need
> to select cpu features at compile time if its not nececcesary.
>
>> If we prefer to change this approach then, I guess, we need to introduce
>> broader changes to rte_hash library and change other code which uses it.
>> If that's what's needed, then it'll take some time for me to rework
>> these patches.
>>
> Well, its possible you'll get lucky. crc is such a common operation, its
> entirely possible that the gcc intrinsic emits software based crc computation if
> the SSE4.2 instructions aren't enabled. I recommend modifying the test_hash_crc
> function to use rte_hash_crc with SSE4.2 disabled, and see if you get a crash.
> If you don't examine the disassembly of your new function and confirm that
> something reasonable that doesn't use SSE4.2 is emitted. If thats the case,
> your patch is fine, and we can focus on how to change the ifdefs in the existing
> code, as use of the rte_hash_crc functions should be safe.
>
Unfortunately, it seems not to be the case. Trying to force compiling a
test program with _mm_crc32_u32 intrinsic on computer with no SSE4.2
support leads to "Illegal instruction error". So it looks like GCC does
not fall back to crc32 software implementation.
--
Sincerely,
Yerden Zhumabekov
State Technical Service
Astana, KZ
next prev parent reply other threads:[~2014-11-14 16:43 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 [this message]
[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 ` [PATCH v6 0/7] rte_hash_crc reworked to be platform-independent Neil Horman
[not found] ` <20150201141356.GA3141-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-02-02 3:07 ` 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=5466313B.6040407@sts.kz \
--to=e_zhumabekov-8ehifrvjvgq@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@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.