lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 9 May 2019 19:42:09 -0600
From:   Shuah Khan <skhan@...uxfoundation.org>
To:     Alexei Starovoitov <alexei.starovoitov@...il.com>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        shuah <shuah@...nel.org>, linux-kernel@...r.kernel.org,
        netdev@...r.kernel.org, bpf@...r.kernel.org, daniel@...earbox.net,
        davem@...emloft.net, Shuah Khan <skhan@...uxfoundation.org>
Subject: Re: [GIT PULL] Kselftest update for Linux 5.2-rc1

On 5/9/19 4:40 PM, Shuah Khan wrote:
> On 5/9/19 4:20 PM, Alexei Starovoitov wrote:
>> On Mon, May 06, 2019 at 10:56:56AM -0600, Shuah Khan wrote:
>>> Hi Linus,
>>>
>>> Please pull the following Kselftest update for Linux 5.2-rc1
>>>
>>> This Kselftest update for Linux 5.2-rc1 consists of
>>>
>>> - fixes to seccomp test, and kselftest framework
>>> - cleanups to remove duplicate header defines
>>> - fixes to efivarfs "make clean" target
>>> - cgroup cleanup path
>>> - Moving the IMA kexec_load selftest to selftests/kexec work from
>>>    Mimi Johar and Petr Vorel
>>> - A framework to kselftest for writing kernel test modules addition
>>>    from Tobin C. Harding
>>>
>>> diff is attached.
>>>
>>> thanks,
>>> -- Shuah
>>>
>>>
>>> ----------------------------------------------------------------
>>> The following changes since commit 
>>> 15ade5d2e7775667cf191cf2f94327a4889f8b9d:
>>>
>>>    Linux 5.1-rc4 (2019-04-07 14:09:59 -1000)
>>>
>>> are available in the Git repository at:
>>>
>>>    git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
>>> tags/linux-kselftest-5.2-rc1
>>>
>>> for you to fetch changes up to d917fb876f6eaeeea8a2b620d2a266ce26372f4d:
>>>
>>>    selftests: build and run gpio when output directory is the src dir
>>> (2019-04-22 17:02:26 -0600)
>>>
>>> ----------------------------------------------------------------
>>> linux-kselftest-5.2-rc1
>>>
>>> This Kselftest update for Linux 5.2-rc1 consists of
>>>
>>> - fixes to seccomp test, and kselftest framework
>>> - cleanups to remove duplicate header defines
>>> - fixes to efivarfs "make clean" target
>>> - cgroup cleanup path
>>> - Moving the IMA kexec_load selftest to selftests/kexec work from
>>>    Mimi Johar and Petr Vorel
>>> - A framework to kselftest for writing kernel test modules addition
>>>    from Tobin C. Harding
>>>
>>> ----------------------------------------------------------------
>>> Kees Cook (3):
>>>        selftests/seccomp: Handle namespace failures gracefully
>>>        selftests/harness: Add 30 second timeout per test
>>>        selftests/ipc: Fix msgque compiler warnings
>>>
>>> Mathieu Desnoyers (1):
>>>        rseq/selftests: Adapt number of threads to the number of 
>>> detected cpus
>>>
>>> Mimi Zohar (9):
>>>        selftests/kexec: move the IMA kexec_load selftest to 
>>> selftests/kexec
>>>        selftests/kexec: cleanup the kexec selftest
>>>        selftests/kexec: define a set of common functions
>>>        selftests/kexec: define common logging functions
>>>        selftests/kexec: define "require_root_privileges"
>>>        selftests/kexec: kexec_file_load syscall test
>>>        selftests/kexec: check kexec_load and kexec_file_load are enabled
>>>        selftests/kexec: make kexec_load test independent of IMA being 
>>> enabled
>>>        selftests/kexec: update get_secureboot_mode
>>>
>>> Petr Vorel (1):
>>>        selftests/kexec: Add missing '=y' to config options
>>>
>>> Po-Hsu Lin (1):
>>>        selftests/efivarfs: clean up test files from test_create*()
>>>
>>> Roman Gushchin (1):
>>>        selftests: cgroup: fix cleanup path in 
>>> test_memcg_subtree_control()
>>>
>>> Sabyasachi Gupta (4):
>>>        selftest/x86/mpx-dig.c: Remove duplicate header
>>>        selftest/timers: Remove duplicate header
>>>        selftest/rseq: Remove duplicate header
>>>        selftest/gpio: Remove duplicate header
>>>
>>> Shuah Khan (2):
>>>        selftests: fix headers_install circular dependency
>>
>> Shuah,
>>
>> the commit 8ce72dc32578 ("selftests: fix headers_install circular 
>> dependency")
>> broke our build/test workflow, since it added:
>>    ifneq ($(KBUILD_OUTPUT),)
>>            OUTPUT := $(KBUILD_OUTPUT)
>>    else
>>
>> which means that all of selftests/bpf artifacts are now going into
>> main build directory cluttering it with all sorts of .o, generated files
>> and executables.
>> The end result is humans and scripts can no longer find tests.

bpf build fails with the above commit. However, even without it, I am
seeing bpf objects going to tools/testing/selftests/bpf

I reverted the commit and ran your use-case:

export KBUILD_OUTPUT=/tmp/kselftest_bpf
cd tools/testing/selftests/bpf/
make
./test_verifier

I see bpf objects in tools/testing/selftests/bpf/ and I can run the
test.

What am I missing? The only way ./test_verifier would work is if
test_verifier is in tools/testing/selftests/bpf/

I am curious what you are actually seeing with this commit?

With the 8ce72dc32578

What I see is - if KBUILD_OUTPUT directory is missing, then the make
just fails and the following diff fixes that problem:

diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
index 098dd0065fb1..074ce7d26a9d 100644
--- a/tools/testing/selftests/lib.mk
+++ b/tools/testing/selftests/lib.mk
@@ -13,6 +13,7 @@ ifeq (0,$(MAKELEVEL))
                 DEFAULT_INSTALL_HDR_PATH := 1
         endif
      endif
+$(shell mkdir -p $(OUTPUT))
  endif
  selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))


Now when I run

cd tools/testing/selftests/bpf/
make
./test_verifier

bpf objects end up in /tmp/kselftest_bpf

which is what should happen when KBUILD_OUPUT is set.

But now ./test_verifier won't work, because it isn't in the
cd tools/testing/selftests/bpf/

Could it be that with  commit 8ce72dc32578, bpf objects are ending
up in the KBUILD_OUPUT dir and ./test_verifier won't work because
your workflow is looking for it in tools/testing/selftests/bpf/?

If this is the case, then the workfolow will be to run the
test_verifier from KBUILD_OUPUT dir.

I am trying understand the problem so I can fix it. I know I need
the above diff.


thanks,
-- Shuah


Powered by blists - more mailing lists