title: Linux Interrupt vs. Polling
body: <p>I am developing a system with a DSP and an ARM. On the ARM there is a linux OS. I have a DSP sending data to the ARM (Linux) - In the Linux there is a kernel module which read the data received from the DSP. The kernel module is waking up to read the data, using an hardware interrupt between the DSP to the ARM. </p>
  
  <p>I want to write a user space app, that will read the data from the kernel space (The kernel module) each time there's a new data arrived from the DSP.<br>
  The question is:  </p>
  
  <blockquote>
    <p>What is better approach to do that, a software interrupt from the kernel to the user-space or polling from the user-space (reading a known memory address with the kernel) every 10ms..?</p>
  </blockquote>
  
  <p>Knowing that:</p>
  
  <ul>
  <li>The data from the DSP to the kernel must arrive in very short time - 100us.</li>
  <li>The data from the kernel to the user-space can take 10ms to 30ms.</li>
  <li>The data that is being read is regarded small - around 100 bytes. </li>
  </ul>