Re: [Patch] fix packet loss and massive ping spikes with PPP multi-link

From: walter harms
Date: Fri May 28 2010 - 03:28:41 EST




Richard Hartmann schrieb:
> ==It seems LKML & netdev were dropped from the To list, re-adding==
>
> Hi Walter,
>
>
>> if (ppp->rrsched % ppp->n_channels == i)
>>
>> since both do not change in that while() loop you can calculate in advance
>> perhaps ppp->rrsched %= ppp->n_channels before the while ?
>> (that would reduce my bad feels about variables that only increments also :)
>
> rrsched and i do change when appropriate. As they are used as a cheap
> way to get round robin, rrsched is not even initialized. One can argue
> that this should be done, but as it literally does not matter where the
> value starts counting....
>

yep,
the problem is that you will trigger a warning "variable uninitialised".
And as programmer you are trained to spot such kind of code.
in short you violated "the rule of least surprise", simply set it to 99
and add a comment that the value does not matter because it is actualy a
random seed.
Basicly the same reason for the ppp->rrsched %= ppp->n_channels outside
the loop. 1. people/compiler are happy because they see the variable
is used. 2. no need to recalculate the if in a loop (never trust optimisers).

/*
perhaps rr_chanel is a better name ? round robin channel
that would requiere the changes but explain what it actualy is
*/



>
>> btw: you are doing after loop() if(pch->chan == NULL) continue;
>> that means the else in the if below if (pch->chan) should never be reached.
>> Or is it likely that some channel will be dropped (?) ?
>
> Channels could be dropped and we need to guard against that.
>

please add a comment about that. i can garantee you someone will spot it
and remove either the pch->chan == NULL or the else.



just my 2 cents,
wh


>
>> btw: this is intentional ? looks strange
>>
>> if(ppp_ml_noexplode) {
>> + }
>> + else {
>
> Leftover from various printks for debugging reasons.
>
>
> Thanks for your feedback,
> Richard
>
--
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/