rogue::interfaces::memory transaction ID feedback to prevent false timeouts

XMLWordPrintable

    • Type: Task
    • Resolution: resolved
    • Priority: Major
    • Component/s: SW
    • None

      I was reading through the code. After this line:
      https://github.com/slaclab/rogue/blob/master/src/rogue/protocols/srp/SrpV3.cpp#L200
      I feel like we can use the inbound transaction information about a transaction to reset the transaction timers of the of any out standing transactions

      delTransaction(tran->id());
         for(i=0;i<tranMap_.size;i++){
            // Check for IDs ahead in time in the queue
            if ( (id - tranMap_[i]->id()) > 0x80000000) resetTransactionTimer(tranMap_[i]);
         }
      

      This would still detected dropped transactions and prevent false timeouts (due to varying register transaction latency) by feed backing accept frame ID the transaction IDs still in the queue (edited)

      Ryan Herbst [8:28 PM]
      Interesting.
      Let me think about that a bit

      Larry Ruckman [8:34 PM]
      If the SRPv3 transactions stopped, we would still get timeout errors as before. If a SRPv3 transaction got dropped, would would eventually get the timeout once the transaction pipeline gets to the dropped transaction (maybe a little bit longer before the actually timeout due to transaction ID feedbacking) (edited)
      The feedback would take advantage of the fact that transactions are still flowing through the pipeline and not based a (communication latency + "ave" register transaction latency) assumption (edited)

      Ryan Herbst [8:37 PM]
      Yeah makes sense.

      Larry Ruckman [8:37 PM]
      as long as transactions are flowing, there are no reason to timeout of any transaction ID ahead in time with respect to the transaction frame received

      Ryan Herbst [8:38 PM]
      I could also start the timer when the transaction hits the srp level

      Larry Ruckman [8:38 PM]
      This would allow our DAQ to be adaptive to long transactions (like I2C)

      Ryan Herbst [8:39 PM]
      but there is still a backup potential

              Assignee:
              Ryan Herbst
              Reporter:
              Larry Ruckman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: