Hi,

I've also checked the code how we did it before.
We check the version when we first find cl_node. In safe read case, cl_node has 
been found in the main function, but in other cases it's done in common 
functions (accessor, create, modify, delete, .... ).

I'll add additional version check to accessor_get_common() with traces 
"ERR_VERSION: The feature is only supported for A.02.17 and above".
I add a common name "The feature" to handle future unknown cases.

Thanks,
Zoran

-----Original Message-----
From: Neelakanta Reddy [mailto:[email protected]] 
Sent: Friday, April 01, 2016 1:58 PM
To: Zoran Milinkovic
Cc: [email protected]; [email protected]
Subject: Re: [devel] [PATCH 0 of 3] Review Request for imm: support for 
transactional safe read [#48]

Hi zoran,


we are already checking in accessor_get_common:

    if(bUseString && !cl_node->isImmA2f) {
                 rc = SA_AIS_ERR_VERSION;
                 TRACE_2("ERR_VERSION: saImmOmAccessorGet_o3 only supported for 
"
                         "A.02.15 and above");
                 goto release_lock;
         }

It is good to have a check.

/Neel.

On Friday 01 April 2016 05:20 PM, Zoran Milinkovic wrote:
> Hi,
>
> accessor_get_common() is a common function for handling accessor functions 
> and safe read.
> The version check should be done in main functions, not in the common 
> function.
>
> Thanks,
> Zoran
>
> -----Original Message-----
> From: Neelakanta Reddy [mailto:[email protected]]
> Sent: Friday, April 01, 2016 1:49 PM
> To: Zoran Milinkovic
> Cc: [email protected]; [email protected]
> Subject: Re: [devel] [PATCH 0 of 3] Review Request for imm: support 
> for transactional safe read [#48]
>
> Hi zoran,
>
> In future there may be chance of calling accessor_get_common(), with ccb id, 
> may be for other (usage).
> Its good to have a redundant check there also as it is introduced in A.2.17.
>
> /Neel.
>
> On Friday 01 April 2016 05:13 PM, Zoran Milinkovic wrote:
>> Hi Neelakanta,
>>
>> The version check is already done in saImmOmCcbObjectRead()
>>      if(!cl_node->isImmA2x11) {
>>              rc = SA_AIS_ERR_VERSION;
>>              TRACE_2("ERR_VERSION: saImmOmCcbObjectRead only supported for "
>>                      "A.02.17 and above");
>>              goto done;
>>      }
>>
>> ccbId in accessor_get_common() can only be non-zero if it's called from 
>> saImmOmCcbObjectRead().
>> So, no need for additional version check in accessor_get_common().
>>
>> Thanks,
>> Zoran
>>
>> -----Original Message-----
>> From: Zoran Milinkovic [mailto:[email protected]]
>> Sent: Friday, April 01, 2016 1:35 PM
>> To: Neelakanta Reddy
>> Cc: [email protected]; 
>> [email protected]
>> Subject: Re: [devel] [PATCH 0 of 3] Review Request for imm: support 
>> for transactional safe read [#48]
>>
>> Hi Neelakanta,
>>
>> Find my comments inline
>>
>> -----Original Message-----
>> From: Neelakanta Reddy [mailto:[email protected]]
>> Sent: Friday, April 01, 2016 12:35 PM
>> To: Zoran Milinkovic
>> Cc: [email protected]; 
>> [email protected]
>> Subject: Re: [PATCH 0 of 3] Review Request for imm: support for 
>> transactional safe read [#48]
>>
>> Hi Zoran/AndersBj,
>>
>> Reviewed and tested  the patch.
>>
>> 1.
>>
>> @@ -5765,6 +5768,9 @@ static SaAisErrorT accessor_get_common(S
>>            SaUint32T timeout;
>>
>>            TRACE_ENTER();
>> +       if(ccbId) {
>> +               TRACE_2("This is a SAFE read, ccbId:%u", ccbId);
>> +       }
>>
>> API version has to be checked if ccbId is given
>>
>> [Zoran] I will add the check when I push the code.
>>
>> 2.
>>
>> why can not IMMND_EVT_A2ND_OBJ_SAFE_READ can be sent as fevs from IMMND in 
>> case of INTERRUPT rather than sending them back from agent.
>>
>> [Zoran] This is another way to implement safe read, and can be considered as 
>> a small improvement. Also the improvement will include more complexity 
>> (continuations, ...) I guess that this implementation comes when Anders had 
>> another message for locking the object, which he later removed and the same 
>> message is sent over fevs for locking the object.
>>
>> Thanks,
>> Zoran
>>
>> /Neel.
>>
>>
>> On Thursday 31 March 2016 01:26 PM, Zoran Milinkovic wrote:
>>> Summary: imm: support for transactional safe read [#48] Review 
>>> request for Trac Ticket(s): 48 Peer Reviewer(s): Hung, Neelakanta 
>>> Pull request
>>> to: Zoran Affected branch(es): default(5.0) Development branch:
>>> default(5.0)
>>>
>>> --------------------------------
>>> Impacted area       Impact y/n
>>> --------------------------------
>>>     Docs                    n
>>>     Build system            n
>>>     RPM/packaging           n
>>>     Configuration files     n
>>>     Startup scripts         n
>>>     SAF services            y
>>>     OpenSAF services        n
>>>     Core libraries          n
>>>     Samples                 n
>>>     Tests                   n
>>>     Other                   n
>>>
>>>
>>> Comments (indicate scope for each "y" above):
>>> ---------------------------------------------
>>>
>>> changeset 339c2755f9cf83bdaee6689c6c129982c628e8e6
>>> Author:     Zoran Milinkovic <[email protected]>
>>> Date:       Thu, 31 Mar 2016 09:49:45 +0200
>>>
>>>     imm: add support to the library for transactional safe read [#48]
>>>
>>>     The patch contains code for the library part of transactional safe 
>>> read
>>>
>>> changeset f88495b085e13d84baf02dff770c819397686334
>>> Author:     Zoran Milinkovic <[email protected]>
>>> Date:       Thu, 31 Mar 2016 09:50:34 +0200
>>>
>>>     imm: add support to IMM service for transactional safe read [#48]
>>>
>>>     The patch contains code for IMM service part of transactional safe 
>>> read
>>>
>>> changeset 4c5162eb5f51e2efb80e664763376225250a27ff
>>> Author:     Zoran Milinkovic <[email protected]>
>>> Date:       Thu, 31 Mar 2016 09:51:35 +0200
>>>
>>>     imm: add tests for transactional safe read [#48]
>>>
>>>     New tests for transactional safe read
>>>
>>>
>>> Complete diffstat:
>>> ------------------
>>>     osaf/libs/agents/saf/imma/imma_cb.h                        |    1 +
>>>     osaf/libs/agents/saf/imma/imma_db.c                        |   15 ++-
>>>     osaf/libs/agents/saf/imma/imma_oi_api.c                    |    2 +-
>>>     osaf/libs/agents/saf/imma/imma_om_api.c                    |  422 
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>>>     osaf/libs/agents/saf/imma/imma_proc.c                      |   38 
>>> +++++++++-
>>>     osaf/libs/common/immsv/immsv_evt.c                         |   24 +++++-
>>>     osaf/libs/common/immsv/include/immsv_evt.h                 |    2 +
>>>     osaf/libs/common/immsv/include/immsv_evt_model.h           |    1 +
>>>     osaf/libs/saf/include/saImmOm_A_2_17.h                     |    6 +
>>>     osaf/services/saf/immsv/README                             |   44 
>>> +++++++++++
>>>     osaf/services/saf/immsv/immnd/ImmModel.cc                  |  631 
>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
>>>     osaf/services/saf/immsv/immnd/ImmModel.hh                  |   10 ++-
>>>     osaf/services/saf/immsv/immnd/immnd_evt.c                  |  162 
>>> +++++++++++++++++++++++++++++++++++++++++-
>>>     osaf/services/saf/immsv/immnd/immnd_init.h                 |    3 +
>>>     tests/immsv/common/immtest.c                               |    2 +
>>>     tests/immsv/common/immtest.h                               |    1 +
>>>     tests/immsv/implementer/test_saImmOiAugmentCcbInitialize.c |   63 
>>> +++++++++++++++-
>>>     tests/immsv/management/test_saImmOmCcbInitialize.c         |    7 +
>>>     tests/immsv/management/test_saImmOmCcbObjectModify_2.c     |  126 
>>> ++++++++++++++++++++++++++++-----
>>>     19 files changed, 1459 insertions(+), 101 deletions(-)
>>>
>>>
>>> Testing Commands:
>>> -----------------
>>> immomtest
>>> immoitest
>>>
>>>
>>> Testing, Expected Results:
>>> --------------------------
>>> All tests must pass
>>>
>>>
>>> Conditions of Submission:
>>> -------------------------
>>> Ack from Neelakanta and Hung
>>>
>>>
>>> Arch      Built     Started    Linux distro
>>> -------------------------------------------
>>> mips        n          n
>>> mips64      n          n
>>> x86         n          n
>>> x86_64      n          n
>>> powerpc     n          n
>>> powerpc64   n          n
>>>
>>>
>>> Reviewer Checklist:
>>> -------------------
>>> [Submitters: make sure that your review doesn't trigger any 
>>> checkmarks!]
>>>
>>>
>>> Your checkin has not passed review because (see checked entries):
>>>
>>> ___ Your RR template is generally incomplete; it has too many blank entries
>>>        that need proper data filled in.
>>>
>>> ___ You have failed to nominate the proper persons for review and push.
>>>
>>> ___ Your patches do not have proper short+long header
>>>
>>> ___ You have grammar/spelling in your header that is unacceptable.
>>>
>>> ___ You have exceeded a sensible line length in your headers/comments/text.
>>>
>>> ___ You have failed to put in a proper Trac Ticket # into your commits.
>>>
>>> ___ You have incorrectly put/left internal data in your comments/files
>>>        (i.e. internal bug tracking tool IDs, product names etc)
>>>
>>> ___ You have not given any evidence of testing beyond basic build tests.
>>>        Demonstrate some level of runtime or other sanity testing.
>>>
>>> ___ You have ^M present in some of your files. These have to be removed.
>>>
>>> ___ You have needlessly changed whitespace or added whitespace crimes
>>>        like trailing spaces, or spaces before tabs.
>>>
>>> ___ You have mixed real technical changes with whitespace and other
>>>        cosmetic code cleanup changes. These have to be separate commits.
>>>
>>> ___ You need to refactor your submission into logical chunks; there is
>>>        too much content into a single commit.
>>>
>>> ___ You have extraneous garbage in your review (merge commits etc)
>>>
>>> ___ You have giant attachments which should never have been sent;
>>>        Instead you should place your content in a public tree to be pulled.
>>>
>>> ___ You have too many commits attached to an e-mail; resend as threaded
>>>        commits, or place in a public tree for a pull.
>>>
>>> ___ You have resent this content multiple times without a clear indication
>>>        of what has changed between each re-send.
>>>
>>> ___ You have failed to adequately and individually address all of the
>>>        comments and change requests that were proposed in the initial 
>>> review.
>>>
>>> ___ You have a misconfigured ~/.hgrc file (i.e. username, email etc)
>>>
>>> ___ Your computer have a badly configured date and time; confusing the
>>>        the threaded patch review.
>>>
>>> ___ Your changes affect IPC mechanism, and you don't present any results
>>>        for in-service upgradability test.
>>>
>>> ___ Your changes affect user manual and documentation, your patch series
>>>        do not contain the patch that updates the Doxygen manual.
>>>
>> ---------------------------------------------------------------------
>> -
>> --------
>> Transform Data into Opportunity.
>> Accelerate data analysis in your applications with Intel Data Analytics 
>> Acceleration Library.
>> Click to learn more.
>> http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
>> _______________________________________________
>> Opensaf-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to