On 10/10/2012 09:38 AM, Thierry Bultel wrote:
> Hi Gilles,
>
> Many thanks,
> The first patch does not work, the second does.
> I think the reason for 1st patch why is that in rtcan_virt, we have
>
> rtdm_lock_get_irqsave(&rtcan_recv_list_lock, lock_ctx);
> rtdm_lock_get(&rtcan_socket_lock);
>
> ...
> ---> rtcan_rcv(rx_dev, &skb);
> ....
>
> rtdm_lock_put(&rtcan_socket_lock);
> rtdm_lock_put_irqrestore(&rtcan_recv_list_lock, lock_ctx);
>
> and rtcan_rcv->rtcan_rcv_deliver->rtdm_sem_up(&sock->recv_sem);
>
> thus the same re-scheduling stuff with interrupts locked.
>
> Are you not not afraid of side effects with the second patch,
> since you change the overall behaviour ?
> Won't you prefer a only locally modified rtcan_virt ?
We should ask Jan's opinion. In any case, if we adopt the second patch,
we might want to try and reduce the overhead of xnpod_unlock_sched.
--
Gilles.
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai