HomeFreeBSD

Remove vmem_size() consumers

Description

Remove vmem_size() consumers

There are currently three vmem_size() consumers all of which are
part of the ARC implemention. However, since the expected behavior
of the Linux and Solaris virtual memory subsystems are so different
the behavior in each of these instances needs to be reevaluated.

  • arc_evict_needed() - This is actually dead code. Arena support

was never added to the SPL and zio_arena is always NULL. This
support isn't needed so we simply remove this dead code.

  • arc_memory_throttle() - On Solaris where virtual memory constitutes

almost all of the address space we can reasonably expect there to be
a fairly large amount free. However, on Linux by default we only
have about 100MB total and that's heavily used by the ARC. So the
expectation on Linux is that this will usually be a small value.
Therefore we remove the vmem_size() check for i386 systems because
the expectation is that it will be less than the zfs_write_limit_max.

  • arc_init() - Here vmem_size() is used to initially size the ARC.

Since the ARC is currently backed by the virtual address space it
makes sense to use this as a limit on the ARC for 32-bit systems.
This code can be removed when the ARC is backed by the page cache.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #831

Details

Provenance
Richard Yao <ryao@cs.stonybrook.edu>Authored on Oct 11 2012, 10:51 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Oct 12 2012, 5:03 PM
Parents
rG87d98efe9ea7: Fix zfs_txg_timeout module parameter
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGb68503fb30df: Remove vmem_size() consumers (authored by Richard Yao <ryao@cs.stonybrook.edu>).Oct 12 2012, 5:03 PM