Welcome to the Linux Foundation Forum!

performance drop due to schedule_timeout

Why would adding these few lines riffa_driver.c slow down the PCIe transaction by 20x ?

   prepare_to_wait(&sc->send[chnl]->waitq, &wait, TASK_UNINTERRUPTIBLE); // unintteruptible such that user thread schduler does not screw up the following schedule_timeout()

   schedule_timeout(tymeout);  // gives time for software chnl_recv() thread to populate recv sg buf parameter

   finish_wait(&sc->send[chnl]->waitq, &wait);

because of chnl_recv() software thread creation time ?


  • using the following in place of schedule_timeout()

    wait_event_interruptible_timeout(sc->send[chnl]->waitq, (recv_sg_buf_populated == 1), timeout);   

    also does not help

Sign In or Register to comment.