Subject: Re: [PATCH] staging: fix powerpc linux-next break on zsmalloc

From: Marc Dietrich <[email-masked]>
Date: Mon, 12 Mar 2012 21:26:02 +0100

Hi Seth,

On Monday 12 March 2012 09:34:35 Seth Jennings wrote:
> On 02/14/2012 10:21 AM, Marc Dietrich wrote:
> > On Tuesday 14 February 2012 08:35:13 Seth Jennings wrote:
> >> On 02/14/2012 05:39 AM, Marc Dietrich wrote:
> >>> Am 14.02.2012 12:22, schrieb Marc Dietrich:
> >>>> Am 13.02.2012 15:47, schrieb Seth Jennings:
> >>>>> linux/vmalloc.h added to zsmalloc-main.c to resolve implicit
> >>>>> declaration errors.
> >>>>> 
> >>>>> X86 dependency added to zsmalloc and dependent drivers zcache
> >>>>> and
> >>>>> zram.
> >>>>> 
> >>>>> This X86 only requirement is not ideal.  Working to find
> >>>>> portable
> >>>>> functions for __flush_tlb_one and set_pte.
> >>>> 
> >>>> sorry, zcache/zram works fine one ARM here. Why not depend on
> >>>> !POWERPC?
> >>> 
> >>> ups, sorry again, I tested an older version only. flush_tlb_one and
> >>> set_pte is only used with the new allocator as it seems.
> >> 
> >> It would seem that the cpu-local tlb page flushing function for ARM
> >> is local_flush_tlb_kernel_page(), by look at the kmap_atomic() code
> >> in arch/arm/mm/highmem.c.
> >> 
> >> So each arch is using a slightly different approach here.
> >> 
> >> A simple #define per-arch could make a it a common call.  I think
> >> I'm going to code it up and see how it goes.
> > 
> > ... and I'm happy to test it ;-)
> 
> So I have a branch ready for you to test if your are willing
> 
> git://github.com/spartacus06/linux.git -b portable

ok, I took three patches I found relavant:
	454bded136: staging: zsmalloc: change type of vm_area
	33258b4c9d: staging: zcache: use portable cpu-local tlb flush
	15959dc488: staging: add ARM/PPC64 to zcache/zram/zsmalloc Kconfig

and also backported:
	cd12909cb5: xen: map foreign pages for shared rings by updating the PTEs 
directly

to my 3.0 tree which has all changes for zcache/frontswap/zram/cleancache 
backported from linux-next (sorry, other kernels are more hard to test on this 
machine).

> The branch is based on Greg's staging-next, since my
> patches that remove the sparsemem dependency are in there.
> The frontswap_v11 patches are in that branch as well.
> 
> I did a simple make test with my ARM cross compiler and it
> builds cleanly.  Now I just need to know if it _works_.
> 
> I'm not sure if you have been experimenting with frontswap
> since it's not in mainline yet, but you can enable/disable
> it in:
> 
> Kernel Features -> Enable frontswap to cache swap pages if tmem is present
> 
> Only the frontswap paths use zsmalloc right now. We are looking
> to use it for the cleancache paths too soon (I'm working on
> that now).
> 
> I'd appreciate any feedback you can provide!

I enabled zram (for swap), frontswap and cleancache.

In a short test, my half proprietary display driver crashes

[  204.951006] Unable to handle kernel NULL pointer dereference at virtual 
address 00000000
[  204.959130] pgd = c1018000
[  204.961829] [00000000] *pgd=00000000
[  204.965421] Internal error: Oops: 5 [#1] SMP
[  204.969682] Modules linked in: nls_iso8859_1 nls_cp437 vfat fat fuse 
zram(C) snd_soc_alc5632 rt2800usb snd_seq_dummy rt2800lib rt2x00usb 
snd_soc_tegra_pcm rt2x00lib mac80211 snd_seq_oss snd_seq_midi_event cdc_ether 
snd_soc_tegra_i2s usbnet snd_soc_tegra_das snd_pcm_oss snd_soc_tegra_alc5632 
cdc_wdm snd_mixer_oss mii snd_soc_core cdc_acm cfg80211 uvcvideo snd_seq 
videodev snd_pcm tegra_wdt snd_seq_device snd_timer snd_soc_tegra_utils lm90 
snd soundcore snd_page_alloc
[  205.011152] CPU: 0    Tainted: G         C   (3.0.19 #28)
[  205.016551] PC is at get_zspage_mapping+0x14/0x48
[  205.021247] LR is at zs_map_object+0x60/0x1a0
[  205.025597] pc : [<c036179c>]    lr : [<c0361b70>]    psr: 400f0013
[  205.025603] sp : c3ca5978  ip : c3ca5988  fp : c3ca5984
[  205.037062] r10: 000197c8  r9 : d86c5000  r8 : 00005045
[  205.042275] r7 : c06ae000  r6 : dacf0000  r5 : 00000fc3  r4 : c074e8a0
[  205.048790] r3 : 00080068  r2 : c3ca5994  r1 : c3ca5990  r0 : 00000000
[  205.055306] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment 
user
[  205.062428] Control: 10c5387d  Table: 0101804a  DAC: 00000015
[  205.068164] Process plugin-containe (pid: 1771, stack limit = 0xc3ca42f8)
[  205.074940] Stack: (0xc3ca5978 to 0xc3ca6000)
<stack snipped>
[  205.512112] [<c036179c>] (get_zspage_mapping+0x14/0x48) from [<c0361b70>] 
(zs_map_object+0x60/0x1a0)
[  205.521247] [<c0361b70>] (zs_map_object+0x60/0x1a0) from [<bf0186a0>] 
(zram_bvec_rw.isra.4+0x4b4/0x5b8 [zram])
[  205.531262] [<bf0186a0>] (zram_bvec_rw.isra.4+0x4b4/0x5b8 [zram]) from 
[<bf018c20>] (zram_make_request+0x178/0x244 [zram])
[  205.542304] [<bf018c20>] (zram_make_request+0x178/0x244 [zram]) from 
[<c0242490>] (generic_make_request+0x46c/0x504)
[  205.552816] [<c0242490>] (generic_make_request+0x46c/0x504) from 
[<c024264c>] (submit_bio+0x124/0x164)
[  205.562117] [<c024264c>] (submit_bio+0x124/0x164) from [<c012c37c>] 
(swap_writepage+0xfc/0x114)
[  205.570818] [<c012c37c>] (swap_writepage+0xfc/0x114) from [<c010fc50>] 
(shrink_page_list+0x3ec/0x810)
[  205.580030] [<c010fc50>] (shrink_page_list+0x3ec/0x810) from [<c011046c>] 
(shrink_inactive_list+0x1fc/0x3f4)
[  205.589846] [<c011046c>] (shrink_inactive_list+0x1fc/0x3f4) from 
[<c0110a50>] (shrink_zone+0x3ec/0x508)
[  205.599230] [<c0110a50>] (shrink_zone+0x3ec/0x508) from [<c01115f4>] 
(try_to_free_pages+0x188/0x434)
[  205.608364] [<c01115f4>] (try_to_free_pages+0x188/0x434) from [<c0106e10>] 
(__alloc_pages_nodemask+0x3f0/0x634)
[  205.618450] [<c0106e10>] (__alloc_pages_nodemask+0x3f0/0x634) from 
[<c02a0fc0>] (nvmap_alloc_pages_exact.constprop.4+0x4c/0x108)
[  205.630004] [<c02a0fc0>] (nvmap_alloc_pages_exact.constprop.4+0x4c/0x108) 
from [<c02a1150>] (handle_page_alloc.isra.3+0xd4/0x16c)
[  205.641644] [<c02a1150>] (handle_page_alloc.isra.3+0xd4/0x16c) from 
[<c02a1480>] (nvmap_alloc_handle_id+0x198/0x2c4)
[  205.652156] [<c02a1480>] (nvmap_alloc_handle_id+0x198/0x2c4) from 
[<c02a3184>] (nvmap_ioctl_alloc+0xa0/0xb8)
[  205.661974] [<c02a3184>] (nvmap_ioctl_alloc+0xa0/0xb8) from [<c029fd48>] 
(nvmap_ioctl+0x1b4/0x234)
[  205.670925] [<c029fd48>] (nvmap_ioctl+0x1b4/0x234) from [<c0146734>] 
(do_vfs_ioctl+0x4fc/0x570)
[  205.679615] [<c0146734>] (do_vfs_ioctl+0x4fc/0x570) from [<c0146808>] 
(sys_ioctl+0x60/0x84)
[  205.687971] [<c0146808>] (sys_ioctl+0x60/0x84) from [<c0053dc0>] 
(ret_fast_syscall+0x0/0x30)
[  205.696399] Code: e92dd800 e24cb004 e92d4000 e8bd4000 (e5903000) 
[  205.703172] ---[ end trace 679c2bb67298abde ]---

nvmap used alloc_vm_area which got a second paramter in newer kernels. I just 
replaced it with NULL, but that seems to be the wrong way. I don't want to 
bother you with boring details.

I booted without the xorg driver (so the kernel interface is not used) and got

Mar 12 21:20:28 ac100 kernel: [  118.264433] ------------[ cut here 
]------------
Mar 12 21:20:28 ac100 kernel: [  118.264523] WARNING: at 
/home/marc/ac100/marvin24s-kernel/drivers/staging/zcache/zcache-main.c:755 
zcache_pampd_get_data+0x88/0x14c()
Mar 12 21:20:28 ac100 kernel: [  118.264586] Modules linked in: nls_iso8859_1 
nls_cp437 vfat fat fuse zram(C) snd_soc_alc5632 snd_seq_dummy rt2800usb 
rt2800lib rt2x00usb rt2x00lib snd_soc_tegra_alc5632 mac80211 snd_seq_oss 
snd_soc_tegra_pcm snd_soc_tegra_i2s snd_seq_midi_event snd_soc_tegra_das 
snd_soc_core snd_pcm_oss snd_mixer_oss uvcvideo videodev cfg80211 tegra_wdt 
snd_seq cdc_ether usbnet snd_pcm cdc_wdm cdc_acm mii snd_seq_device lm90 
snd_timer snd soundcore snd_page_alloc snd_soc_tegra_utils
Mar 12 21:20:28 ac100 kernel: [  118.265176] [<c005acac>] 
(unwind_backtrace+0x0/0xec) from [<c0444314>] (dump_stack+0x20/0x24)
Mar 12 21:20:28 ac100 kernel: [  118.265290] [<c0444314>] 
(dump_stack+0x20/0x24) from [<c00860bc>] (warn_slowpath_common+0x5c/0x74)
Mar 12 21:20:28 ac100 kernel: [  118.265385] [<c00860bc>] 
(warn_slowpath_common+0x5c/0x74) from [<c0086100>] 
(warn_slowpath_null+0x2c/0x34)
Mar 12 21:20:28 ac100 kernel: [  118.265474] [<c0086100>] 
(warn_slowpath_null+0x2c/0x34) from [<c035ed9c>] 
(zcache_pampd_get_data+0x88/0x14c)
Mar 12 21:20:28 ac100 kernel: [  118.265566] [<c035ed9c>] 
(zcache_pampd_get_data+0x88/0x14c) from [<c0361028>] (tmem_get+0x160/0x19c)
Mar 12 21:20:28 ac100 kernel: [  118.265651] [<c0361028>] 
(tmem_get+0x160/0x19c) from [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8)
Mar 12 21:20:28 ac100 kernel: [  118.265737] [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8) from [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0)
Mar 12 21:20:28 ac100 kernel: [  118.265843] [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0) from [<c013037c>] 
(__frontswap_get_page+0x90/0xd8)
Mar 12 21:20:28 ac100 kernel: [  118.265934] [<c013037c>] 
(__frontswap_get_page+0x90/0xd8) from [<c012c3d8>] (swap_readpage+0x44/0xdc)
Mar 12 21:20:28 ac100 kernel: [  118.266020] [<c012c3d8>] 
(swap_readpage+0x44/0xdc) from [<c012c9c8>] (read_swap_cache_async+0xc8/0x11c)
Mar 12 21:20:28 ac100 kernel: [  118.266106] [<c012c9c8>] 
(read_swap_cache_async+0xc8/0x11c) from [<c012cab0>] 
(swapin_readahead+0x94/0x9c)
Mar 12 21:20:28 ac100 kernel: [  118.266204] [<c012cab0>] 
(swapin_readahead+0x94/0x9c) from [<c011ff20>] (handle_pte_fault+0x2f4/0x6c4)
Mar 12 21:20:28 ac100 kernel: [  118.266292] [<c011ff20>] 
(handle_pte_fault+0x2f4/0x6c4) from [<c01203a8>] (handle_mm_fault+0xb8/0xd0)
Mar 12 21:20:28 ac100 kernel: [  118.266382] [<c01203a8>] 
(handle_mm_fault+0xb8/0xd0) from [<c005f114>] (do_page_fault+0xf8/0x28c)
Mar 12 21:20:28 ac100 kernel: [  118.266483] [<c005f114>] 
(do_page_fault+0xf8/0x28c) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:28 ac100 kernel: [  118.266588] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c0053d64>] (ret_from_exception+0x0/0x10)
Mar 12 21:20:28 ac100 kernel: [  118.266645] Exception stack(0xdb86dfb0 to 
0xdb86dff8)
Mar 12 21:20:28 ac100 kernel: [  118.266697] dfa0:                                     
b6f4cf68 b6f4e658 00000001 b6f4cee8
Mar 12 21:20:28 ac100 kernel: [  118.266769] dfc0: 00000011 b6f4c8e8 b6f806ac 
b6f4b9c0 00000001 b6f4b988 bec64998 00000011
Mar 12 21:20:28 ac100 kernel: [  118.266835] dfe0: b6f4cf68 bec64948 b6f2fc07 
b6f2fc66 200f0030 ffffffff
Mar 12 21:20:28 ac100 kernel: [  118.266885] ---[ end trace 3a9bf99eb36a0d77 
]---
Mar 12 21:20:28 ac100 kernel: [  118.266940] kernel BUG at 
/home/marc/ac100/marvin24s-kernel/drivers/staging/zcache/zcache-main.c:761!
Mar 12 21:20:28 ac100 kernel: [  118.276268] Unable to handle kernel NULL 
pointer dereference at virtual address 00000000
Mar 12 21:20:28 ac100 kernel: [  118.284396] pgd = db2b4000
Mar 12 21:20:28 ac100 kernel: [  118.287123] [00000000] *pgd=00000000
Mar 12 21:20:28 ac100 kernel: [  118.290746] Internal error: Oops: 805 [#1] 
SMP
Mar 12 21:20:28 ac100 kernel: [  118.295212] Modules linked in: nls_iso8859_1 
nls_cp437 vfat fat fuse zram(C) snd_soc_alc5632 snd_seq_dummy rt2800usb 
rt2800lib rt2x00usb rt2x00lib snd_soc_tegra_alc5632 mac80211 snd_seq_oss 
snd_soc_tegra_pcm snd_soc_tegra_i2s snd_seq_midi_event snd_soc_tegra_das 
snd_soc_core snd_pcm_oss snd_mixer_oss uvcvideo videodev cfg80211 tegra_wdt 
snd_seq cdc_ether usbnet snd_pcm cdc_wdm cdc_acm mii snd_seq_device lm90 
snd_timer snd soundcore snd_page_alloc snd_soc_tegra_utils
Mar 12 21:20:28 ac100 kernel: [  118.337316] CPU: 1    Tainted: G        WC   
(3.0.19 #29)
Mar 12 21:20:28 ac100 kernel: [  118.342765] PC is at __bug+0x2c/0x38
Mar 12 21:20:28 ac100 kernel: [  118.346387] LR is at 
console_unlock+0x1ac/0x1c8
Mar 12 21:20:28 ac100 kernel: [  118.350958] pc : [<c00576bc>]    lr : 
[<c0086c70>]    psr: 600f0193
Mar 12 21:20:28 ac100 kernel: [  118.350985] sp : db86dc50  ip : db86db68  fp 
: db86dc5c
Mar 12 21:20:28 ac100 kernel: [  118.362488] r10: 00000001  r9 : 00000000  r8 
: 00000018
Mar 12 21:20:28 ac100 kernel: [  118.367744] r7 : ffffffea  r6 : 0ca61001  r5 : 
d572b000  r4 : c06a8304
Mar 12 21:20:28 ac100 kernel: [  118.374302] r3 : 00000000  r2 : 271aed0f  r1 
: 00000001  r0 : 0000006f
Mar 12 21:20:28 ac100 kernel: [  118.380864] Flags: nZCv  IRQs off  FIQs on  
Mode SVC_32  ISA ARM  Segment user
Mar 12 21:20:28 ac100 kernel: [  118.388122] Control: 10c5387d  Table: 
1b2b404a  DAC: 00000015
Mar 12 21:20:28 ac100 kernel: [  118.393901] Process init (pid: 1, stack limit 
= 0xdb86c2f8)
Mar 12 21:20:28 ac100 kernel: [  118.399503] Stack: (0xdb86dc50 to 0xdb86e000)
Mar 12 21:20:28 ac100 kernel: [  118.403898] dc40:                                     
db86dc8c db86dc60 c035ed80 c005769c
Mar 12 21:20:28 ac100 kernel: [  118.412128] dc60: db86dc6c c0104dd8 00000000 
00001000 db86dd18 daed1794 daed1000 0ca61001
Mar 12 21:20:28 ac100 kernel: [  118.420359] dc80: db86dcd4 db86dc90 c0361028 
c035ed20 daed1000 db86dd18 00000018 00000000
Mar 12 21:20:28 ac100 kernel: [  118.428586] dca0: 00000000 c095c560 ffffffff 
000f0113 daed1000 db86dd18 c095c560 00000018
Mar 12 21:20:28 ac100 kernel: [  118.436813] dcc0: 00000000 00000000 db86dd14 
db86dcd8 c035fc98 c0360ed4 db86dcec 00000000
Mar 12 21:20:28 ac100 kernel: [  118.445038] dce0: 00000000 000200da 00000000 
00001000 00000000 c095c560 0000183f 0000003f
Mar 12 21:20:28 ac100 kernel: [  118.453266] dd00: 000000d0 c095c560 db86dd64 
db86dd18 c035fd9c c035fc18 0000003f 00000000
Mar 12 21:20:28 ac100 kernel: [  118.461488] dd20: 00000000 00000000 00000000 
00000000 00000000 00000000 00000000 00000000
Mar 12 21:20:28 ac100 kernel: [  118.469716] dd40: 00000000 00000000 c05f9798 
effffff0 000000c1 000200da db86dd7c db86dd68
Mar 12 21:20:28 ac100 kernel: [  118.477944] dd60: c013037c c035fd18 c095c560 
00000000 db86dd94 db86dd80 c012c3d8 c01302f8
Mar 12 21:20:28 ac100 kernel: [  118.486171] dd80: 0000183f 00000000 db86ddc4 
db86dd98 c012c9c8 c012c3a0 b6f4e000 db2f5498
Mar 12 21:20:28 ac100 kernel: [  118.494399] dda0: 000200da 0000183f b6f4e000 
db2f4d40 00000000 00000000 db86ddf4 db86ddc8
Mar 12 21:20:28 ac100 kernel: [  118.502628] ddc0: c012cab0 c012c90c c0699498 
db2f4d40 db2f4d40 db2b4000 db2f5498 b6f4e000
Mar 12 21:20:28 ac100 kernel: [  118.510857] dde0: 00000000 00307e00 db86de44 
db86ddf8 c011ff20 c012ca28 00000000 c00d5918
Mar 12 21:20:28 ac100 kernel: [  118.519086] de00: c05d0020 db3ec580 db2f4d74 
db2f4d74 0000184e 0000183f db86de34 b6f4e000
Mar 12 21:20:28 ac100 kernel: [  118.527316] de20: db2b4000 000005b7 db2b6db8 
db2f4d40 db2f5498 00000000 db86de7c db86de48
Mar 12 21:20:28 ac100 kernel: [  118.535544] de40: c01203a8 c011fc38 db2b6db8 
00000000 c025bf1c db2f5498 db86dfb0 db857a80
Mar 12 21:20:28 ac100 kernel: [  118.543774] de60: b6f4e670 db2f4d40 db2f4d78 
00000017 db86df04 db86de80 c005f114 c01202fc
Mar 12 21:20:28 ac100 kernel: [  118.552001] de80: db86df70 00000000 00000000 
db86df58 db86df3c db86dea0 c01356b0 c013e99c
Mar 12 21:20:28 ac100 kernel: [  118.560223] dea0: 00000000 00000000 00000000 
00000000 00000000 00000000 001a2000 00000000
Mar 12 21:20:28 ac100 kernel: [  118.568449] dec0: 05802400 00000000 00001198 
00000000 00004ccd 00000000 0091aee5 00000017
Mar 12 21:20:28 ac100 kernel: [  118.576678] dee0: c05e4dec b6f4e670 db86dfb0 
00000001 b6f4b988 bec64998 db86dfac db86df08
Mar 12 21:20:28 ac100 kernel: [  118.584909] df00: c004e170 c005f028 db86df58 
db857a80 db86df54 db86df20 c0089b14 c00a5f18
Mar 12 21:20:28 ac100 kernel: [  118.593134] df20: bec64c24 00000001 00000001 
bec649d0 00000000 00000003 00000000 c008aa50
Mar 12 21:20:28 ac100 kernel: [  118.601362] df40: 00000000 bec649d0 db86dfa4 
db86df58 c008aa50 c00a2394 00000003 0000000f
Mar 12 21:20:28 ac100 kernel: [  118.609590] df60: 00000000 bec649d0 00000000 
00000000 00000000 db857a80 c0088748 00100100
Mar 12 21:20:28 ac100 kernel: [  118.617817] df80: 00200200 00000000 00000000 
0000000f ffffffff b6f4c8e8 b6f806ac b6f4b9c0
Mar 12 21:20:28 ac100 kernel: [  118.626044] dfa0: 00000000 db86dfb0 c0053d64 
c004e138 b6f4cf68 b6f4e658 00000001 b6f4cee8
Mar 12 21:20:28 ac100 kernel: [  118.634273] dfc0: 00000011 b6f4c8e8 b6f806ac 
b6f4b9c0 00000001 b6f4b988 bec64998 00000011
Mar 12 21:20:28 ac100 kernel: [  118.642503] dfe0: b6f4cf68 bec64948 b6f2fc07 
b6f2fc66 200f0030 ffffffff 86950214 104188c8
Mar 12 21:20:28 ac100 kernel: [  118.650758] [<c00576bc>] (__bug+0x2c/0x38) 
from [<c035ed80>] (zcache_pampd_get_data+0x6c/0x14c)
Mar 12 21:20:28 ac100 kernel: [  118.659532] [<c035ed80>] 
(zcache_pampd_get_data+0x6c/0x14c) from [<c0361028>] (tmem_get+0x160/0x19c)
Mar 12 21:20:28 ac100 kernel: [  118.668733] [<c0361028>] 
(tmem_get+0x160/0x19c) from [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8)
Mar 12 21:20:28 ac100 kernel: [  118.678449] [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8) from [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0)
Mar 12 21:20:28 ac100 kernel: [  118.689483] [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0) from [<c013037c>] 
(__frontswap_get_page+0x90/0xd8)
Mar 12 21:20:28 ac100 kernel: [  118.699814] [<c013037c>] 
(__frontswap_get_page+0x90/0xd8) from [<c012c3d8>] (swap_readpage+0x44/0xdc)
Mar 12 21:20:28 ac100 kernel: [  118.709100] [<c012c3d8>] 
(swap_readpage+0x44/0xdc) from [<c012c9c8>] (read_swap_cache_async+0xc8/0x11c)
Mar 12 21:20:28 ac100 kernel: [  118.718560] [<c012c9c8>] 
(read_swap_cache_async+0xc8/0x11c) from [<c012cab0>] 
(swapin_readahead+0x94/0x9c)
Mar 12 21:20:28 ac100 kernel: [  118.728282] [<c012cab0>] 
(swapin_readahead+0x94/0x9c) from [<c011ff20>] (handle_pte_fault+0x2f4/0x6c4)
Mar 12 21:20:28 ac100 kernel: [  118.737654] [<c011ff20>] 
(handle_pte_fault+0x2f4/0x6c4) from [<c01203a8>] (handle_mm_fault+0xb8/0xd0)
Mar 12 21:20:28 ac100 kernel: [  118.746939] [<c01203a8>] 
(handle_mm_fault+0xb8/0xd0) from [<c005f114>] (do_page_fault+0xf8/0x28c)
Mar 12 21:20:28 ac100 kernel: [  118.755884] [<c005f114>] 
(do_page_fault+0xf8/0x28c) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:28 ac100 kernel: [  118.764574] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c0053d64>] (ret_from_exception+0x0/0x10)
Mar 12 21:20:28 ac100 kernel: [  118.773481] Exception stack(0xdb86dfb0 to 
0xdb86dff8)
Mar 12 21:20:28 ac100 kernel: [  118.778571] dfa0:                                     
b6f4cf68 b6f4e658 00000001 b6f4cee8
Mar 12 21:20:28 ac100 kernel: [  118.786802] dfc0: 00000011 b6f4c8e8 b6f806ac 
b6f4b9c0 00000001 b6f4b988 bec64998 00000011
Mar 12 21:20:28 ac100 kernel: [  118.795026] dfe0: b6f4cf68 bec64948 b6f2fc07 
b6f2fc66 200f0030 ffffffff
Mar 12 21:20:28 ac100 kernel: [  118.801690] Code: e59f0010 e1a01003 eb0fb47d 
e3a03000 (e5833000) 
Mar 12 21:20:28 ac100 kernel: [  118.808264] ---[ end trace 3a9bf99eb36a0d78 
]---
Mar 12 21:20:28 ac100 kernel: [  118.826844] ------------[ cut here 
]------------
Mar 12 21:20:28 ac100 kernel: [  118.831491] WARNING: at 
/home/marc/ac100/marvin24s-kernel/drivers/staging/zcache/zcache-main.c:732 
zcache_pampd_free+0x90/0x14c()
Mar 12 21:20:28 ac100 kernel: [  118.843128] Modules linked in: nls_iso8859_1 
nls_cp437 vfat fat fuse zram(C) snd_soc_alc5632 snd_seq_dummy rt2800usb 
rt2800lib rt2x00usb rt2x00lib snd_soc_tegra_alc5632 mac80211 snd_seq_oss 
snd_soc_tegra_pcm snd_soc_tegra_i2s snd_seq_midi_event snd_soc_tegra_das 
snd_soc_core snd_pcm_oss snd_mixer_oss uvcvideo videodev cfg80211 tegra_wdt 
snd_seq cdc_ether usbnet snd_pcm cdc_wdm cdc_acm mii snd_seq_device lm90 
snd_timer snd soundcore snd_page_alloc snd_soc_tegra_utils
Mar 12 21:20:28 ac100 kernel: [  118.884648] [<c005acac>] 
(unwind_backtrace+0x0/0xec) from [<c0444314>] (dump_stack+0x20/0x24)
Mar 12 21:20:28 ac100 kernel: [  118.893177] [<c0444314>] 
(dump_stack+0x20/0x24) from [<c00860bc>] (warn_slowpath_common+0x5c/0x74)
Mar 12 21:20:28 ac100 kernel: [  118.902131] [<c00860bc>] 
(warn_slowpath_common+0x5c/0x74) from [<c0086100>] 
(warn_slowpath_null+0x2c/0x34)
Mar 12 21:20:28 ac100 kernel: [  118.911784] [<c0086100>] 
(warn_slowpath_null+0x2c/0x34) from [<c035ea90>] 
(zcache_pampd_free+0x90/0x14c)
Mar 12 21:20:28 ac100 kernel: [  118.921259] [<c035ea90>] 
(zcache_pampd_free+0x90/0x14c) from [<c03610f0>] (tmem_flush_page+0x8c/0xe8)
Mar 12 21:20:28 ac100 kernel: [  118.930470] [<c03610f0>] 
(tmem_flush_page+0x8c/0xe8) from [<c035fe18>] 
(zcache_flush_page.constprop.17+0x6c/0x9c)
Mar 12 21:20:28 ac100 kernel: [  118.940720] [<c035fe18>] 
(zcache_flush_page.constprop.17+0x6c/0x9c) from [<c035ff0c>] 
(zcache_frontswap_flush_page+0x70/0x7c)
Mar 12 21:20:28 ac100 kernel: [  118.952020] [<c035ff0c>] 
(zcache_frontswap_flush_page+0x70/0x7c) from [<c0130440>] 
(__frontswap_invalidate_page+0x7c/0xe4)
Mar 12 21:20:28 ac100 kernel: [  118.963055] [<c0130440>] 
(__frontswap_invalidate_page+0x7c/0xe4) from [<c012d38c>] 
(swap_entry_free+0x11c/0x158)
Mar 12 21:20:28 ac100 kernel: [  118.973220] [<c012d38c>] 
(swap_entry_free+0x11c/0x158) from [<c012ed70>] 
(free_swap_and_cache+0x30/0xfc)
Mar 12 21:20:28 ac100 kernel: [  118.982695] [<c012ed70>] 
(free_swap_and_cache+0x30/0xfc) from [<c011f02c>] (unmap_vmas+0x3b4/0x5ac)
Mar 12 21:20:28 ac100 kernel: [  118.991736] [<c011f02c>] 
(unmap_vmas+0x3b4/0x5ac) from [<c0123614>] (exit_mmap+0x13c/0x254)
Mar 12 21:20:28 ac100 kernel: [  119.000081] [<c0123614>] 
(exit_mmap+0x13c/0x254) from [<c0083b38>] (mmput+0x54/0x11c)
Mar 12 21:20:28 ac100 kernel: [  119.007908] [<c0083b38>] (mmput+0x54/0x11c) 
from [<c0088488>] (exit_mm+0x16c/0x178)
Mar 12 21:20:28 ac100 kernel: [  119.015573] [<c0088488>] 
(exit_mm+0x16c/0x178) from [<c008a088>] (do_exit+0x218/0x710)
Mar 12 21:20:28 ac100 kernel: [  119.023489] [<c008a088>] 
(do_exit+0x218/0x710) from [<c0057c8c>] (die+0x2e0/0x338)
Mar 12 21:20:28 ac100 kernel: [  119.031057] [<c0057c8c>] (die+0x2e0/0x338) 
from [<c04443bc>] (__do_kernel_fault.part.3+0x64/0x84)
Mar 12 21:20:28 ac100 kernel: [  119.039925] [<c04443bc>] 
(__do_kernel_fault.part.3+0x64/0x84) from [<c005f28c>] 
(do_page_fault+0x270/0x28c)
Mar 12 21:20:28 ac100 kernel: [  119.049656] [<c005f28c>] 
(do_page_fault+0x270/0x28c) from [<c005f364>] (do_translation_fault+0x2c/0xb0)
Mar 12 21:20:28 ac100 kernel: [  119.059046] [<c005f364>] 
(do_translation_fault+0x2c/0xb0) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:28 ac100 kernel: [  119.068175] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c005392c>] (__dabt_svc+0x4c/0x60)
Mar 12 21:20:28 ac100 kernel: [  119.076427] Exception stack(0xdb86dc08 to 
0xdb86dc50)
Mar 12 21:20:28 ac100 kernel: [  119.081470] dc00:                   0000006f 
00000001 271aed0f 00000000 c06a8304 d572b000
Mar 12 21:20:28 ac100 kernel: [  119.089637] dc20: 0ca61001 ffffffea 00000018 
00000000 00000001 db86dc5c db86db68 db86dc50
Mar 12 21:20:28 ac100 kernel: [  119.097800] dc40: c0086c70 c00576bc 600f0193 
ffffffff
Mar 12 21:20:28 ac100 kernel: [  119.102849] [<c005392c>] 
(__dabt_svc+0x4c/0x60) from [<c00576bc>] (__bug+0x2c/0x38)
Mar 12 21:20:28 ac100 kernel: [  119.110498] [<c00576bc>] (__bug+0x2c/0x38) 
from [<c035ed80>] (zcache_pampd_get_data+0x6c/0x14c)
Mar 12 21:20:28 ac100 kernel: [  119.119189] [<c035ed80>] 
(zcache_pampd_get_data+0x6c/0x14c) from [<c0361028>] (tmem_get+0x160/0x19c)
Mar 12 21:20:28 ac100 kernel: [  119.128313] [<c0361028>] 
(tmem_get+0x160/0x19c) from [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8)
Mar 12 21:20:28 ac100 kernel: [  119.137957] [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8) from [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0)
Mar 12 21:20:28 ac100 kernel: [  119.148904] [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0) from [<c013037c>] 
(__frontswap_get_page+0x90/0xd8)
Mar 12 21:20:28 ac100 kernel: [  119.159156] [<c013037c>] 
(__frontswap_get_page+0x90/0xd8) from [<c012c3d8>] (swap_readpage+0x44/0xdc)
Mar 12 21:20:28 ac100 kernel: [  119.168368] [<c012c3d8>] 
(swap_readpage+0x44/0xdc) from [<c012c9c8>] (read_swap_cache_async+0xc8/0x11c)
Mar 12 21:20:28 ac100 kernel: [  119.177753] [<c012c9c8>] 
(read_swap_cache_async+0xc8/0x11c) from [<c012cab0>] 
(swapin_readahead+0x94/0x9c)
Mar 12 21:20:28 ac100 kernel: [  119.187398] [<c012cab0>] 
(swapin_readahead+0x94/0x9c) from [<c011ff20>] (handle_pte_fault+0x2f4/0x6c4)
Mar 12 21:20:28 ac100 kernel: [  119.196696] [<c011ff20>] 
(handle_pte_fault+0x2f4/0x6c4) from [<c01203a8>] (handle_mm_fault+0xb8/0xd0)
Mar 12 21:20:28 ac100 kernel: [  119.205905] [<c01203a8>] 
(handle_mm_fault+0xb8/0xd0) from [<c005f114>] (do_page_fault+0xf8/0x28c)
Mar 12 21:20:28 ac100 kernel: [  119.214769] [<c005f114>] 
(do_page_fault+0xf8/0x28c) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:28 ac100 kernel: [  119.223375] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c0053d64>] (ret_from_exception+0x0/0x10)
Mar 12 21:20:28 ac100 kernel: [  119.232231] Exception stack(0xdb86dfb0 to 
0xdb86dff8)
Mar 12 21:20:28 ac100 kernel: [  119.237273] dfa0:                                     
b6f4cf68 b6f4e658 00000001 b6f4cee8
Mar 12 21:20:28 ac100 kernel: [  119.245441] dfc0: 00000011 b6f4c8e8 b6f806ac 
b6f4b9c0 00000001 b6f4b988 bec64998 00000011
Mar 12 21:20:28 ac100 kernel: [  119.253606] dfe0: b6f4cf68 bec64948 b6f2fc07 
b6f2fc66 200f0030 ffffffff
Mar 12 21:20:28 ac100 kernel: [  119.260209] ---[ end trace 3a9bf99eb36a0d79 
]---
Mar 12 21:20:28 ac100 kernel: [  119.264943] ------------[ cut here 
]------------
Mar 12 21:20:29 ac100 kernel: [  119.269578] WARNING: at 
/home/marc/ac100/marvin24s-kernel/drivers/staging/zcache/zcache-main.c:732 
zcache_pampd_free+0x90/0x14c()
Mar 12 21:20:29 ac100 kernel: [  119.281213] Modules linked in: nls_iso8859_1 
nls_cp437 vfat fat fuse zram(C) snd_soc_alc5632 snd_seq_dummy rt2800usb 
rt2800lib rt2x00usb rt2x00lib snd_soc_tegra_alc5632 mac80211 snd_seq_oss 
snd_soc_tegra_pcm snd_soc_tegra_i2s snd_seq_midi_event snd_soc_tegra_das 
snd_soc_core snd_pcm_oss snd_mixer_oss uvcvideo videodev cfg80211 tegra_wdt 
snd_seq cdc_ether usbnet snd_pcm cdc_wdm cdc_acm mii snd_seq_device lm90 
snd_timer snd soundcore snd_page_alloc snd_soc_tegra_utils
Mar 12 21:20:29 ac100 kernel: [  119.322726] [<c005acac>] 
(unwind_backtrace+0x0/0xec) from [<c0444314>] (dump_stack+0x20/0x24)
Mar 12 21:20:29 ac100 kernel: [  119.331253] [<c0444314>] 
(dump_stack+0x20/0x24) from [<c00860bc>] (warn_slowpath_common+0x5c/0x74)
Mar 12 21:20:29 ac100 kernel: [  119.340205] [<c00860bc>] 
(warn_slowpath_common+0x5c/0x74) from [<c0086100>] 
(warn_slowpath_null+0x2c/0x34)
Mar 12 21:20:29 ac100 kernel: [  119.349855] [<c0086100>] 
(warn_slowpath_null+0x2c/0x34) from [<c035ea90>] 
(zcache_pampd_free+0x90/0x14c)
Mar 12 21:20:29 ac100 kernel: [  119.359329] [<c035ea90>] 
(zcache_pampd_free+0x90/0x14c) from [<c03610f0>] (tmem_flush_page+0x8c/0xe8)
Mar 12 21:20:29 ac100 kernel: [  119.368540] [<c03610f0>] 
(tmem_flush_page+0x8c/0xe8) from [<c035fe18>] 
(zcache_flush_page.constprop.17+0x6c/0x9c)
Mar 12 21:20:29 ac100 kernel: [  119.378794] [<c035fe18>] 
(zcache_flush_page.constprop.17+0x6c/0x9c) from [<c035ff0c>] 
(zcache_frontswap_flush_page+0x70/0x7c)
Mar 12 21:20:29 ac100 kernel: [  119.390096] [<c035ff0c>] 
(zcache_frontswap_flush_page+0x70/0x7c) from [<c0130440>] 
(__frontswap_invalidate_page+0x7c/0xe4)
Mar 12 21:20:29 ac100 kernel: [  119.401133] [<c0130440>] 
(__frontswap_invalidate_page+0x7c/0xe4) from [<c012d38c>] 
(swap_entry_free+0x11c/0x158)
Mar 12 21:20:29 ac100 kernel: [  119.411300] [<c012d38c>] 
(swap_entry_free+0x11c/0x158) from [<c012ed70>] 
(free_swap_and_cache+0x30/0xfc)
Mar 12 21:20:29 ac100 kernel: [  119.420774] [<c012ed70>] 
(free_swap_and_cache+0x30/0xfc) from [<c011f02c>] (unmap_vmas+0x3b4/0x5ac)
Mar 12 21:20:29 ac100 kernel: [  119.429815] [<c011f02c>] 
(unmap_vmas+0x3b4/0x5ac) from [<c0123614>] (exit_mmap+0x13c/0x254)
Mar 12 21:20:29 ac100 kernel: [  119.438161] [<c0123614>] 
(exit_mmap+0x13c/0x254) from [<c0083b38>] (mmput+0x54/0x11c)
Mar 12 21:20:29 ac100 kernel: [  119.445987] [<c0083b38>] (mmput+0x54/0x11c) 
from [<c0088488>] (exit_mm+0x16c/0x178)
Mar 12 21:20:29 ac100 kernel: [  119.453638] [<c0088488>] 
(exit_mm+0x16c/0x178) from [<c008a088>] (do_exit+0x218/0x710)
Mar 12 21:20:29 ac100 kernel: [  119.461549] [<c008a088>] 
(do_exit+0x218/0x710) from [<c0057c8c>] (die+0x2e0/0x338)
Mar 12 21:20:29 ac100 kernel: [  119.469113] [<c0057c8c>] (die+0x2e0/0x338) 
from [<c04443bc>] (__do_kernel_fault.part.3+0x64/0x84)
Mar 12 21:20:29 ac100 kernel: [  119.477982] [<c04443bc>] 
(__do_kernel_fault.part.3+0x64/0x84) from [<c005f28c>] 
(do_page_fault+0x270/0x28c)
Mar 12 21:20:29 ac100 kernel: [  119.487715] [<c005f28c>] 
(do_page_fault+0x270/0x28c) from [<c005f364>] (do_translation_fault+0x2c/0xb0)
Mar 12 21:20:29 ac100 kernel: [  119.497105] [<c005f364>] 
(do_translation_fault+0x2c/0xb0) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:29 ac100 kernel: [  119.506236] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c005392c>] (__dabt_svc+0x4c/0x60)
Mar 12 21:20:29 ac100 kernel: [  119.514486] Exception stack(0xdb86dc08 to 
0xdb86dc50)
Mar 12 21:20:29 ac100 kernel: [  119.519530] dc00:                   0000006f 
00000001 271aed0f 00000000 c06a8304 d572b000
Mar 12 21:20:29 ac100 kernel: [  119.527698] dc20: 0ca61001 ffffffea 00000018 
00000000 00000001 db86dc5c db86db68 db86dc50
Mar 12 21:20:29 ac100 kernel: [  119.535862] dc40: c0086c70 c00576bc 600f0193 
ffffffff
Mar 12 21:20:29 ac100 kernel: [  119.540910] [<c005392c>] 
(__dabt_svc+0x4c/0x60) from [<c00576bc>] (__bug+0x2c/0x38)
Mar 12 21:20:29 ac100 kernel: [  119.548560] [<c00576bc>] (__bug+0x2c/0x38) 
from [<c035ed80>] (zcache_pampd_get_data+0x6c/0x14c)
Mar 12 21:20:29 ac100 kernel: [  119.557251] [<c035ed80>] 
(zcache_pampd_get_data+0x6c/0x14c) from [<c0361028>] (tmem_get+0x160/0x19c)
Mar 12 21:20:29 ac100 kernel: [  119.566375] [<c0361028>] 
(tmem_get+0x160/0x19c) from [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8)
Mar 12 21:20:29 ac100 kernel: [  119.576018] [<c035fc98>] 
(zcache_get_page.constprop.16+0x8c/0xa8) from [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0)
Mar 12 21:20:29 ac100 kernel: [  119.586964] [<c035fd9c>] 
(zcache_frontswap_get_page+0x90/0xa0) from [<c013037c>] 
(__frontswap_get_page+0x90/0xd8)
Mar 12 21:20:29 ac100 kernel: [  119.597216] [<c013037c>] 
(__frontswap_get_page+0x90/0xd8) from [<c012c3d8>] (swap_readpage+0x44/0xdc)
Mar 12 21:20:29 ac100 kernel: [  119.606427] [<c012c3d8>] 
(swap_readpage+0x44/0xdc) from [<c012c9c8>] (read_swap_cache_async+0xc8/0x11c)
Mar 12 21:20:29 ac100 kernel: [  119.615812] [<c012c9c8>] 
(read_swap_cache_async+0xc8/0x11c) from [<c012cab0>] 
(swapin_readahead+0x94/0x9c)
Mar 12 21:20:29 ac100 kernel: [  119.625457] [<c012cab0>] 
(swapin_readahead+0x94/0x9c) from [<c011ff20>] (handle_pte_fault+0x2f4/0x6c4)
Mar 12 21:20:29 ac100 kernel: [  119.634755] [<c011ff20>] 
(handle_pte_fault+0x2f4/0x6c4) from [<c01203a8>] (handle_mm_fault+0xb8/0xd0)
Mar 12 21:20:29 ac100 kernel: [  119.643966] [<c01203a8>] 
(handle_mm_fault+0xb8/0xd0) from [<c005f114>] (do_page_fault+0xf8/0x28c)
Mar 12 21:20:29 ac100 kernel: [  119.652830] [<c005f114>] 
(do_page_fault+0xf8/0x28c) from [<c004e170>] (do_DataAbort+0x44/0xa8)
Mar 12 21:20:29 ac100 kernel: [  119.661434] [<c004e170>] 
(do_DataAbort+0x44/0xa8) from [<c0053d64>] (ret_from_exception+0x0/0x10)
Mar 12 21:20:29 ac100 kernel: [  119.670289] Exception stack(0xdb86dfb0 to 
0xdb86dff8)
Mar 12 21:20:29 ac100 kernel: [  119.675331] dfa0:                                     
b6f4cf68 b6f4e658 00000001 b6f4cee8
Mar 12 21:20:29 ac100 kernel: [  119.683497] dfc0: 00000011 b6f4c8e8 b6f806ac 
b6f4b9c0 00000001 b6f4b988 bec64998 00000011
Mar 12 21:20:29 ac100 kernel: [  119.691661] dfe0: b6f4cf68 bec64948 b6f2fc07 
b6f2fc66 200f0030 ffffffff
Mar 12 21:20:29 ac100 kernel: [  119.698262] ---[ end trace 3a9bf99eb36a0d7a 
]---

It's possible that the 3.0 doesn't like the driver from linux-next, but maybe 
you have some other idea.

Thanks!

Marc