On 03/21, Stephen Hemminger wrote:
>On Thu, 21 Mar 2019 17:18:41 +0800
>Xiaolong Ye <xiaolong...@intel.com> wrote:
>
>> static void kick_tx(struct pkt_tx_queue *txq)
>> +{
>> +    struct xsk_umem_info *umem = txq->pair->umem;
>> +
>> +    while (send(xsk_socket__fd(txq->pair->xsk), NULL,
>> +                  0, MSG_DONTWAIT) < 0) {
>> +            /* some thing unexpected */
>> +            if (errno != EBUSY && errno != EAGAIN)
>> +                    break;
>> +
>> +            /* pull from complete qeueu to leave more space */
>> +            if (errno == EAGAIN)
>> +                    pull_umem_cq(umem, ETH_AF_XDP_TX_BATCH_SIZE);
>> +    }
>
>What about EINTR??
>You should retry the send then.

Will do.

Reply via email to