From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) by sourceware.org (Postfix) with ESMTPS id BB3AE3851C26 for ; Tue, 2 Jun 2020 13:01:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BB3AE3851C26 Received: by mail-qt1-x82e.google.com with SMTP id i16so3844566qtr.7 for ; Tue, 02 Jun 2020 06:01:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=FjaZYgQO5cSTuH8j1ntdsoNEyS5v0R7yx+gp819XycU=; b=qpjaB6XFZcnf5wCq8wqo07b7WYCv9iif1mqh1VVizsTVV/zadFpgw7Hg4Z+Ia5FQ6D 3z3rD8SQwe0B0XgZlx1Gdp27EgRxGjUyDZW/Jp9VA8vbewBpbRPdc0Brgsu/FnuN262W Tcw38EWauYzyl4rOLAH9V94Naj2KO0BIYPuXC4rf5bYRBYBRMXySdh79Kx/6X6oI31DH H7wUsOwTVVaowmh/o9pKjQdXiPEYeXkMoRF2ALJkAQ9JzWxHnXnSiidsfb6jqH5IaBLV ExBoIr4+Kp8+GDsI4fYEecueEvzkRqxCNXU4Gysb+AkZ8auAyFw5t2elv/z99a3DDfOS zTXQ== X-Gm-Message-State: AOAM531/WLt3Mq3NuXQXN2FjRgoikAHXSrVMLFxR0x/5D2VyDP81IEkh v2pKT+GmtpzNyJ+iqf55lTXNNJdzu+M= X-Google-Smtp-Source: ABdhPJx3i+xbi9+vE1trQlI7N8t+yU3/HCWUER5QIwKefC1VMMhCI6qJl28gXAKdTqpu7gyHteaJ2A== X-Received: by 2002:ac8:7052:: with SMTP id y18mr10212555qtm.165.1591102890861; Tue, 02 Jun 2020 06:01:30 -0700 (PDT) Received: from [192.168.0.185] ([179.183.10.105]) by smtp.gmail.com with ESMTPSA id h125sm2254240qkd.93.2020.06.02.06.01.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 02 Jun 2020 06:01:29 -0700 (PDT) Subject: Re: GDB's OpenCL Tests To: Andrew Burgess , gdb@sourceware.org References: <20200602110615.GJ2242921@embecosm.com> Cc: uweigand@de.ibm.com From: Luis Machado Message-ID: Date: Tue, 2 Jun 2020 10:01:25 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200602110615.GJ2242921@embecosm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2020 13:01:34 -0000 Since Ulrich Weigand (cc-ed) introduced this testcase, maybe he has some input on how it is supposed to work, or how the whole infrastructure is supposed to be configured. I don't run those myself. We should probably fix this and make them easy to run, with clear instructions on what is needed to get them going. On 6/2/20 8:06 AM, Andrew Burgess wrote: > I wonder if anyone is regularly running the OpenCL tests for GDB? > > I'm running Fedora 31. Initially None of the OpenCL tests would run > due to the libOpenCL library being missing, so I installed the > packages `ocl-icd', `ocl-icd-devel', and `opencl-headers'. After this > I did have libOpenCL.so, but things were still not working. > > I was mostly looking at the gdb.opencl/callfuncs.exp test, just > because it was the first test file, but I don't believe it is anything > special, in fact, the failures I was seeing came from the file > gdb/testsuite/lib/opencl.exp function skip_opencl_tests, when we're > just checking if opencl is supported or not. > > The compile was failing with this message: > > /usr/include/CL/cl_version.h:34:9: note: #pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2) > 34 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") > | ^~~~~~~ > > This is actually just a warning, but this is still enough to cause > GDB's testsuite to abandon the build. > > A quick google, and "random internet stranger" recommended adding > something like: > > #define CL_TARGET_OPENCL_VERSION 120 > > to the offending source files, so I added this to: > > gdb/testsuite/lib/cl_util.c > gdb/testsuite/lib/opencl_hostapp.c > > I'm aware that at this point I'm just making random changes, so it's > not really surprising that nothing after this works, but lets push > on... > > .... success, things now compile, but, almost all the tests are still > failing. > > What I see is this pattern in basically every test: > > (gdb) tbreak testkernel > Function "testkernel" not defined. > Make breakpoint pending on future shared library load? (y or [n]) y > Temporary breakpoint 1 (testkernel) pending. > (gdb) PASS: gdb.opencl/datatypes.exp: Set pending breakpoint > run > .... > [Inferior 1 (process 2840279) exited normally] > (gdb) FAIL: gdb.opencl/datatypes.exp: run (the program exited) > > The 'testkernel' seems to be the core entry point function within the > actual opencl program, so we never hit that symbol. > > It was at this point that I started to grow suspicious that nobody is > running these tests much (or at all?), the gdb.opencl/callfuncs.exp > test contains this gem: > > gdb_load ${objdir}/${subdir}/${testfile} > > Which doesn't take account of the /output/ directory that was added > into the directory structure ages ago. I applied patch #1 (below) to > fix this. > > Still not hitting the testkernel symbol... > > So now I ran the test manually under GDB, break at 'exit' and then > 'rbreak testkernel', this sets 3 breakpoints for me. Start the test > up again with 'run', and I hit one of the breakpoints, here's what I > see: > > Thread 25 "callfuncs" hit Breakpoint 3, 0x00007ffff7fc9354 in _pocl_kernel_testkernel_workgroup () > from /home/andrew/.cache/pocl/kcache/BA/OLMGEJJKCCPFCOMNNHDOJKFDNOKMKEPPCEIPJ/testkernel/16-1-1-goffs0-smallgrid/testkernel.so > (gdb) bt > #0 0x00007ffff7fc9354 in _pocl_kernel_testkernel_workgroup () > from /home/andrew/.cache/pocl/kcache/BA/OLMGEJJKCCPFCOMNNHDOJKFDNOKMKEPPCEIPJ/testkernel/16-1-1-goffs0-smallgrid/testkernel.so > #1 0x00007ffff070fe6d in pocl_pthread_driver_thread () from /lib64/libpocl.so.2.5.0 > #2 0x00007ffff1d324e2 in start_thread () from /lib64/libpthread.so.0 > #3 0x00007ffff7d7a6a3 in clone () from /lib64/libc.so.6 > > I then use 'objdump -W' to look at the debug information in > testkernel.so, and it has no extra debug at all. > > So, my questions: > > - Can anyone successfully run some or all of the OpenCL tests? > > - And can anyone give me any hints on what I might need to do to get > the tests running? > > Thanks, > Andrew > > --- > > ## START - Patch 1 ## > > diff --git a/gdb/testsuite/gdb.opencl/callfuncs.exp b/gdb/testsuite/gdb.opencl/callfuncs.exp > index cf418d16582..1452c403c90 100644 > --- a/gdb/testsuite/gdb.opencl/callfuncs.exp > +++ b/gdb/testsuite/gdb.opencl/callfuncs.exp > @@ -33,12 +33,7 @@ if { [gdb_compile_opencl_hostapp "${clprogram}" "${testfile}" "" ] != "" } { > return -1 > } > > -gdb_exit > -gdb_start > - > -# Load the OpenCL app > -gdb_reinitialize_dir $srcdir/$subdir > -gdb_load ${objdir}/${subdir}/${testfile} > +clean_restart ${testfile} > > # Set breakpoint at the OpenCL kernel > gdb_test "tbreak testkernel" \ > > ## END - Patch 1 ## >