diff options
-rw-r--r-- | trafgen.8 | 9 | ||||
-rw-r--r-- | trafgen.c | 13 |
2 files changed, 19 insertions, 3 deletions
@@ -152,6 +152,15 @@ scheduling rate resp. CPU time. This is however not the default setting, since it could lead to starvation of other processes, for example low priority kernel threads. .PP +.SS -A, --no-sock-mem +Do not change systems default socket memory setting during testrun. +Default is to boost socket buffer memory during the test to: +.PP + /proc/sys/net/core/rmem_default:4194304 + /proc/sys/net/core/wmem_default:4194304 + /proc/sys/net/core/rmem_max:104857600 + /proc/sys/net/core/wmem_max:104857600 +.PP .SS -Q, --notouch-irq Do not reassign the NIC's IRQ CPU affinity settings. .PP @@ -98,6 +98,7 @@ static const struct option long_options[] = { {"group", required_argument, NULL, 'g'}, {"prio-high", no_argument, NULL, 'H'}, {"notouch-irq", no_argument, NULL, 'Q'}, + {"no-sock-mem", no_argument, NULL, 'A'}, {"qdisc-path", no_argument, NULL, 'q'}, {"jumbo-support", no_argument, NULL, 'J'}, {"no-cpu-stats", no_argument, NULL, 'C'}, @@ -161,6 +162,7 @@ static void __noreturn help(void) " -u|--user <userid> Drop privileges and change to userid\n" " -g|--group <groupid> Drop privileges and change to groupid\n" " -H|--prio-high Make this high priority process\n" + " -m|--no-sock-mem Don't tune core socket memory\n" " -Q|--notouch-irq Do not touch IRQ CPU affinity of NIC\n" " -q|--qdisc-path Enabled qdisc kernel path (default off since 3.14)\n" " -V|--verbose Be more verbose\n" @@ -851,7 +853,7 @@ static unsigned int generate_srand_seed(void) int main(int argc, char **argv) { bool slow = false, invoke_cpp = false, reseed = true, cpustats = true; - bool prio_high = false, set_irq_aff = true; + bool prio_high = false, set_irq_aff = true, set_sock_mem = true; int c, opt_index, vals[4] = {0}, irq; uint64_t gap = 0; unsigned int i, j; @@ -902,6 +904,9 @@ int main(int argc, char **argv) case 'H': prio_high = true; break; + case 'A': + set_sock_mem = false; + break; case 'Q': set_irq_aff = false; break; @@ -1050,7 +1055,8 @@ int main(int argc, char **argv) set_sched_status(SCHED_FIFO, sched_get_priority_max(SCHED_FIFO)); } - set_system_socket_memory(vals, array_size(vals)); + if (set_sock_mem) + set_system_socket_memory(vals, array_size(vals)); xlockme(); if (ctx.rfraw) { @@ -1096,7 +1102,8 @@ int main(int argc, char **argv) if (ctx.rfraw) leave_rfmon_mac80211(ctx.device); - reset_system_socket_memory(vals, array_size(vals)); + if (set_sock_mem) + reset_system_socket_memory(vals, array_size(vals)); for (i = 0, tx_packets = tx_bytes = 0; i < ctx.cpus; i++) { while ((__get_state(i) & CPU_STATS_STATE_RES) == 0) |