Clean up OS-specific ARC and kmem code
OS-specific code (e.g. under module/os/linux) does not need to share
its code structure with any other operating systems. In particular, the
ARC and kmem code need not be similar to the code in illumos, because we
won't be syncing this OS-specific code between operating systems. For
example, if/when illumos support is added to the common repo, we would
add a file module/os/illumos/zfs/arc_os.c for the illumos versions of
this code.
Therefore, we can simplify the code in the OS-specific ARC and kmem
routines.
These changes do not impact system behavior, they are purely code
cleanup. The changes are:
Arenas are not used on Linux or FreeBSD (they are always NULL), so
heap_arena, zio_arena, and zio_alloc_arena can be removed, along
with code that uses them.
In arc_available_memory():
- desfree is unused, remove it
- rename freemem to avoid conflict with pre-existing #define
- remove checks related to arenas
- use units of bytes, rather than converting from bytes to pages and then back to bytes
SPL_KMEM_CACHE_REAP is unused, remove it.
skc_reap is unused, remove it.
The count argument to spl_kmem_cache_reap_now() is unused, remove
it.
vmem_size() and associated type and macros are unused, remove them.
In arc_memory_throttle(), use a less confusing variable name to store
the result of arc_free_memory().
Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@ixsystems.com>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #10499