[quagga-dev 3151] Re: [PATCH] non-blocking I/O from client daemons to zebra
Andrew J. Schorr
aschorr at telemetry-investments.com
Mon Apr 11 14:26:29 BST 2005
On Sun, Apr 10, 2005 at 09:38:10PM +0100, Paul Jakma wrote:
> >Yes, I'm curious to know whether my patch solves the bgpd/zebra
> >blocking problem. Let me know if I should go ahead and commit.
> I havn't tested it yet, it's likely step in right direction - if you
> tag before/after might as well commit.
OK, I will do that today.
> PS: Are there threads unaccounted for? Eg, in zebra i dont see any
> kind of zebra_client_write thread. Are writes done inline?? Note that
> you can use thread_execute to 'call' a thread immediately (function
> call like) while still letting thread subsystem capture statistics.
> How's that being writen?
If you look in zebra/zserv.c:zebra_server_send_message, you will
see that there's a write thread called "zserv_flush_data" (perhaps
not the best name, I wonder if simply "zserv_flush" would be better...).
I do not see this thread in your "show thread cpu" output, so that
suggests that the zebra daemon socket buffer is never filling up.
Is that possible?
And once the patch is committed, there will be a thread called
"zclient_flush_data" on the client side (again, that may not be the
best name, comments are welcome).
More information about the Quagga-dev