Skip to content

Idea: Linux Kernel tests on RCU #903

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
zemanlx opened this issue May 10, 2017 · 5 comments
Closed

Idea: Linux Kernel tests on RCU #903

zemanlx opened this issue May 10, 2017 · 5 comments

Comments

@zemanlx
Copy link

zemanlx commented May 10, 2017

Linux Kernel tests on RCU

Requested by Daniel Kroening.

Including these tests to CBMC testing to test cbmc and/or linux-rcu.
To be able to to test linux-rcu somebody need to maintain awk script (strip
all things that cbmc is not able to process) in the kernel source so for now
it is feasible to use these tests as another regression tests for cbmc.

Preparation for running tests

git clone git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git

git checkout srcu.2017.01.14a

cd tools/testing/selftests/rcutorture/formal/srcu-cbmc

cbmc binary have to be in PATH or defined in tests/test_script.sh as

CBMC_BIN=/home/zeman/git/cbmc/src/cbmc/cbmc

Test run and expected results

make

awk genarate include/linux/srcu.h and srcu.c.

If we do not need to create those files (we are not following changes in kernel)
we do not need whole kernel just files from current folder
linux-rcu/tools/testing/selftests/rcutorture/formal/srcu-cbmc

Tests are in tests/store_buffering/

  • those that have *.pass in file name should have
    VERIFICATION SUCCESSFUL in the last line of *.pass.out file.
  • those that have *.fail in file name should have
    VERIFICATION FAILED in the last line of *.fail.out file.
@tautschnig
Copy link
Collaborator

While Paul was right in dragging together that awk script, really "strip all things that cbmc is not able to process" should not exist, because the C front end should be able to process all such code.

@tautschnig
Copy link
Collaborator

Also note licensing issues, for linux-rcu/the kernel are GPL, which is needs extra care over CBMC's BSD-style licensing.

@TGWDB
Copy link
Contributor

TGWDB commented May 20, 2021

Closing this as old and not touched for a long time. If there is desire to reopen and do something here, see #5916 for some inspiration.

@TGWDB TGWDB closed this as completed May 20, 2021
@martin-cs
Copy link
Collaborator

Paul McKenney @paulmckrcu does this:

http://www.rdrop.com/users/paulmck/RCU/Validation.2017.01.16a.LCA.pdf

I guess the question is whether there is a gain in having this CI'd in CBMC?

@paulmckrcu
Copy link

paulmckrcu commented May 20, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
@paulmckrcu @tautschnig @martin-cs @zemanlx @TGWDB and others