[MontelLUG] ifconfig che dà i numeri (forse)
cesco
webmonster a apf.it
Ven 16 Set 2005 16:46:59 CEST
Decimo septimo Kalendas Novembres MMV EndelWar="E" haec scripsit:
E> alcuni 2.2 e 2.4 hanno un bellissimo "bug" i cui sintomi assomigliano
E> moltissimo a questo comportamento; in sostanza hanno usato un tipo di
E> variabile troppo stretto e semplicemente "ha fatto il giro" e ha
E> ricominciato da 0 a contare i byte trasmessi
$ bc -l
l(4283258987)/l(2)
31.99606176632245179833
Effettivamente hai sfondato il muro dei 32 bit.
** Dopo una bella googolata **
Nel file netdevice.h c'è la definizione della struttura che memorizza le
statistiche di rete (net_device_stats) e la tua variabile è una unsigned
long, quindi a 32 bit (almeno nel codice della 2.6.8 che ho sottomano).
Farla a 64 bit in un sistema a 32 bit lo rallenterebbe e quindi sta a te
fare statistiche piú spesso :)
** Mail di Linus sull'argomento **
On Thu, 3 Jul 2003, Jeff Sipek wrote:
> The variables for network statistics (in struct net_device_stats)
> are unsigned longs. On 32-bit architectures, this makes them
> overflow every 4GB or 2^32 packets. The following series of
> patches [against 2.5.74] makes the statistics variable type
> configurable. The default is to leave everything the way it was
> (unsigned long). However, when NETSTATS64 is set in the config,
> the statistics use 64-bit variables (u_int64_t) - this works only
> on 32-bit architectures.
Please do this in user space. The "overflow every 2^32 packets"
thing is _not_ a problem, if you just gather the statistics at any
kind of reasonable interval.
I'd hate to penalise performance for something like this. We
have generally avoided locking _entirely_ for statistics, exactly
because people felt that there are major performance issues wrt
network packet handling, and that "perfect statistics" aren't
important enough to penalize performance over.
Remember: "perfect is the enemy of good".
Linus
** Fine **
--
______________
/\ \
\_| ciao ciao, |
| cesco |
| _________|_
\_/___________/
More information about the montellug
mailing list