Re: [PATCH] lfsr: a simple binary Galois linear feedback shift register

From: Waiman Long
Date: Tue Mar 31 2015 - 18:24:02 EST


On 03/31/2015 05:58 PM, Shuah Khan wrote:
On 03/31/2015 03:53 PM, Waiman Long wrote:
On 03/31/2015 03:21 PM, Shuah Khan wrote:
On 03/31/2015 11:28 AM, Waiman Long wrote:
This patch is based on the code sent out by Peter Zijstra as part
of his queue spinlock patch to provide a hashing function with open
addressing. The lfsr() function can be used to return a sequence of
numbers that cycle through all the bit patterns (2^n -1) of a given
bit width n except the value 0 in a somewhat random fashion depending
on the LFSR tap that is being used.
Does this new test intended to test a new kernel feature? If so could
you please include what it tests in the commit log. It isn't very clear
to me what this test does?

This test is for checking the correctness of the lfsr.h header file. I
will clarify that in the commit log.

This code should be a standalone patch and not part of a larger
patch series. I have also modified and extended it and added some
testing code to verify the correctness of the taps that are being used.
The above can be left out of the commit log.

Sure.

Signed-off-by: Waiman Long<Waiman.Long@xxxxxx>
---
include/linux/lfsr.h | 84
++++++++++++++++++++++++++++++
tools/testing/selftests/lfsr/Makefile | 11 ++++
tools/testing/selftests/lfsr/test-lfsr.c | 70
+++++++++++++++++++++++++
3 files changed, 165 insertions(+), 0 deletions(-)
create mode 100644 include/linux/lfsr.h
create mode 100644 tools/testing/selftests/lfsr/Makefile
create mode 100644 tools/testing/selftests/lfsr/test-lfsr.c
I don't see the test added to selftests/Makefile? Is it the intent
to leave it out of default test run and install? If this test
is intended to be part of selftests run and install, please add
it to selftests Makefile and also add install target support.
You can find good examples in linux-kselftest next branch.
Please add a .gitignore for git to ignore the binaries built.

thanks,
-- Shuah


Yes, it is intended to be left out of the default selftest run and
install because the lfsr.h header is for kernel internal use and is not
accessible from any of the kernel syscall APIs.

Please add this to the commit log as well that it shouldn't be included
in the default run and install. Also BUG_ON and BUILD_BUG_ON are used
in this test. These are kernel defines, hope these are included somehow.

-- Shuah


I will update the patch once I receive feedbacks from others. The lfsr.h header does use BUG_ON and BUILD_BUG_ON, but they are disabled in the self-test.

-Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/