Re: [PATCH 1/2] zsmalloc: introduce zs_huge_object() function

From: Sergey Senozhatsky
Date: Fri Feb 09 2018 - 00:36:40 EST


On (02/08/18 20:10), Matthew Wilcox wrote:
[..]
> Examples::
>
> * Context: Any context.
> * Context: Any context. Takes and releases the RCU lock.
> * Context: Any context. Expects <lock> to be held by caller.
> * Context: Process context. May sleep if @gfp flags permit.
> * Context: Process context. Takes and releases <mutex>.
> * Context: Softirq or process context. Takes and releases <lock>, BH-safe.
> * Context: Interrupt context.

I assume that <mutex> spelling serves as a placeholder and should be
replaced with a lock name in a real comment. E.g.

Takes and releases audit_cmd_mutex.

or should it actually be

Takes and releases <audit_cmd_mutex>.




So below is zs_huge_object() documentation I came up with:

---

+/**
+ * zs_huge_object() - Test if a compressed object's size is too big for normal
+ * zspool classes and it will be stored in a huge class.
+ * @sz: Size in bytes of the compressed object.
+ *
+ * The functions checks if the object's size falls into huge_class area.
+ * We must take ZS_HANDLE_SIZE into account and test the actual size we
+ * are going to use up, because zs_malloc() unconditionally adds the
+ * handle size before it performs size_class lookup.
+ *
+ * Context: Any context.
+ *
+ * Return:
+ * * true - The object's size is too big, it will be stored in a huge class.
+ * * false - The object will be store in normal zspool classes.
+ */
---

looks OK?

-ss