Summary: | uma consumes memory when reattaching device | ||
---|---|---|---|
Product: | Base System | Reporter: | jcaplan |
Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
Status: | New --- | ||
Severity: | Affects Some People | CC: | emaste |
Priority: | --- | ||
Version: | 13.0-STABLE | ||
Hardware: | Any | ||
OS: | Any |
Description
jcaplan
2021-07-21 19:25:30 UTC
Just to add a bit more detail. A single iteration might look like this: # sysctl vm.uma_kmem_total vm.uma_kmem_total: 26247168 #devctl attach pci0:3:0:0 #devctl detach pci0:3:0:0 # sysctl vm.uma_kmem_total vm.uma_kmem_total: 26251264 Comparing the output before and after for vmstat -m shows that there is no change in dynamic memory allocated from malloc(). However we see from vm.uma_kmem_total that the UMA is gradually consuming more memory, and a diff of vmstat -z shows several changes in zone allocations at the UMA layer. It appears that all allocations are accounted for at the malloc level yet there is a continuous slow leak of additional pages allocated at the UMA level. I'm not sure there's anything particularly special about mounting/unmounting, it's just an obviously reversible operation that allocates and then frees a lot of memory. So it's possible this is a specific instance of a more general problem. |