Re: [PATCH] UDPCP Communication Protocol

Eric Dumazet
2010-12-31T10:15:01Z

Le vendredi 31 décembre 2010 à 10:29 +0100, stefani@seibold.net a
écrit :
> + spin_lock_irqsave(&spinlock, flags);
> + udpcp_stat.txMsgs++;
> + spin_unlock_irqrestore(&spinlock, flags);

This is really ugly for different reasons :

1) Naming a lock, even static "spinlock" is ugly.
2) Using a lock for stats is not necessary, and
disabling hard irqs is not necessary either (spinlock_bh() would be
more than enough)

At a very minimum, you should use atomic_t so that no lock is needed

3) Network stack widely use MIB per_cpu counters.
As you use UDP, you could take a look at UDP_INC_STATS_BH()/
UDP_INC_STATS_USER() implementation for an example.