Loading net/core/pktgen.c +3 −32 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ #include <asm/div64.h> /* do_div */ #include <asm/timex.h> #define VERSION "pktgen v2.68: Packet Generator for packet performance testing.\n" #define VERSION "pktgen v2.69: Packet Generator for packet performance testing.\n" /* The buckets are exponential in 'width' */ #define LAT_BUCKETS_MAX 32 Loading Loading @@ -384,7 +384,6 @@ struct pktgen_thread { struct list_head th_list; struct task_struct *tsk; char result[512]; u32 max_before_softirq; /* We'll call do_softirq to prevent starvation. */ /* Field for thread to receive "posted" events terminate, stop ifs etc. */ Loading Loading @@ -1761,9 +1760,6 @@ static int pktgen_thread_show(struct seq_file *seq, void *v) BUG_ON(!t); seq_printf(seq, "Name: %s max_before_softirq: %d\n", t->tsk->comm, t->max_before_softirq); seq_printf(seq, "Running: "); if_lock(t); Loading Loading @@ -1796,7 +1792,6 @@ static ssize_t pktgen_thread_write(struct file *file, int i = 0, max, len, ret; char name[40]; char *pg_result; unsigned long value = 0; if (count < 1) { // sprintf(pg_result, "Wrong command format"); Loading Loading @@ -1870,12 +1865,8 @@ static ssize_t pktgen_thread_write(struct file *file, } if (!strcmp(name, "max_before_softirq")) { len = num_arg(&user_buffer[i], 10, &value); mutex_lock(&pktgen_thread_lock); t->max_before_softirq = value; mutex_unlock(&pktgen_thread_lock); sprintf(pg_result, "OK: Note! max_before_softirq is obsoleted -- Do not use"); ret = count; sprintf(pg_result, "OK: max_before_softirq=%lu", value); goto out; } Loading Loading @@ -2154,7 +2145,6 @@ static void spin(struct pktgen_dev *pkt_dev, __u64 spin_until_us) if (spin_until_us - now > jiffies_to_usecs(1) + 1) schedule_timeout_interruptible(1); else if (spin_until_us - now > 100) { do_softirq(); if (!pkt_dev->running) return; if (need_resched()) Loading Loading @@ -3524,8 +3514,6 @@ static int pktgen_thread_worker(void *arg) struct pktgen_thread *t = arg; struct pktgen_dev *pkt_dev = NULL; int cpu = t->cpu; u32 max_before_softirq; u32 tx_since_softirq = 0; BUG_ON(smp_processor_id() != cpu); Loading @@ -3533,8 +3521,6 @@ static int pktgen_thread_worker(void *arg) pr_debug("pktgen: starting pktgen/%d: pid=%d\n", cpu, current->pid); max_before_softirq = t->max_before_softirq; set_current_state(TASK_INTERRUPTIBLE); set_freezable(); Loading @@ -3553,24 +3539,9 @@ static int pktgen_thread_worker(void *arg) __set_current_state(TASK_RUNNING); if (pkt_dev) { if (pkt_dev) pktgen_xmit(pkt_dev); /* * We like to stay RUNNING but must also give * others fair share. */ tx_since_softirq += pkt_dev->last_ok; if (tx_since_softirq > max_before_softirq) { if (local_softirq_pending()) do_softirq(); tx_since_softirq = 0; } } if (t->control & T_STOP) { pktgen_stop(t); t->control &= ~(T_STOP); Loading Loading
net/core/pktgen.c +3 −32 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ #include <asm/div64.h> /* do_div */ #include <asm/timex.h> #define VERSION "pktgen v2.68: Packet Generator for packet performance testing.\n" #define VERSION "pktgen v2.69: Packet Generator for packet performance testing.\n" /* The buckets are exponential in 'width' */ #define LAT_BUCKETS_MAX 32 Loading Loading @@ -384,7 +384,6 @@ struct pktgen_thread { struct list_head th_list; struct task_struct *tsk; char result[512]; u32 max_before_softirq; /* We'll call do_softirq to prevent starvation. */ /* Field for thread to receive "posted" events terminate, stop ifs etc. */ Loading Loading @@ -1761,9 +1760,6 @@ static int pktgen_thread_show(struct seq_file *seq, void *v) BUG_ON(!t); seq_printf(seq, "Name: %s max_before_softirq: %d\n", t->tsk->comm, t->max_before_softirq); seq_printf(seq, "Running: "); if_lock(t); Loading Loading @@ -1796,7 +1792,6 @@ static ssize_t pktgen_thread_write(struct file *file, int i = 0, max, len, ret; char name[40]; char *pg_result; unsigned long value = 0; if (count < 1) { // sprintf(pg_result, "Wrong command format"); Loading Loading @@ -1870,12 +1865,8 @@ static ssize_t pktgen_thread_write(struct file *file, } if (!strcmp(name, "max_before_softirq")) { len = num_arg(&user_buffer[i], 10, &value); mutex_lock(&pktgen_thread_lock); t->max_before_softirq = value; mutex_unlock(&pktgen_thread_lock); sprintf(pg_result, "OK: Note! max_before_softirq is obsoleted -- Do not use"); ret = count; sprintf(pg_result, "OK: max_before_softirq=%lu", value); goto out; } Loading Loading @@ -2154,7 +2145,6 @@ static void spin(struct pktgen_dev *pkt_dev, __u64 spin_until_us) if (spin_until_us - now > jiffies_to_usecs(1) + 1) schedule_timeout_interruptible(1); else if (spin_until_us - now > 100) { do_softirq(); if (!pkt_dev->running) return; if (need_resched()) Loading Loading @@ -3524,8 +3514,6 @@ static int pktgen_thread_worker(void *arg) struct pktgen_thread *t = arg; struct pktgen_dev *pkt_dev = NULL; int cpu = t->cpu; u32 max_before_softirq; u32 tx_since_softirq = 0; BUG_ON(smp_processor_id() != cpu); Loading @@ -3533,8 +3521,6 @@ static int pktgen_thread_worker(void *arg) pr_debug("pktgen: starting pktgen/%d: pid=%d\n", cpu, current->pid); max_before_softirq = t->max_before_softirq; set_current_state(TASK_INTERRUPTIBLE); set_freezable(); Loading @@ -3553,24 +3539,9 @@ static int pktgen_thread_worker(void *arg) __set_current_state(TASK_RUNNING); if (pkt_dev) { if (pkt_dev) pktgen_xmit(pkt_dev); /* * We like to stay RUNNING but must also give * others fair share. */ tx_since_softirq += pkt_dev->last_ok; if (tx_since_softirq > max_before_softirq) { if (local_softirq_pending()) do_softirq(); tx_since_softirq = 0; } } if (t->control & T_STOP) { pktgen_stop(t); t->control &= ~(T_STOP); Loading