<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: [IMX8MP] rpmsg vqueue interrupt not firing in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851445#M222815</link>
    <description>&lt;P&gt;I'm using the rpmsg-lite framework. I have implemented my ring buffer in&amp;nbsp;env_create_queue,&amp;nbsp;env_delete_queue,&amp;nbsp;env_put_queue,&amp;nbsp;env_get_queue, and env_get_current_queue_size functions in rpmsg_env_bm.c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In kernel code, in virtio_rpmsg_bus.c, I tried to remove the event waiting and insert a busy loop&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Airbus_A320_0-1713771572281.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/274955i70BC6E85ADC8EFEC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Airbus_A320_0-1713771572281.png" alt="Airbus_A320_0-1713771572281.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This way it will not freeze, but this means there something that's not working in the waking mechanism&lt;/P&gt;</description>
    <pubDate>Mon, 22 Apr 2024 08:21:17 GMT</pubDate>
    <dc:creator>Airbus_A320</dc:creator>
    <dc:date>2024-04-22T08:21:17Z</dc:date>
    <item>
      <title>[IMX8MP] rpmsg vqueue interrupt not firing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1850462#M222737</link>
      <description>&lt;P&gt;Hi, I'm trying to figure out some strange behaviors I'm having with the communication between Linux and bare-metal M7 firmware.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a kernel module implementing an rpmsg endpoint and a chardevice. The userspace application makes ioctls calls and the module translates the requests into rpmsg messages.&amp;nbsp;&lt;/P&gt;&lt;P&gt;On the M7 code, I have implemented the env-queue-* code using a simple ring buffer.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The system works, but if the user space sends messages too fast the buffer eventually fills, and the system freezes for 15 seconds. Looking into the rpmsg code in the kernel I found 15s is the timeout waiting for a free tx buffer. But, even with uart logging enabled, my M7 is performing all the queued operations in some milliseconds emptying the buffer.&lt;/P&gt;&lt;P&gt;It looks like, on the Linux side, the event waited with "&lt;SPAN&gt;wait_event_interruptible_timeout" is not raised during the 15s period... so&amp;nbsp;&lt;/SPAN&gt;the virtualqueue callback is not getting called.&lt;/P&gt;&lt;P&gt;I can't figure out how to fix this.&lt;/P&gt;&lt;P&gt;Thanks for the help&lt;/P&gt;</description>
      <pubDate>Fri, 19 Apr 2024 07:29:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1850462#M222737</guid>
      <dc:creator>Airbus_A320</dc:creator>
      <dc:date>2024-04-19T07:29:35Z</dc:date>
    </item>
    <item>
      <title>Re: [IMX8MP] rpmsg vqueue interrupt not firing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851205#M222801</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/207901"&gt;@Airbus_A320&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Looks like your&amp;nbsp;&lt;SPAN&gt;simple ring buffer framework clean the buffer, but you don't let kernel know this. You need notify kernel that you have already released this buffer.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Zhiming_Liu_0-1713765772455.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/274849iC8767039AEE427D7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Zhiming_Liu_0-1713765772455.png" alt="Zhiming_Liu_0-1713765772455.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You can use&amp;nbsp;rpmsg-lite framework or refer it's code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://github.com/nxp-mcuxpresso/rpmsg-lite" target="_blank"&gt;https://github.com/nxp-mcuxpresso/rpmsg-lite&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 06:03:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851205#M222801</guid>
      <dc:creator>Zhiming_Liu</dc:creator>
      <dc:date>2024-04-22T06:03:08Z</dc:date>
    </item>
    <item>
      <title>Re: [IMX8MP] rpmsg vqueue interrupt not firing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851445#M222815</link>
      <description>&lt;P&gt;I'm using the rpmsg-lite framework. I have implemented my ring buffer in&amp;nbsp;env_create_queue,&amp;nbsp;env_delete_queue,&amp;nbsp;env_put_queue,&amp;nbsp;env_get_queue, and env_get_current_queue_size functions in rpmsg_env_bm.c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In kernel code, in virtio_rpmsg_bus.c, I tried to remove the event waiting and insert a busy loop&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Airbus_A320_0-1713771572281.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/274955i70BC6E85ADC8EFEC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Airbus_A320_0-1713771572281.png" alt="Airbus_A320_0-1713771572281.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;This way it will not freeze, but this means there something that's not working in the waking mechanism&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 08:21:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851445#M222815</guid>
      <dc:creator>Airbus_A320</dc:creator>
      <dc:date>2024-04-22T08:21:17Z</dc:date>
    </item>
    <item>
      <title>Re: [IMX8MP] rpmsg vqueue interrupt not firing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851569#M222819</link>
      <description>&lt;P&gt;I found the issue. I was missing that&amp;nbsp;&lt;SPAN&gt;RL_ALLOW_CONSUMED_BUFFERS_NOTIFICATION wasn't defined as equal to 1 in the default config file&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for the support&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 10:41:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IMX8MP-rpmsg-vqueue-interrupt-not-firing/m-p/1851569#M222819</guid>
      <dc:creator>Airbus_A320</dc:creator>
      <dc:date>2024-04-22T10:41:55Z</dc:date>
    </item>
  </channel>
</rss>

