/* mptcp_mib_alloc - allocate percpu mib counters * * These are allocated when the first mptcp socket is created so * we do not waste percpu memory if mptcp isn't in use.
*/ bool mptcp_mib_alloc(struct net *net)
{ struct mptcp_mib __percpu *mib = alloc_percpu(struct mptcp_mib);
if (!mib) returnfalse;
if (cmpxchg(&net->mib.mptcp_statistics, NULL, mib))
free_percpu(mib);
returntrue;
}
void mptcp_seq_show(struct seq_file *seq)
{ unsignedlong sum[ARRAY_SIZE(mptcp_snmp_list) - 1]; struct net *net = seq->private; int i;
seq_puts(seq, "MPTcpExt:"); for (i = 0; mptcp_snmp_list[i].name; i++)
seq_printf(seq, " %s", mptcp_snmp_list[i].name);
seq_puts(seq, "\nMPTcpExt:");
memset(sum, 0, sizeof(sum)); if (net->mib.mptcp_statistics)
snmp_get_cpu_field_batch(sum, mptcp_snmp_list,
net->mib.mptcp_statistics);
for (i = 0; mptcp_snmp_list[i].name; i++)
seq_printf(seq, " %lu", sum[i]);
seq_putc(seq, '\n');
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
(vorverarbeitet am 2026-06-04)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.