On 02/03/2016 16:22, Hongbo Zhang wrote:
OK.
Will follow Petri's suggestion.
But will send patch out my next morning, I don't have a Linux PC at
home right now.

Thank you all.

I will send a patch. We need it ASAP.

Maxim.



On 3 February 2016 at 19:31, Maxim Uvarov <[email protected]> wrote:
On 02/03/2016 14:23, Savolainen, Petri (Nokia - FI/Espoo) wrote:
I still think that the test should pass with a warning when hz == 0, and
otherwise check that hz inside some sane range. If / when all platforms can
return a valid (non-zero) value, we can update the test to fail on hz == 0.
Today, the main thing is to call the function at least once (and get v1.7
out).

-Petri

+1 for that.

Maxim.


-----Original Message-----
From: EXT Maxim Uvarov [mailto:[email protected]]
Sent: Wednesday, February 03, 2016 1:15 PM
To: Hongbo Zhang; Savolainen, Petri (Nokia - FI/Espoo)
Cc: lng-odp-forward
Subject: Re: [lng-odp] test/validation/system/system_main fails on arm64

On 02/03/2016 13:16, Hongbo Zhang wrote:
I mean, use ODP_TEST_INFO_INACTIVE currently, and when everything
becomes ready, we will come back to use ODP_TEST_INFO again.

On 3 February 2016 at 17:56, Hongbo Zhang <[email protected]>
wrote:
I prefer ODP_TEST_INFO_INACTIVE at this stage, agree?
I don't agree. Acceptance criteria for master branch is code coverage by
validation test. By using ODP_TEST_INACTIVE you disable test execution
at all.

Maxim.

And after 1.7, there still be something to be updated, for example,
ARM max freq is still using dummy data, and I still think the
/sys/devices/system/cpu/ should be the first place for getting cpu
freq, it is a common way of cpu freq, from here we can get both max
and current freq, if it ins't enabled, then let's go to each arch's
parsing of /proc/cpuinfo.



On 3 February 2016 at 17:51, Hongbo Zhang <[email protected]>
wrote:
On 3 February 2016 at 17:27, Savolainen, Petri (Nokia - FI/Espoo)
<[email protected]> wrote:
The test should look like this. Zero is acceptable, otherwise hz
value should be in a sane range.
void system_test_odp_cpu_hz(void)
{
       uint64_t hz;

       hz = odp_cpu_hz();

       if (hz == 0)
           print warning ("cpu_hz not supported or other failure") and
return (with skipped status?)
not so accurate I think.
if not supported, it is ok to skip,
but if it is a real failure, it should report failure of course
here we mix the two different cases.

       /* Test value sanity: less than 10GHz */
       CU_ASSERT(hz < 10GHz);

       /* larger than 1kHz */
       CU_ASSERT(hz > 1kHz);
}


-Petri


From: EXT Maxim Uvarov [mailto:[email protected]]
Sent: Wednesday, February 03, 2016 11:16 AM
To: Hongbo Zhang
Cc: Savolainen, Petri (Nokia - FI/Espoo); lng-odp-forward
Subject: Re: [lng-odp] test/validation/system/system_main fails on
arm64
but here :
void system_test_odp_cpu_hz(void)
{
       uint64_t hz;

       hz = odp_cpu_hz();
       CU_ASSERT(0 < hz);
}
it looks like simple change to 0 <= hz is right. You can add some
comment.
Maxim.

On 3 February 2016 at 12:13, Maxim Uvarov <[email protected]>
wrote:

On 3 February 2016 at 11:34, Hongbo Zhang <[email protected]>
wrote:
On 3 February 2016 at 16:08, Savolainen, Petri (Nokia - FI/Espoo)
<[email protected]> wrote:
I think we updated the API to return 0, when a CPU frequency (max or
current) cannot be read. You just need to return 0 on ARM (== "was not
able to read current frequency"). Validation test needs to accept both
zero and non-zero values.
It already returns 0, see

uint64_t odp_cpu_hz_current(int id ODP_UNUSED)
{
return 0;
}

and the odp_cpu_hz() return value is uint64_t, it means it will
return
value >= 0

if in validation we accept both 0 and >0, that is meaningless, and
even compile warning IIRC.


In validation you need to test first if call is supported.
Refrer how it's done for pktio:
./test/validation/pktio/pktio.c
       ODP_TEST_INFO_CONDITIONAL(pktio_test_statistics_counters,
                     pktio_check_statistics_counters),

So you check first, if supported run test. If not - just skip.
Maxim.



-Petri



-----Original Message-----
From: lng-odp [mailto:[email protected]] On Behalf
Of EXT
Hongbo Zhang
Sent: Wednesday, February 03, 2016 5:46 AM
To: Maxim Uvarov
Cc: lng-odp-forward
Subject: Re: [lng-odp] test/validation/system/system_main fails on
arm64
No, not fixed.

One reason is there isn't such info in /proc/cpuinfo for ARM,
another
reason is there isn't any user calling "current freq" interfaces.

This "current freq" api was introduced because we have "max freq"
api,
so "current freq" can be a complement, what's more in the original
codes, "max freq" and "current freq" were mixed, I just made them
clear.

If we don't want to see any failure in validation. one suggestion
is
to delete the |current freq" validation codes, another suggestion
it
to delete the "current freq" interfaces.

On 2 February 2016 at 18:35, Maxim Uvarov <[email protected]>
wrote:
Hongbo, you fixed that in the latest patch set right?

Maxim.


On 02/02/2016 11:28, Hongbo Zhang wrote:
Sorry, please forget my previous reply.

I checked again, system_test_odp_cpu_hz and
system_test_odp_cpu_hz_id
failed, while system_test_odp_cpu_hz_max and
system_test_odp_cpu_hz_max_id passed.

As I've mentioned before in some cover letter, this fail can be
expected because on arm, mips and power, the "current freq" isn't
implemented, only the "max freq" is implemented now, so there are
such
failures.

On x86, there is no "current freq" failures because it is
implemented.
On 2 February 2016 at 16:14, Hongbo Zhang
<[email protected]>
wrote:
On 1 February 2016 at 21:20, Mike Holmes
<[email protected]>
wrote:
system_test_odp_cpu_hz_id

...../../../platform/linux-
generic/odp_cpumask_task.c:44:odp_cpumask_default_worker():
CPU0 will be used for both control and worker threads,
this will likely have a performance impact on the worker
thread.
FAILED


http://snapshots.linaro.org/components/lng/odp/odp-api-
check/api-
next/docker-utopic-arm64/559/log/system_main.log
My first guess is Hongbo's changes to the system info, but
maybe a
quick
bisect is needed

I checked the log but got this:

Test: system_test_odp_cpu_hz_max ...passed
      Test: system_test_odp_cpu_hz_max_id

...../../../platform/linux-
generic/odp_cpumask_task.c:44:odp_cpumask_default_worker():
CPU0 will be used for both control and worker threads,
this will likely have a performance impact on the worker thread.
passed

There is a "passed" at the end.

Will check further.
On 1 February 2016 at 08:13, Maxim Uvarov
<[email protected]>
wrote:
Subj.

Does somebody already look at this?

Thanks,
Maxim.

-------- Forwarded Message --------
Subject:        [lng-ci] Build failed in Jenkins: ODP API
check ยป
arm64,api-next,docker-utopic-arm64 #559
Date:   Mon, 1 Feb 2016 01:28:23 +0000 (UTC)
From:   [email protected]
To:     [email protected]



See

<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/559/>
------------------------------------------
[...truncated 3602 lines...]
make  check-TESTS
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
make[4]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
make[5]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
make[5]: Nothing to be done for 'all'.
make[5]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>

==========================================================================
==
Testsuite summary for OpenDataPlane 1.6.0.0.git383.g06be077



==========================================================================
==
# TOTAL: 0
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0



==========================================================================
==
make[4]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
make[2]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/miscellaneous'>
Making check in validation
make[2]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation'>
Making check in common
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/common'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/common'>
Making check in atomic
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/atomic'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/atomic'>
Making check in barrier
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/barrier'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/barrier'>
Making check in buffer
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/buffer'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/buffer'>
Making check in classification
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/classification'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/classification'>
Making check in config
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/config'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/config'>
Making check in cpumask
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/cpumask'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/cpumask'>
Making check in crypto
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/crypto'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/crypto'>
Making check in errno
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/errno'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/errno'>
Making check in hash
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/hash'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/hash'>
Making check in init
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/init'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/init'>
Making check in lock
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/lock'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/lock'>
Making check in queue
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/queue'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/queue'>
Making check in packet
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/packet'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/packet'>
Making check in pktio
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/pktio'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/pktio'>
Making check in pool
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/pool'>
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-
arm64/ws/check-
odp/build/odp/testdir/test/validation/pool'>
Making check in random
make[3]: Entering directory

'<https://ci.linaro.org/jenkins/job/odp-api-
check/ARCH=arm64,GIT_BRANCH=api-next,label=docker-utopic-

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to