Re: [PATCH 2.6.12-rc3-mm3] connector: add a fork connector

From: Evgeniy Polyakov
Date: Tue May 10 2005 - 06:27:05 EST


On Tue, 10 May 2005 20:13:43 +0900
aq <aquynh@xxxxxxxxx> wrote:

> > If system under so bad conditions that even process context allocation
> > fails, then connector may drop message and will return error,
> > probably in such conditions one may not even trust accounting data,
> > so, Guillaume, feel free to drop it and just do not send data -
> > it's only a matter of information importance.
> >
>
> what i find most troublesome of this solution is that information
> collected by ELSA is not reliable. The reason is that it uses netlink,
> which is connectionless. So under heavy pressure, we can lose some
> critical accounting data.
>
> At least it would be nice if we can know when and why there are
> problems of losing data with netlink. Any solution?

1. Netlink message may be lost only under strong memory pressure, when
allocation (in this case it is process allocation) fails.
cn_netlink_send() returns error code for that.
2. Userspace application do not read it's queue for a long time,
so it was overflowed. Do not blame netlink here.

All netlink messages being sent using connector have
two special fields in it's header - seq and ack,
which should be used by caller to provide information about
number of messages and their's order.
By properly using such fields [fork connector uses per-cpu
variables with processor id in each message] userspace can
detect that messages were lost.

Other info can be found in connector's documentation
and all previous discussions.

> thank you,
> aq

Evgeniy Polyakov

Only failure makes us experts. -- Theo de Raadt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/