Re: [B.A.T.M.A.N.] slowpath warning

Marek Lindner
2010-01-29T08:59:59Z

On Friday 29 January 2010 16:25:45 Andrew Lunn wrote:
> This is what Mareks patch does. However, this part of Marek's patch looks
> wrong:

I'd like to point out that this lock wasn't introduced by my previously posted
patch. I managed to reduce the effect of this lock but you can't remove it
entirely without changing the whole sending mechanism.

> You are disable interrupts and then call send_vis_packet(). This will
> not work since all calls under send_vis_packet will have interrupts
> disabled.

Yes, that is correct. The reason for this is simple: The interrupt flags are
stored in send_vis_packets() and without passing them on we can't re-enable
the interrupts. That did not appear to be a good solution. ;)
As far as I understand the vis_lock's only purpose is to avoid that the "info"
pointer which is passed to send_vis_packet() can't be deleted while we use it.
That might be better solved using reference counting.

Cheers,
Marek