On 29/11/2023 08:30, alvin.beg...@gd-ms.com wrote:

I would like to do the following, to figure out what is being tweaked on the HW.

1) Update X410 with a mender image (via mender install)

2) git clone the UHD repo, rebuild it with -g and install over what was mender.

Is there a recommended way to do this?  I would like to see the call flow with GDB to figure out what register is being written to when I access a register to an rfnoc block.

I'm not sure that -g will help that much, since most of MPM is written in Python, the source-code of which is in the UHD codebase.


*From:* Marcus D. Leech <patchvonbr...@gmail.com>
*Sent:* Thursday, November 16, 2023 1:55 PM
*To:* Begaye, Alvin A <alvin.beg...@gd-ms.com>; usrp-users@lists.ettus.com
*Subject:* Re: [USRP-users] Re: peek32/poke32 slow

*External E-mail *--- CAUTION: This email originated from outside GDMS. Do not click links or open attachments unless you recognize the sender and know the content is safe.

On 16/11/2023 15:50, alvin.beg...@gd-ms.com wrote:

    I’m running the SW directly on the ARM of the X410, so that should
    rule out network latency.

The ARM on the X410 is (AFAIR) dual-core, and not very speedy.  Even when you're talking locally, you   still go through the network stack (localhost).  So even though there's no actual network *hardware*
  involved, you're still paying the network stack costs.


    When using the UHD API on the ARM does it still go through the MPM?

Yes, as far as I know.


    Is there a way to bypass MPM?

Well, all the source code is freely available--so you could figure out how MPM turns those calls into actual "knobs"   being tweaked on the hardware, and tweak those knobs yourself in your own code.



    *From:* Marcus D. Leech <patchvonbr...@gmail.com>
    <mailto:patchvonbr...@gmail.com>
    *Sent:* Thursday, November 16, 2023 1:36 PM
    *To:* usrp-users@lists.ettus.com
    *Subject:* [USRP-users] Re: peek32/poke32 slow

    *External E-mail *--- CAUTION: This email originated from outside
    GDMS. Do not click links or open attachments unless you recognize
    the sender and know the content is safe.

    On 16/11/2023 15:11, Alvin.Begaye--- via USRP-users wrote:

        Hi I am using an x410, and running through the init_gain_block
        example,   using the high resolution timer I am getting these
        results, which seem really slow, is there a faster way to
        read/write registers?

    I believe that on the X410, operations like that actually end up
    going through the MPM process that is running in the Linux PS
      slice on the FPGA.

    One can expect to pay various "latency tolls".  There's
    app-land-to-kernel latency on your host, latency of the network stack,
      latency of the network media itself, and then all of those
    things in reverse order on the X410 side, since MPM is just a piece
      of software running as a normal app process in the Linux PS on
    the X410.

    It has never been the case that what amounts to "session
    parameter" settings were intended to be super-fast, because in
    general,
      those things happen at a MUCH MUCH slower pace than the signals
    themselves.




        Time 481.835 micro seconds.

        Gain value read/write loopback successful!

        Here is the code.

            t1 = high_resolution_clock::now();

        gain_block->set_gain_value(new_gain_value);

        const uint32_t gain_value_read = gain_block->get_gain_value();

            t2 = high_resolution_clock::now();

        delta_time = duration_cast<duration<double>>(t2-t1);

        std::cout << std::flush ;//<< std::endl;

        std::cout << "Time " << delta_time.count()*1000000.0 << "
        micro seconds." << std::endl;




        _______________________________________________

        USRP-users mailing list --usrp-users@lists.ettus.com

        To unsubscribe send an email tousrp-users-le...@lists.ettus.com

_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to