-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
In function 'pcc_decide()'
if (new_rate != pcc->rate) {
printk(KERN_INFO "%d decide: on new rate %d %d (%d)\n",
pcc->id, pcc->rate < new_rate, new_rate,
pcc->decisions_count);
pcc->moving = true;
pcc_setup_intervals_moving(pcc, list);
} else {
printk(KERN_INFO "%d decide: stay %d (%d)\n", pcc->id,
pcc->rate, pcc->decisions_count);
pcc_setup_intervals_probing(pcc, list);
}
pcc->rate = new_rate; // update new rateWhen the condition: new_rate != pcc->rate is satisified, PCC will enter moving stage and set the next monitor interval's rate in function:
' pcc_setup_intervals_moving(...)'
/* Reset statistics and set the target rate for just one monitor interval */
static void pcc_setup_intervals_moving(struct pcc_data *pcc)
{
pcc->intervals[0].packets_sent_base = 0;
pcc->intervals[0].rate = pcc->rate;
pcc->send_index = 0;
pcc->recive_index = 0;
pcc->wait = false;
}
However, at this time, the value of pcc->rate has not been updated, and it is still runs the old rate for the next interval.
tianhan4
Metadata
Metadata
Assignees
Labels
No labels