diff options
author | harti <harti@FreeBSD.org> | 2003-07-22 12:46:30 +0000 |
---|---|---|
committer | harti <harti@FreeBSD.org> | 2003-07-22 12:46:30 +0000 |
commit | ef0c913256e9dc1649f9a1717272d7ac66142e52 (patch) | |
tree | fe0192056d1d484956a504da31f19e63d36c82b2 /sys/netatm/spans | |
parent | 94d1a5de21a31c87cea17a35bf16a2e3665dfbf3 (diff) | |
download | FreeBSD-src-ef0c913256e9dc1649f9a1717272d7ac66142e52.zip FreeBSD-src-ef0c913256e9dc1649f9a1717272d7ac66142e52.tar.gz |
Remove the zone limits for all the zones used in the ATM code.
These were a left over from when the private memory pools were
converted to use uma zones. The limit of UMA zones, however,
works differently. When a zone is limited to only one or two pages
than, on multi-cpu systems, processes can get stuck on the zonelimit,
because all remaining free items are in caches of other CPUs.
Also add rudimentary error handling in some places (panic) when a zone
cannot be created.
Diffstat (limited to 'sys/netatm/spans')
-rw-r--r-- | sys/netatm/spans/spans_arp.c | 3 | ||||
-rw-r--r-- | sys/netatm/spans/spans_cls.c | 3 | ||||
-rw-r--r-- | sys/netatm/spans/spans_if.c | 6 |
3 files changed, 8 insertions, 4 deletions
diff --git a/sys/netatm/spans/spans_arp.c b/sys/netatm/spans/spans_arp.c index d8ff78b..9e8666c 100644 --- a/sys/netatm/spans/spans_arp.c +++ b/sys/netatm/spans/spans_arp.c @@ -365,7 +365,8 @@ spansarp_start() spansarp_zone = uma_zcreate("spansarp", sizeof(struct spansarp), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - uma_zone_set_max(spansarp_zone, 100); + if (spansarp_zone == NULL) + panic("spansarp_zone"); } /* diff --git a/sys/netatm/spans/spans_cls.c b/sys/netatm/spans/spans_cls.c index bfd6c24..c135b33 100644 --- a/sys/netatm/spans/spans_cls.c +++ b/sys/netatm/spans/spans_cls.c @@ -250,7 +250,8 @@ spanscls_start() spanscls_zone = uma_zcreate("spanscls", sizeof(struct spanscls), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - uma_zone_set_max(spanscls_zone, 100); + if (spanscls_zone == NULL) + panic("spanscls_zone"); /* * Fill in union fields diff --git a/sys/netatm/spans/spans_if.c b/sys/netatm/spans/spans_if.c index 3ea781c..b0ae569 100644 --- a/sys/netatm/spans/spans_if.c +++ b/sys/netatm/spans/spans_if.c @@ -126,11 +126,13 @@ spans_start() spans_vc_zone = uma_zcreate("spans vc", sizeof(struct spans_vccb), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - uma_zone_set_max(spans_vc_zone, 50); + if (spans_vc_zone == NULL) + panic("spans_vc_zone"); spans_msg_zone = uma_zcreate("spans msg", sizeof(spans_msg), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); - uma_zone_set_max(spans_msg_zone, 50); + if (spans_msg_zone == NULL) + panic("spans_msg_zone"); /* * Allocate protocol definition structure |