Stop maintaining list of complete slabs

The complete slab list serves no purpose.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Replace partial slab list with rbtree

This permits us to maintain a strict ordering of fullest to emptiest slabs
based on the slab reference count. This reduces internal fragmentation
in the slabs by ensuring that we do not allocate objects from slabs that
could potentially be freed.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Do not call cond_resched() in spl_slab_reclaim

If spl_slab_reclaim is being called, it is likely called by the Linux
kernel, which means that the system is under memory pressure. Calling
cond_resched() means that we take more time to free memory, which is bad.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>