Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFE: zfs doesn't mark its native kernel slabs as being reclaimable #3679

Open
siebenmann opened this issue Aug 11, 2015 · 1 comment
Open
Labels
Component: Memory Management kernel memory management Type: Feature Feature request or new feature

Comments

@siebenmann
Copy link
Contributor

The native kernel slab caches can be marked as containing data that is likely to be reclaimable under memory pressure. Slabs marked this way have their space show up in /proc/meminfo's SReclaimable (as opposed to SUnreclaim, which is slab memory not marked this way) and show up in the NR_SLAB_RECLAIMABLE page state. It appears that reclaimable slabs affect memory accounting in a few places beyond /proc/meminfo.

Normal Linux filesystems mark much of their slab usage this way by setting the SLAB_RECLAIM_ACCOUNT flag on slab creation. ZFS doesn't, perhaps partly because there is no equivalent Solaris/SPL flag for this marking. Especially if more of ZFS's memory allocation is moving to native kernel slabs, it might be good to somehow mark appropriate ZFS slabs this way.

(I suspect that not all ZFS slabs are reclaimable so it'd be incorrect to just have the SPL mark all of them that way by default.)

@behlendorf
Copy link
Contributor

Thanks for pointing this out. As we shift more fully on to the Linux interfaces we should definitely find a way to take advantage of this.

@behlendorf behlendorf added Type: Feature Feature request or new feature Component: Memory Management kernel memory management labels Aug 18, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Memory Management kernel memory management Type: Feature Feature request or new feature
Projects
None yet
Development

No branches or pull requests

2 participants