With more excessive use of modules, more kernel parts working with

VIMAGE, and feature richness and global state increasing the 8k of
vnet module space are no longer sufficient for people and loading
multiple modules, e.g., pf(4) and ipl(4) or ipsec(4) will fail on
the second module.

Increase the module space to 8 * PAGE_SIZE which should be enough
to hold multiple firewalls, ipsec, multicast (as in the old days was
a problem), epair, carp, and any kind of other vnet enabled modules.

Sadly this is a global byte array part of the vnet_set, so we cannot
dynamically change its size;  otherwise a TUNABLE would have been
a better solution.

PR:			228854
Reported by:		Ernie Luzar, Marek Zarychta
Discussed with:		rgrimes on current
MFC after:		3 days
This commit is contained in:
bz 2018-10-30 20:45:15 +00:00
parent 3431d451a5
commit 4def28d74a

View File

@ -171,7 +171,7 @@ static MALLOC_DEFINE(M_VNET_DATA, "vnet_data", "VNET data");
* we want the virtualized global variable space to be page-sized, we may
* have more space than that in practice.
*/
#define VNET_MODMIN 8192
#define VNET_MODMIN (8 * PAGE_SIZE)
#define VNET_SIZE roundup2(VNET_BYTES, PAGE_SIZE)
/*