Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
On 23 October 2015 at 08:40, Christophe Milard <christophe.mil...@linaro.org > wrote: > Well, I agree that the test environment should not prevent API > improvement: The test environment should simply follow the API as it moves. > I see no problem with this change as long as the test environment follows > it. I do see a problem, though, if it does not... What structure should the > test environment have then? none? > This is an api-next patch so it could go in and wait for the follow-up, but history is starting to show that doing this is starting to leave api-next changes floating that cannot be merged to master because no one addresses the gating items. If we take this in I think we need to make a bug to address the follow up. > > On 23 October 2015 at 14:35, Savolainen, Petri (Nokia - FI/Espoo) < > petri.savolai...@nokia.com> wrote: > >> >> >> >> >> *From:* EXT Mike Holmes [mailto:mike.hol...@linaro.org] >> *Sent:* Friday, October 23, 2015 3:22 PM >> *To:* Savolainen, Petri (Nokia - FI/Espoo) >> *Cc:* lng-odp >> *Subject:* Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize >> doxygen doc for synchronizer >> >> >> >> >> >> >> >> On 23 October 2015 at 03:00, Petri Savolainen <petri.savolai...@nokia.com> >> wrote: >> >> Removed module synchronizer from doxygen documentation and >> introduced new modules for locks, atomics and barriers. >> >> >> >> This ripples though the to the validation directory structure which is >> 1:1 in sync with the module definitions. >> >> We should move them at the same time. >> >> >> >> This improves a lot documentation readability. It’s nice that validation >> suites are named with the same names, but it’s not technically mandatory. >> API doc readability is number one goal (visible to all users), validation >> suite development is second (visible to implementers). Majority of people >> need well documented API and examples, and not validation tests (if they >> believe vendor on API compatibility). >> >> >> >> -Petri >> >> >> >> ___ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> https://lists.linaro.org/mailman/listinfo/lng-odp >> >> > -- Mike Holmes Technical Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
As long as the test-environment follows up (within a reasonable time), I am fine. On 23 October 2015 at 14:52, Savolainen, Petri (Nokia - FI/Espoo) < petri.savolai...@nokia.com> wrote: > > > > > *From:* EXT Mike Holmes [mailto:mike.hol...@linaro.org] > *Sent:* Friday, October 23, 2015 3:43 PM > *To:* Christophe Milard > *Cc:* Savolainen, Petri (Nokia - FI/Espoo); lng-odp > *Subject:* Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize > doxygen doc for synchronizer > > > > > > > > On 23 October 2015 at 08:40, Christophe Milard < > christophe.mil...@linaro.org> wrote: > > Well, I agree that the test environment should not prevent API > improvement: The test environment should simply follow the API as it moves. > I see no problem with this change as long as the test environment follows > it. I do see a problem, though, if it does not... What structure should the > test environment have then? none? > > > > > > This is an api-next patch so it could go in and wait for the follow-up, > but history is starting to show that doing this is starting to leave > api-next changes floating that cannot be merged to master because no one > addresses the gating items. If we take this in I think we need to make a > bug to address the follow up. > > > > It fine to report a bug. Missing validation tests are easier to track with > code coverage tools, etc. I choose to fix broken API documentation logic > instead of just copying it (which would have been less work for us all). > > -Petri > > > > > > > ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
Well, I agree that the test environment should not prevent API improvement: The test environment should simply follow the API as it moves. I see no problem with this change as long as the test environment follows it. I do see a problem, though, if it does not... What structure should the test environment have then? none? On 23 October 2015 at 14:35, Savolainen, Petri (Nokia - FI/Espoo) < petri.savolai...@nokia.com> wrote: > > > > > *From:* EXT Mike Holmes [mailto:mike.hol...@linaro.org] > *Sent:* Friday, October 23, 2015 3:22 PM > *To:* Savolainen, Petri (Nokia - FI/Espoo) > *Cc:* lng-odp > *Subject:* Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize > doxygen doc for synchronizer > > > > > > > > On 23 October 2015 at 03:00, Petri Savolainen <petri.savolai...@nokia.com> > wrote: > > Removed module synchronizer from doxygen documentation and > introduced new modules for locks, atomics and barriers. > > > > This ripples though the to the validation directory structure which is 1:1 > in sync with the module definitions. > > We should move them at the same time. > > > > This improves a lot documentation readability. It’s nice that validation > suites are named with the same names, but it’s not technically mandatory. > API doc readability is number one goal (visible to all users), validation > suite development is second (visible to implementers). Majority of people > need well documented API and examples, and not validation tests (if they > believe vendor on API compatibility). > > > > -Petri > > > > ___ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp > > ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
On 23 October 2015 at 03:00, Petri Savolainenwrote: > Removed module synchronizer from doxygen documentation and > introduced new modules for locks, atomics and barriers. This ripples though the to the validation directory structure which is 1:1 in sync with the module definitions. We should move them at the same time. > Removed > unnecessary group tagging from internal headers, which are not > visible to doxygen anyway. > > Signed-off-by: Petri Savolainen > --- > include/odp/api/atomic.h | 2 +- > include/odp/api/barrier.h | 4 ++-- > include/odp/api/rwlock.h | 19 > +++ > include/odp/api/rwlock_recursive.h| 17 > ++--- > include/odp/api/spinlock.h| 11 --- > include/odp/api/spinlock_recursive.h | 15 +-- > include/odp/api/sync.h| 2 +- > include/odp/api/ticketlock.h | 16 > ++-- > platform/linux-generic/include/odp/atomic.h | 2 +- > platform/linux-generic/include/odp/barrier.h | 8 > .../linux-generic/include/odp/plat/atomic_types.h | 8 > .../linux-generic/include/odp/plat/barrier_types.h| 8 > .../include/odp/plat/rwlock_recursive_types.h | 13 + > .../linux-generic/include/odp/plat/rwlock_types.h | 13 + > .../include/odp/plat/spinlock_recursive_types.h | 13 + > .../linux-generic/include/odp/plat/spinlock_types.h | 14 +- > .../linux-generic/include/odp/plat/ticketlock_types.h | 13 + > platform/linux-generic/include/odp/rwlock.h | 8 > platform/linux-generic/include/odp/spinlock.h | 8 > platform/linux-generic/include/odp/sync.h | 8 > platform/linux-generic/include/odp/ticketlock.h | 9 - > platform/linux-generic/include/odp_atomic_internal.h | 9 - > 22 files changed, 58 insertions(+), 162 deletions(-) > > diff --git a/include/odp/api/atomic.h b/include/odp/api/atomic.h > index ba5c354..8aacc9d 100644 > --- a/include/odp/api/atomic.h > +++ b/include/odp/api/atomic.h > @@ -18,7 +18,7 @@ > extern "C" { > #endif > > -/** @addtogroup odp_synchronizers > +/** @defgroup odp_atomic ODP ATOMIC > * Atomic types and relaxed operations. These operations cannot be used > for > * synchronization. > * @{ > diff --git a/include/odp/api/barrier.h b/include/odp/api/barrier.h > index 28310ba..8ca2647 100644 > --- a/include/odp/api/barrier.h > +++ b/include/odp/api/barrier.h > @@ -18,8 +18,8 @@ > extern "C" { > #endif > > -/** @addtogroup odp_synchronizers > - * Synchronize threads. > +/** @defgroup odp_barrier ODP BARRIER > + * Thread excution and memory ordering barriers. > * @{ > */ > > diff --git a/include/odp/api/rwlock.h b/include/odp/api/rwlock.h > index d730a70..54f426f 100644 > --- a/include/odp/api/rwlock.h > +++ b/include/odp/api/rwlock.h > @@ -17,18 +17,21 @@ > extern "C" { > #endif > > -/** @defgroup odp_synchronizers ODP SYNCRONIZERS > - * Operations on reader/writer locks. > - * A reader/writer lock allows multiple simultaneous readers but only one > - * writer at a time. > - * A thread that wants write access will have to wait until there are no > - * threads that want read access. This casues a risk for starvation. > - * @{ > +/** > + * @defgroup odp_locks ODP LOCKS > + * @details > + * Reader / writer lock (odp_rwlock_t) > + * > + * A reader/writer lock allows multiple simultaneous readers but only one > + * writer at a time. A thread that wants write access will have to wait > until > + * there are no threads that want read access. This casues a risk for > + * starvation. > + * @{ > */ > > /** > * @typedef odp_rwlock_t > - * ODP rwlock > + * ODP reader/writer lock > */ > > > diff --git a/include/odp/api/rwlock_recursive.h > b/include/odp/api/rwlock_recursive.h > index 4c7556a..10b2f79 100644 > --- a/include/odp/api/rwlock_recursive.h > +++ b/include/odp/api/rwlock_recursive.h > @@ -17,15 +17,12 @@ > extern "C" { > #endif > > -/** @addtogroup odp_synchronizers > - * Operations on recursive rwlocks. > - * @{ > - */ > - > /** > - * @typedef odp_rwlock_recursive_t > - * Recursive rwlock > + * @addtogroup odp_locks > + * @details > + * Recursive reader/writer lock (odp_rwlock_recursive_t) > * > + * This is recursive version of the reader/writer lock. > * A thread can read- or write-acquire a recursive read-write lock > multiple > * times without a deadlock. To release the lock, the thread must unlock > it > * the same number of times. Recursion is supported only for a pure > series of > @@ -38,6 +35,12 @@ extern "C" { > * > * ... but this is not supported. > * * read_lock(); write_lock();
Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
From: EXT Mike Holmes [mailto:mike.hol...@linaro.org] Sent: Friday, October 23, 2015 3:22 PM To: Savolainen, Petri (Nokia - FI/Espoo) Cc: lng-odp Subject: Re: [lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer On 23 October 2015 at 03:00, Petri Savolainen <petri.savolai...@nokia.com<mailto:petri.savolai...@nokia.com>> wrote: Removed module synchronizer from doxygen documentation and introduced new modules for locks, atomics and barriers. This ripples though the to the validation directory structure which is 1:1 in sync with the module definitions. We should move them at the same time. This improves a lot documentation readability. It’s nice that validation suites are named with the same names, but it’s not technically mandatory. API doc readability is number one goal (visible to all users), validation suite development is second (visible to implementers). Majority of people need well documented API and examples, and not validation tests (if they believe vendor on API compatibility). -Petri ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
[lng-odp] [API-NEXT PATCH v3 3/7] api: doc: re-organize doxygen doc for synchronizer
Removed module synchronizer from doxygen documentation and introduced new modules for locks, atomics and barriers. Removed unnecessary group tagging from internal headers, which are not visible to doxygen anyway. Signed-off-by: Petri Savolainen--- include/odp/api/atomic.h | 2 +- include/odp/api/barrier.h | 4 ++-- include/odp/api/rwlock.h | 19 +++ include/odp/api/rwlock_recursive.h| 17 ++--- include/odp/api/spinlock.h| 11 --- include/odp/api/spinlock_recursive.h | 15 +-- include/odp/api/sync.h| 2 +- include/odp/api/ticketlock.h | 16 ++-- platform/linux-generic/include/odp/atomic.h | 2 +- platform/linux-generic/include/odp/barrier.h | 8 .../linux-generic/include/odp/plat/atomic_types.h | 8 .../linux-generic/include/odp/plat/barrier_types.h| 8 .../include/odp/plat/rwlock_recursive_types.h | 13 + .../linux-generic/include/odp/plat/rwlock_types.h | 13 + .../include/odp/plat/spinlock_recursive_types.h | 13 + .../linux-generic/include/odp/plat/spinlock_types.h | 14 +- .../linux-generic/include/odp/plat/ticketlock_types.h | 13 + platform/linux-generic/include/odp/rwlock.h | 8 platform/linux-generic/include/odp/spinlock.h | 8 platform/linux-generic/include/odp/sync.h | 8 platform/linux-generic/include/odp/ticketlock.h | 9 - platform/linux-generic/include/odp_atomic_internal.h | 9 - 22 files changed, 58 insertions(+), 162 deletions(-) diff --git a/include/odp/api/atomic.h b/include/odp/api/atomic.h index ba5c354..8aacc9d 100644 --- a/include/odp/api/atomic.h +++ b/include/odp/api/atomic.h @@ -18,7 +18,7 @@ extern "C" { #endif -/** @addtogroup odp_synchronizers +/** @defgroup odp_atomic ODP ATOMIC * Atomic types and relaxed operations. These operations cannot be used for * synchronization. * @{ diff --git a/include/odp/api/barrier.h b/include/odp/api/barrier.h index 28310ba..8ca2647 100644 --- a/include/odp/api/barrier.h +++ b/include/odp/api/barrier.h @@ -18,8 +18,8 @@ extern "C" { #endif -/** @addtogroup odp_synchronizers - * Synchronize threads. +/** @defgroup odp_barrier ODP BARRIER + * Thread excution and memory ordering barriers. * @{ */ diff --git a/include/odp/api/rwlock.h b/include/odp/api/rwlock.h index d730a70..54f426f 100644 --- a/include/odp/api/rwlock.h +++ b/include/odp/api/rwlock.h @@ -17,18 +17,21 @@ extern "C" { #endif -/** @defgroup odp_synchronizers ODP SYNCRONIZERS - * Operations on reader/writer locks. - * A reader/writer lock allows multiple simultaneous readers but only one - * writer at a time. - * A thread that wants write access will have to wait until there are no - * threads that want read access. This casues a risk for starvation. - * @{ +/** + * @defgroup odp_locks ODP LOCKS + * @details + * Reader / writer lock (odp_rwlock_t) + * + * A reader/writer lock allows multiple simultaneous readers but only one + * writer at a time. A thread that wants write access will have to wait until + * there are no threads that want read access. This casues a risk for + * starvation. + * @{ */ /** * @typedef odp_rwlock_t - * ODP rwlock + * ODP reader/writer lock */ diff --git a/include/odp/api/rwlock_recursive.h b/include/odp/api/rwlock_recursive.h index 4c7556a..10b2f79 100644 --- a/include/odp/api/rwlock_recursive.h +++ b/include/odp/api/rwlock_recursive.h @@ -17,15 +17,12 @@ extern "C" { #endif -/** @addtogroup odp_synchronizers - * Operations on recursive rwlocks. - * @{ - */ - /** - * @typedef odp_rwlock_recursive_t - * Recursive rwlock + * @addtogroup odp_locks + * @details + * Recursive reader/writer lock (odp_rwlock_recursive_t) * + * This is recursive version of the reader/writer lock. * A thread can read- or write-acquire a recursive read-write lock multiple * times without a deadlock. To release the lock, the thread must unlock it * the same number of times. Recursion is supported only for a pure series of @@ -38,6 +35,12 @@ extern "C" { * * ... but this is not supported. * * read_lock(); write_lock(); write_unlock(); read_unlock(); + * @{ + */ + +/** + * @typedef odp_rwlock_recursive_t + * Recursive rwlock */ /** diff --git a/include/odp/api/spinlock.h b/include/odp/api/spinlock.h index 9a5a929..154d025 100644 --- a/include/odp/api/spinlock.h +++ b/include/odp/api/spinlock.h @@ -18,9 +18,14 @@ extern "C" { #endif -/** @addtogroup odp_synchronizers - * Operations on spin locks. - * @{ +/** + * @addtogroup odp_locks + * @details + * Spin lock (odp_spinlock_t) + * +