Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_mbuf.c
Show First 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | if (newnmbclusters > nmbclusters && | ||||
nmbclusters = newnmbclusters; | nmbclusters = newnmbclusters; | ||||
nmbclusters = uma_zone_set_max(zone_clust, nmbclusters); | nmbclusters = uma_zone_set_max(zone_clust, nmbclusters); | ||||
EVENTHANDLER_INVOKE(nmbclusters_change); | EVENTHANDLER_INVOKE(nmbclusters_change); | ||||
} else | } else | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbclusters, CTLTYPE_INT|CTLFLAG_RW, | SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbclusters, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&nmbclusters, 0, sysctl_nmbclusters, "IU", | &nmbclusters, 0, sysctl_nmbclusters, "IU", | ||||
"Maximum number of mbuf clusters allowed"); | "Maximum number of mbuf clusters allowed"); | ||||
static int | static int | ||||
sysctl_nmbjumbop(SYSCTL_HANDLER_ARGS) | sysctl_nmbjumbop(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error, newnmbjumbop; | int error, newnmbjumbop; | ||||
newnmbjumbop = nmbjumbop; | newnmbjumbop = nmbjumbop; | ||||
error = sysctl_handle_int(oidp, &newnmbjumbop, 0, req); | error = sysctl_handle_int(oidp, &newnmbjumbop, 0, req); | ||||
if (error == 0 && req->newptr && newnmbjumbop != nmbjumbop) { | if (error == 0 && req->newptr && newnmbjumbop != nmbjumbop) { | ||||
if (newnmbjumbop > nmbjumbop && | if (newnmbjumbop > nmbjumbop && | ||||
nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | ||||
nmbjumbop = newnmbjumbop; | nmbjumbop = newnmbjumbop; | ||||
nmbjumbop = uma_zone_set_max(zone_jumbop, nmbjumbop); | nmbjumbop = uma_zone_set_max(zone_jumbop, nmbjumbop); | ||||
} else | } else | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbop, CTLTYPE_INT|CTLFLAG_RW, | SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbop, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&nmbjumbop, 0, sysctl_nmbjumbop, "IU", | &nmbjumbop, 0, sysctl_nmbjumbop, "IU", | ||||
"Maximum number of mbuf page size jumbo clusters allowed"); | "Maximum number of mbuf page size jumbo clusters allowed"); | ||||
static int | static int | ||||
sysctl_nmbjumbo9(SYSCTL_HANDLER_ARGS) | sysctl_nmbjumbo9(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error, newnmbjumbo9; | int error, newnmbjumbo9; | ||||
newnmbjumbo9 = nmbjumbo9; | newnmbjumbo9 = nmbjumbo9; | ||||
error = sysctl_handle_int(oidp, &newnmbjumbo9, 0, req); | error = sysctl_handle_int(oidp, &newnmbjumbo9, 0, req); | ||||
if (error == 0 && req->newptr && newnmbjumbo9 != nmbjumbo9) { | if (error == 0 && req->newptr && newnmbjumbo9 != nmbjumbo9) { | ||||
if (newnmbjumbo9 > nmbjumbo9 && | if (newnmbjumbo9 > nmbjumbo9 && | ||||
nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | ||||
nmbjumbo9 = newnmbjumbo9; | nmbjumbo9 = newnmbjumbo9; | ||||
nmbjumbo9 = uma_zone_set_max(zone_jumbo9, nmbjumbo9); | nmbjumbo9 = uma_zone_set_max(zone_jumbo9, nmbjumbo9); | ||||
} else | } else | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbo9, CTLTYPE_INT|CTLFLAG_RW, | SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbo9, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&nmbjumbo9, 0, sysctl_nmbjumbo9, "IU", | &nmbjumbo9, 0, sysctl_nmbjumbo9, "IU", | ||||
"Maximum number of mbuf 9k jumbo clusters allowed"); | "Maximum number of mbuf 9k jumbo clusters allowed"); | ||||
static int | static int | ||||
sysctl_nmbjumbo16(SYSCTL_HANDLER_ARGS) | sysctl_nmbjumbo16(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error, newnmbjumbo16; | int error, newnmbjumbo16; | ||||
newnmbjumbo16 = nmbjumbo16; | newnmbjumbo16 = nmbjumbo16; | ||||
error = sysctl_handle_int(oidp, &newnmbjumbo16, 0, req); | error = sysctl_handle_int(oidp, &newnmbjumbo16, 0, req); | ||||
if (error == 0 && req->newptr && newnmbjumbo16 != nmbjumbo16) { | if (error == 0 && req->newptr && newnmbjumbo16 != nmbjumbo16) { | ||||
if (newnmbjumbo16 > nmbjumbo16 && | if (newnmbjumbo16 > nmbjumbo16 && | ||||
nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | nmbufs >= nmbclusters + nmbjumbop + nmbjumbo9 + nmbjumbo16) { | ||||
nmbjumbo16 = newnmbjumbo16; | nmbjumbo16 = newnmbjumbo16; | ||||
nmbjumbo16 = uma_zone_set_max(zone_jumbo16, nmbjumbo16); | nmbjumbo16 = uma_zone_set_max(zone_jumbo16, nmbjumbo16); | ||||
} else | } else | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbo16, CTLTYPE_INT|CTLFLAG_RW, | SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbjumbo16, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&nmbjumbo16, 0, sysctl_nmbjumbo16, "IU", | &nmbjumbo16, 0, sysctl_nmbjumbo16, "IU", | ||||
"Maximum number of mbuf 16k jumbo clusters allowed"); | "Maximum number of mbuf 16k jumbo clusters allowed"); | ||||
static int | static int | ||||
sysctl_nmbufs(SYSCTL_HANDLER_ARGS) | sysctl_nmbufs(SYSCTL_HANDLER_ARGS) | ||||
{ | { | ||||
int error, newnmbufs; | int error, newnmbufs; | ||||
newnmbufs = nmbufs; | newnmbufs = nmbufs; | ||||
error = sysctl_handle_int(oidp, &newnmbufs, 0, req); | error = sysctl_handle_int(oidp, &newnmbufs, 0, req); | ||||
if (error == 0 && req->newptr && newnmbufs != nmbufs) { | if (error == 0 && req->newptr && newnmbufs != nmbufs) { | ||||
if (newnmbufs > nmbufs) { | if (newnmbufs > nmbufs) { | ||||
nmbufs = newnmbufs; | nmbufs = newnmbufs; | ||||
nmbufs = uma_zone_set_max(zone_mbuf, nmbufs); | nmbufs = uma_zone_set_max(zone_mbuf, nmbufs); | ||||
EVENTHANDLER_INVOKE(nmbufs_change); | EVENTHANDLER_INVOKE(nmbufs_change); | ||||
} else | } else | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
return (error); | return (error); | ||||
} | } | ||||
SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbufs, CTLTYPE_INT|CTLFLAG_RW, | SYSCTL_PROC(_kern_ipc, OID_AUTO, nmbufs, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
&nmbufs, 0, sysctl_nmbufs, "IU", | &nmbufs, 0, sysctl_nmbufs, "IU", | ||||
"Maximum number of mbufs allowed"); | "Maximum number of mbufs allowed"); | ||||
/* | /* | ||||
* Zones from which we allocate. | * Zones from which we allocate. | ||||
*/ | */ | ||||
uma_zone_t zone_mbuf; | uma_zone_t zone_mbuf; | ||||
uma_zone_t zone_clust; | uma_zone_t zone_clust; | ||||
uma_zone_t zone_pack; | uma_zone_t zone_pack; | ||||
▲ Show 20 Lines • Show All 1,306 Lines • Show Last 20 Lines |