Move UMA socket zone initialization from uipc_domain.c to uipc_socket.c

into one place next to its other related functions to avoid confusion.
This commit is contained in:
Andre Oppermann 2012-10-19 10:15:32 +00:00
parent 813ee737dd
commit cf8e6069e8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=241726
2 changed files with 23 additions and 17 deletions

View File

@ -239,28 +239,11 @@ domain_add(void *data)
mtx_unlock(&dom_mtx);
}
static void
socket_zone_change(void *tag)
{
uma_zone_set_max(socket_zone, maxsockets);
}
/* ARGSUSED*/
static void
domaininit(void *dummy)
{
/*
* Before we do any setup, make sure to initialize the
* zone allocator we get struct sockets from.
*/
socket_zone = uma_zcreate("socket", sizeof(struct socket), NULL, NULL,
NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
uma_zone_set_max(socket_zone, maxsockets);
EVENTHANDLER_REGISTER(maxsockets_change, socket_zone_change, NULL,
EVENTHANDLER_PRI_FIRST);
if (max_linkhdr < 16) /* XXX */
max_linkhdr = 16;

View File

@ -226,6 +226,29 @@ MTX_SYSINIT(so_global_mtx, &so_global_mtx, "so_glabel", MTX_DEF);
*/
SYSCTL_NODE(_kern, KERN_IPC, ipc, CTLFLAG_RW, 0, "IPC");
/*
* Initialize the socket subsystem and set up the socket
* memory allocator.
*/
static void
socket_zone_change(void *tag)
{
uma_zone_set_max(socket_zone, maxsockets);
}
static void
socket_init(void *tag)
{
socket_zone = uma_zcreate("socket", sizeof(struct socket), NULL, NULL,
NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
uma_zone_set_max(socket_zone, maxsockets);
EVENTHANDLER_REGISTER(maxsockets_change, socket_zone_change, NULL,
EVENTHANDLER_PRI_FIRST);
}
SYSINIT(socket, SI_SUB_PROTO_DOMAININIT, SI_ORDER_ANY, socket_init, NULL);
/*
* Sysctl to get and set the maximum global sockets limit. Notify protocols
* of the change so that they can update their dependent limits as required.