mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-19 10:53:58 +00:00
Don't count bucket allocation failures for UMA zones as their own failures.
There are good reasons for this to happen, such as recursion prevention, etc. and they are not fatal since buckets are just an optimization mechanism. Real bucket allocation failures are any way counted by the bucket zones themselves, and we don't need double accounting there.
This commit is contained in:
parent
e8a720fe60
commit
f7104ccd94
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=258691
@ -2509,7 +2509,7 @@ zone_alloc_bucket(uma_zone_t zone, void *udata, int flags)
|
||||
/* Don't wait for buckets, preserve caller's NOVM setting. */
|
||||
bucket = bucket_alloc(zone, udata, M_NOWAIT | (flags & M_NOVM));
|
||||
if (bucket == NULL)
|
||||
goto out;
|
||||
return (NULL);
|
||||
|
||||
max = MIN(bucket->ub_entries, zone->uz_count);
|
||||
bucket->ub_cnt = zone->uz_import(zone->uz_arg, bucket->ub_bucket,
|
||||
@ -2540,10 +2540,8 @@ zone_alloc_bucket(uma_zone_t zone, void *udata, int flags)
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
if (bucket == NULL || bucket->ub_cnt == 0) {
|
||||
if (bucket != NULL)
|
||||
bucket_free(zone, bucket, udata);
|
||||
if (bucket->ub_cnt == 0) {
|
||||
bucket_free(zone, bucket, udata);
|
||||
atomic_add_long(&zone->uz_fails, 1);
|
||||
return (NULL);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user