On 15 December 2014 at 18:58, Bill Fischofer <[email protected]> wrote:
> Eventually yes, however right now with the CUnit tests only covering "sunny
> day" tests that's not sufficient. odp_example at least is multi-theaded and
> does some limited stress testing of the APIs, which is needed.
So it is a rather complete smoke test (functionality and performance)
but not really an example.

>
> On Mon, Dec 15, 2014 at 11:54 AM, Mike Holmes <[email protected]>
> wrote:
>>
>>
>>
>> On 15 December 2014 at 12:13, Bill Fischofer <[email protected]>
>> wrote:
>>>
>>> The odp_example() call is a very useful sanity test.
>>
>>
>> That is an interesting observation that I hope goes away :)  the sanity
>> test should now come via "make check" or we failed with the unit tests.
>> You should only want to look in examples to learn how to use a api that is
>> new to you, any other reason and you risk losing the simplicity needed to be
>> a lucid example.
>>
>>>
>>> The problem with many of the others is that they are not self-contained
>>> and assume some sort of (unspecified) I/O configuration and source/sink.
>>
>>
>> Agree and if the doxygen starts to work with the examples a lot of
>> supporting text and even diagrams can be given.
>>
>>>
>>>
>>> On Mon, Dec 15, 2014 at 11:06 AM, Ola Liljedahl
>>> <[email protected]> wrote:
>>>>
>>>> On 15 December 2014 at 17:04, Mike Holmes <[email protected]>
>>>> wrote:
>>>> >
>>>> >
>>>> > On 15 December 2014 at 09:56, Savolainen, Petri (NSN - FI/Espoo)
>>>> > <[email protected]> wrote:
>>>> >>
>>>> >>
>>>> >>
>>>> >> > -----Original Message-----
>>>> >> > From: ext Ola Liljedahl [mailto:[email protected]]
>>>> >> > Sent: Monday, December 15, 2014 2:53 PM
>>>> >> > To: Savolainen, Petri (NSN - FI/Espoo)
>>>> >> > Cc: ext Mike Holmes; [email protected]
>>>> >> > Subject: Re: [lng-odp] [PATCH 0/3] Remove odp_schedule_one for 1.0
>>>> >> > compliance
>>>> >> >
>>>> >> > On 15 December 2014 at 13:45, Savolainen, Petri (NSN - FI/Espoo)
>>>> >> > <[email protected]> wrote:
>>>> >> > > Otherwise OK, but shouldn't remove the timer example.
>>>> >> > I also think it is good to have a timer example. Just shouldn't be
>>>> >> > called odp_timer_test. Since we don't have any other timer example,
>>>> >> > this one will have to do for now.
>>>> >> >
>>>> >> > >
>>>> >> > > Why it's a bad example? I think we need a set of simple examples.
>>>> >> > > It
>>>> >> > would also demonstrate how to step out from a schedule loop (==
>>>> >> > pause ->
>>>> >> > schedule until ODP_BUFFER_INVALID is returned -> tear down / step
>>>> >> > out).
>>>> >> > >
>>>> >> > > The new timer example could be more performance oriented, etc.
>>>> >> > What is that that we want to demonstrate?
>>>> >> > 1) basic timer usage (single-threaded?)
>>>> >> > 2) multithreaded, combining timer and scheduler
>>>> >> > 3) more?
>>>> >> >
>>>> >> > Can you be more specific with "more performance oriented"?
>>>> >>
>>>> >> I think all examples should be multi-threaded. There could be two
>>>> >> categories of examples: "hello world" and more realistic/performance
>>>> >> oriented. The first would demonstrate usage of an API in simplest
>>>> >> possible
>>>> >> way and with low dependency to other APIs.
>>>> The simplest possible way is probably not multithreaded. Just some
>>>> straight code from main, creating necessary resources (e.g. memory
>>>> regions, buffer pools, queues) and then some sunny day usage of the
>>>> API in question.
>>>>
>>>> >
>>>> >
>>>> > These should be in odp/examples.  I think they should be called out
>>>> > from the
>>>> > doxygen API documentation to get the most value from them.
>>>> >
>>>> >>
>>>> >> The second would be more complex, but would run more things in
>>>> >> parallel
>>>> >> and measure performance as well (easy / light weight check that
>>>> >> parallel
>>>> >> execution works and performs OK).
>>>> These are benchmarks, not examples. As Mike writes below...
>>>>
>>>> Benchmarks might not be particularly simple and easy to understand.
>>>>
>>>> >
>>>> >
>>>> > These should be in odp/benchmarks, they need to allow for being too
>>>> > complex
>>>> > to be an introductory example to a feature, but they also need to do
>>>> > something useful beyond creating the configuration needed for testing
>>>> > unlike
>>>> > anything in odp/test.
>>>> If they are micro benchmarks, they shouldn't really do anything else.
>>>> If they do something else, that processing will also be included in
>>>> the benchmark results.
>>>>
>>>>
>>>> >
>>>> >>
>>>> >>
>>>> >> From current examples:
>>>> >> - odp_example is type 2 for queues/scheduling. There could be another
>>>> >> "hello world" queues/scheduling app.
>>>> >>
>>>> >> - odp_timer_test is type 1 for timers (runs 20 sec and exists). There
>>>> >> could be another that runs long / forever and measures cpu load,
>>>> >> timeout
>>>> >> accuracy, etc
>>>> Sounds like a benchmark to me (measuring characteristics in general,
>>>> not just throughout for some specific function). This can easily
>>>> become complicated.
>>>>
>>>> >
>>>> >
>>>> > I believe that the current examples are not ideal,  I also feel we
>>>> > need to
>>>> > delete test/api_test, these should be examples, benchmarks or tests.
>>>> Kill them all!
>>>>
>>>> >
>>>> >>
>>>> >>
>>>> >>
>>>> >> -Petri
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>> > --
>>>> > Mike Holmes
>>>> > Linaro  Sr Technical Manager
>>>> > LNG - ODP
>>>>
>>>> _______________________________________________
>>>> lng-odp mailing list
>>>> [email protected]
>>>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>>
>>
>> --
>> Mike Holmes
>> Linaro  Sr Technical Manager
>> LNG - ODP

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

Reply via email to