pktgen: Fix delay handling
After last pktgen changes, delay handling is wrong. pktgen actually sends packets at full line speed. Fix is to update pkt_dev->next_tx even if spin() returns early, so that next spin() calls have a chance to see a positive delay. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
a00d2102ce
Коммит
417bc4b855
|
@ -2105,15 +2105,17 @@ static void pktgen_setup_inject(struct pktgen_dev *pkt_dev)
|
|||
static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
|
||||
{
|
||||
ktime_t start_time, end_time;
|
||||
s32 remaining;
|
||||
s64 remaining;
|
||||
struct hrtimer_sleeper t;
|
||||
|
||||
hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
||||
hrtimer_set_expires(&t.timer, spin_until);
|
||||
|
||||
remaining = ktime_to_us(hrtimer_expires_remaining(&t.timer));
|
||||
if (remaining <= 0)
|
||||
if (remaining <= 0) {
|
||||
pkt_dev->next_tx = ktime_add_ns(spin_until, pkt_dev->delay);
|
||||
return;
|
||||
}
|
||||
|
||||
start_time = ktime_now();
|
||||
if (remaining < 100)
|
||||
|
|
Загрузка…
Ссылка в новой задаче