zcache and zsmalloc

Asim linkasim at gmail.com
Wed Jun 27 14:42:49 EDT 2012

Yeah - I see lots of BUG_ON(!irqs_disabled()) in zcache code while
placing and compressing the page(and also other places).

I am not clear what you mean when you say zcache does so for other
reasons. My guess was when clean zcache_put_page is called it holds
locks (mapping->tree_lock) that conflicts xsmalloc pool allocations.
If zsmalloc has no such issues, can these be removed?


- Adding the correct kernel newbies address with entire conversation
intact for reference.

On Wed, Jun 27, 2012 at 1:26 PM, Seth Jennings
<sjenning at linux.vnet.ibm.com> wrote:
> On 06/27/2012 01:04 PM, Asim wrote:
>> This query relates zcache and the new zsmalloc patches.
>> I was looking through zcache code and your various zsmalloc patches. I
>> am aware the zcache  disables interrupts due to xvmalloc pool
>> allocations.However, does the zsmalloc code also needs to disable
>> interrupts while placing a page in zcache?
> (Adding Nitin to Cc)
> None of the functions need interrupts/preemption to be
> disabled before calling them, even though zcache does for
> other reasons.
> zs_map_object() will return with page faults and preemption
> disabled by kmap_atomic() and get_cpu_var() respectively.
> This is to insure atomic access to the mapping_area
> structure.  They are re-enabled in zs_unmap_object().
> --
> Seth

More information about the Kernelnewbies mailing list