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

Marc Dietrich
2012-03-12T20:26:56Z

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