RE: [PATCH V2 0/3] drivers/staging: zcache: dynamic page cache/swapcompression

From: Dan Magenheimer
Date: Tue Feb 15 2011 - 20:30:27 EST


> -----Original Message-----
> From: Matt [mailto:jackdachef@xxxxxxxxx]
> Sent: Tuesday, February 15, 2011 5:12 PM
> To: Minchan Kim
> Cc: Dan Magenheimer; gregkh@xxxxxxx; Chris Mason; linux-
> kernel@xxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; ngupta@xxxxxxxxxx; linux-
> btrfs@xxxxxxxxxxxxxxx; Josef Bacik; Dan Rosenberg; Yan Zheng;
> miaox@xxxxxxxxxxxxxx; Li Zefan
> Subject: Re: [PATCH V2 0/3] drivers/staging: zcache: dynamic page
> cache/swap compression
>
> On Mon, Feb 14, 2011 at 4:35 AM, Minchan Kim <minchan.kim@xxxxxxxxx>
> wrote:
> > On Mon, Feb 14, 2011 at 10:29 AM, Matt <jackdachef@xxxxxxxxx> wrote:
> >> On Mon, Feb 14, 2011 at 1:24 AM, Matt <jackdachef@xxxxxxxxx> wrote:
> >>> On Mon, Feb 14, 2011 at 12:08 AM, Matt <jackdachef@xxxxxxxxx>
> wrote:
> >>>> On Wed, Feb 9, 2011 at 1:03 AM, Dan Magenheimer
> >>>> <dan.magenheimer@xxxxxxxxxx> wrote:
> >>>> [snip]
> >>>>>
> >>>>> If I've missed anything important, please let me know!
> >>>>>
> >>>>> Thanks again!
> >>>>> Dan
> >>>>>
> >>>>
> >>>> Hi Dan,
> >>>>
> >>>> thank you so much for answering my email in such detail !
> >>>>
> >>>> I shall pick up on that mail in my next email sending to the
> mailing list :)
> >>>>
> >>>>
> >>>> currently I've got a problem with btrfs which seems to get
> triggered
> >>>> by cleancache get-operations:
> >>>>
> >>>>
> >>>> Feb 14 00:37:19 lupus kernel: [ 2831.297377] device fsid
> >>>> 354120c992a00761-5fa07d400126a895 devid 1 transid 7
> >>>> /dev/mapper/portage
> >>>> Feb 14 00:37:19 lupus kernel: [ 2831.297698] btrfs: enabling disk
> space caching
> >>>> Feb 14 00:37:19 lupus kernel: [ 2831.297700] btrfs: force lzo
> compression
> >>>> Feb 14 00:37:19 lupus kernel: [ 2831.315844] zcache: created
> ephemeral
> >>>> tmem pool, id=3
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853188] BUG: unable to handle
> >>>> kernel paging request at 0000000001400050
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853219] IP:
> [<ffffffff8133ef1b>]
> >>>> btrfs_encode_fh+0x2b/0x120
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853242] PGD 0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853251] Oops: 0000 [#1]
> PREEMPT SMP
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853275] last sysfs file:
> >>>> /sys/devices/platform/coretemp.3/temp1_input
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853295] CPU 4
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853303] Modules linked in:
> radeon
> >>>> ttm drm_kms_helper cfbcopyarea cfbimgblt cfbfillrect ipt_REJECT
> >>>> ipt_LOG xt_limit xt_tcpudp xt_state nf_nat_irc nf_conntrack_irc
> >>>> nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4
> nf_conntrack_ftp
> >>>> iptable_filter ipt_addrtype xt_DSCP xt_dscp xt_iprange ip_tables
> >>>> ip6table_filter xt_NFQUEUE xt_owner xt_hashlimit xt_conntrack
> xt_mark
> >>>> xt_multiport xt_connmark nf_conntrack xt_string ip6_tables
> x_tables
> >>>> it87 hwmon_vid coretemp snd_seq_dummy snd_seq_oss
> snd_seq_midi_event
> >>>> snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss
> snd_hda_codec_hdmi
> >>>> snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep
> snd_pcm
> >>>> snd_timer snd soundcore i2c_i801 wmi e1000e shpchp snd_page_alloc
> >>>> libphy e1000 scsi_wait_scan sl811_hcd ohci_hcd ssb usb_storage
> >>>> ehci_hcd [last unloaded: tg3]
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853682]
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853690] Pid: 11394, comm:
> >>>> btrfs-transacti Not tainted 2.6.37-plus_v16_zcache #4 FMP55/ipower
> >>>> G3710
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853725] RIP:
> >>>> 0010:[<ffffffff8133ef1b>]  [<ffffffff8133ef1b>]
> >>>> btrfs_encode_fh+0x2b/0x120
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853751] RSP:
> >>>> 0018:ffff880129a11b00  EFLAGS: 00010246
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853767] RAX: 00000000000000ff
> >>>> RBX: ffff88014a1ce628 RCX: 0000000000000000
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853788] RDX: ffff880129a11b3c
> >>>> RSI: ffff880129a11b70 RDI: 0000000000000006
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853808] RBP: 0000000001400000
> >>>> R08: ffffffff8133eef0 R09: ffff880129a11c68
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853829] R10: 0000000000000001
> >>>> R11: 0000000000000001 R12: ffff88014a1ce780
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853849] R13: ffff88021fefc000
> >>>> R14: ffff88021fef9000 R15: 0000000000000000
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853870] FS:
> >>>> 0000000000000000(0000) GS:ffff8800bf500000(0000)
> >>>> knlGS:0000000000000000
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853894] CS:  0010 DS: 0000
> ES:
> >>>> 0000 CR0: 000000008005003b
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853911] CR2: 0000000001400050
> >>>> CR3: 0000000001c27000 CR4: 00000000000006e0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853932] DR0: 0000000000000000
> >>>> DR1: 0000000000000000 DR2: 0000000000000000
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853952] DR3: 0000000000000000
> >>>> DR6: 00000000ffff0ff0 DR7: 0000000000000400
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853973] Process btrfs-
> transacti
> >>>> (pid: 11394, threadinfo ffff880129a10000, task ffff880202e4ac40)
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.853999] Stack:
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854006]  ffff880129a11b50
> >>>> ffff880000000003 ffff88003c60a098 0000000000000003
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854035]  ffffffffffffffff
> >>>> ffffffff810e6aaa 0000000000000000 0000000602e4ac40
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854063]  ffffffff8133e3f0
> >>>> ffffffff810e6cee 0000000000001000 0000000000000000
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854092] Call Trace:
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854103]  [<ffffffff810e6aaa>]
> ?
> >>>> cleancache_get_key+0x4a/0x60
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854122]  [<ffffffff8133e3f0>]
> ?
> >>>> btrfs_wake_function+0x0/0x20
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854140]  [<ffffffff810e6cee>]
> ?
> >>>> __cleancache_flush_inode+0x3e/0x70
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854161]  [<ffffffff810b34d2>]
> ?
> >>>> truncate_inode_pages_range+0x42/0x440
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854182]  [<ffffffff812f115e>]
> ?
> >>>> btrfs_search_slot+0x89e/0xa00
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854201]  [<ffffffff810c3a45>]
> ?
> >>>> unmap_mapping_range+0xc5/0x2a0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854220]  [<ffffffff810b3930>]
> ?
> >>>> truncate_pagecache+0x40/0x70
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854240]  [<ffffffff813458b1>]
> ?
> >>>> btrfs_truncate_free_space_cache+0x81/0xe0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854261]  [<ffffffff812fce15>]
> ?
> >>>> btrfs_write_dirty_block_groups+0x245/0x500
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854283]  [<ffffffff812fcb6a>]
> ?
> >>>> btrfs_run_delayed_refs+0x1ba/0x220
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854304]  [<ffffffff8130afff>]
> ?
> >>>> commit_cowonly_roots+0xff/0x1d0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854323]  [<ffffffff8130c583>]
> ?
> >>>> btrfs_commit_transaction+0x363/0x760
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854344]  [<ffffffff81067ea0>]
> ?
> >>>> autoremove_wake_function+0x0/0x30
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854364]  [<ffffffff81305bc3>]
> ?
> >>>> transaction_kthread+0x283/0x2a0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854383]  [<ffffffff81305940>]
> ?
> >>>> transaction_kthread+0x0/0x2a0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854401]  [<ffffffff81305940>]
> ?
> >>>> transaction_kthread+0x0/0x2a0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854420]  [<ffffffff81067a16>]
> ?
> >>>> kthread+0x96/0xa0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854437]  [<ffffffff81003514>]
> ?
> >>>> kernel_thread_helper+0x4/0x10
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854455]  [<ffffffff81067980>]
> ?
> >>>> kthread+0x0/0xa0
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854471]  [<ffffffff81003510>]
> ?
> >>>> kernel_thread_helper+0x0/0x10
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854488] Code: 55 b8 ff 00 00
> 00
> >>>> 53 48 89 fb 48 83 ec 18 48 8b 6f 10 8b 3a 83 ff 04 0f 86 d5 00 00
> 00
> >>>> 85 c9 0f 95 c1 83 ff 07 0f 86 d5 00 00 00 <48> 8b 45 50 bf 05 00
> 00 00
> >>>> 48 89 06 84 c9 48 8b 85 68 fe ff ff
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854742] RIP
>  [<ffffffff8133ef1b>]
> >>>> btrfs_encode_fh+0x2b/0x120
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854762]  RSP
> <ffff880129a11b00>
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.854773] CR2: 0000000001400050
> >>>> Feb 14 00:39:20 lupus kernel: [ 2951.860906] ---[ end trace
> >>>> f831c5ceeaa49287 ]---
> >>>>
> >>>> in my case I had compress-force with lzo and disk_cache enabled
> >>>>
> >>>>
> >>>> another user of the kernel I'm currently running has had the same
> >>>> problem with zcache
> >>>> (http://forums.gentoo.org/viewtopic-p-6571799.html#6571799)
> >>>>
> >>>> (looks like in his case compression and any other fancy additional
> >>>> features weren't enabled)
> >>>>
> >>>>
> >>>> changes made by this kernel or patchset to btrfs are from
> >>>> * io-less dirty throttling patchset (44 patches)
> >>>> * zcache V2 ("[PATCH] staging: zcache: fix memory leak" should be
> >>>> applied in both cases)
> >>>> * PATCH] fix (latent?) memory corruption in btrfs_encode_fh()
> >>>> * btrfs-unstable changes to state of
> >>>> 3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6 (so practically equals
> btrfs
> >>>> from 2.6.38-rc4+)
> >>>>
> >>>> I haven't tried downgrading to vanilla 2.6.37 with zcache only,
> yet,
> >>>>
> >>>> but kind of upgraded btrfs to the latest state of the btrfs-
> unstable
> >>>> repository
> (http://git.eu.kernel.org/?p=linux/kernel/git/mason/btrfs-
> unstable.git;a=summary)
> >>>> namely 3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6
> >>>>
> >>>> this also didn't help and seemed to produce the same error-message
> >>>>
> >>>> so to summarize:
> >>>>
> >>>> 1) error message appearing with all 4 patchsets applied changing
> >>>> btrfs-code and compress-force=lzo and disk_cache enabled
> >>>>
> >>>> 2) error message appearing with default mount-options and btrfs
> from
> >>>> 2.6.37 and changes for zcache & io-less dirty throttling patchset
> >>>> applied (first 2 patch(sets)) from list)
> >>>>
> >>>>
> >>>> in my case I tried to extract / play back a 1.7 GiB tarball of my
> >>>> portage-directory (lots of small files and some tar.bzip2
> archives)
> >>>> via pbzip2 or 7z when the error happened and the message was shown
> >>>>
> >>>> Due to KMS sound (webradio streaming) was still running but I
> couldn't
> >>>> continue work (X switching to kernel output) so I did the magic
> sysrq
> >>>> combo (reisub)
> >>>>
> >>>>
> >>>> Does that BUG message ring a bell for anyone ?
> >>>>
> >>>> (if I should leave out anyone from the CC in the next emails or
> >>>> future, please holler - I don't want to spam your inboxes)
> >>>>
> >>>> Thanks
> >>>>
> >>>> Matt
> >>>>
> >>>
> >>>
> >>> OK,
> >>>
> >>> here's the output of a kernel -
> >>>
> >>> staying as close to vanilla (2.6.37) as the current situation
> allows
> >>> (only including some corruption or leak fixes for zram & zcache and
> >>> "zram_xvmalloc: 64K page fixes and optimizations" (and 2 reiserfs
> >>> fixes)):
> >>>
> >>> so in total the following patches are included in this new kernel
> >>> (2.6.37-zcache):
> >>>
> >>> zram changes:
> >>> 1 zram: Fix sparse warning 'Using plain integer as NULL pointer'
> >>> 2 [PATCH] zram: fix data corruption issue
> >>> 3 [PATCH 0/7][v2] zram_xvmalloc: 64K page fixes and optimizations
> >>>
> >>> zcache:
> >>> 1 zcache-linux-2.6.37-110205
> >>> 2 [PATCH] staging: zcache: fix memory leak
> >>> 3 [PATCH] zcache: Fix build error when sysfs is not defined
> >>>
> >>> reiserfs:
> >>> 1 [PATCH] reiserfs: Make sure va_end() is always called after
> >>> 2 [patch] reiserfs: potential ERR_PTR dereference
> >>>
> >>>
> >>> the same procedure:
> >>>
> >>> trying to extract the mentioned portage-tarball:
> >>>
> >>> time (7z e -so -tbzip2 -mmt=5 /system/portage_backup_022011.tbz2 |
> tar
> >>> -xp -C /usr/gentoo/)
> >>>
> >>>
> >>> this hopefully should make it easier to track down the problem:
> >>>
> >>>
> >>> Feb 14 01:59:59 lupus kernel: [  364.777143] device fsid
> >>> 684a4213565dd3fe-ca991821badc2aac devid 1 transid 7
> >>> /dev/mapper/portage
> >>> Feb 14 01:59:59 lupus kernel: [  364.844994] zcache: created
> ephemeral
> >>> tmem pool, id=2
> >>> Feb 14 02:02:49 lupus kernel: [  534.577573] BUG: unable to handle
> >>> kernel paging request at 0000000037610050
> >>> Feb 14 02:02:49 lupus kernel: [  534.577605] IP:
> [<ffffffff81338cbb>]
> >>> btrfs_encode_fh+0x2b/0x110
> >>> Feb 14 02:02:49 lupus kernel: [  534.577630] PGD 0
> >>> Feb 14 02:02:49 lupus kernel: [  534.577640] Oops: 0000 [#1]
> PREEMPT SMP
> >>> Feb 14 02:02:49 lupus kernel: [  534.577665] last sysfs file:
> >>> /sys/devices/system/cpu/cpu7/cache/index2/shared_cpu_map
> >>> Feb 14 02:02:49 lupus kernel: [  534.577693] CPU 5
> >>> Feb 14 02:02:49 lupus kernel: [  534.577701] Modules linked in:
> radeon
> >>> ttm drm_kms_helper cfbcopyarea cfbimgblt cfbfillrect ipt_REJECT
> >>> ipt_LOG xt_limit xt_tcpudp xt_state nf_nat_irc nf_conntrack_irc
> >>> nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_ftp
> >>> iptable_filter ipt_addrtype xt_DSCP xt_dscp xt_iprange ip_tables
> >>> ip6table_filter xt_NFQUEUE xt_owner xt_hashlimit xt_conntrack
> xt_mark
> >>> xt_multiport xt_connmark nf_conntrack xt_string ip6_tables x_tables
> >>> it87 hwmon_vid coretemp snd_seq_dummy snd_seq_oss
> snd_seq_midi_event
> >>> snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_hda_codec_hdmi
> >>> snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm
> >>> snd_timer snd e1000e soundcore i2c_i801 shpchp snd_page_alloc wmi
> >>> libphy e1000 scsi_wait_scan sl811_hcd ohci_hcd ssb usb_storage
> >>> ehci_hcd [last unloaded: tg3]
> >>> Feb 14 02:02:49 lupus kernel: [  534.578114]
> >>> Feb 14 02:02:49 lupus kernel: [  534.578124] Pid: 8285, comm: tar
> Not
> >>> tainted 2.6.37-zcache #2 FMP55/ipower G3710
> >>> Feb 14 02:02:49 lupus kernel: [  534.578146] RIP:
> >>> 0010:[<ffffffff81338cbb>]  [<ffffffff81338cbb>]
> >>> btrfs_encode_fh+0x2b/0x110
> >>> Feb 14 02:02:49 lupus kernel: [  534.578172] RSP:
> >>> 0018:ffff88023ea9dcc8  EFLAGS: 00010246
> >>> Feb 14 02:02:49 lupus kernel: [  534.578189] RAX: 00000000000000ff
> >>> RBX: ffff8800b8643228 RCX: 0000000000000000
> >>> Feb 14 02:02:49 lupus kernel: [  534.578210] RDX: ffff88023ea9dd04
> >>> RSI: ffff88023ea9dd38 RDI: 0000000000000006
> >>> Feb 14 02:02:49 lupus kernel: [  534.578230] RBP: 0000000037610000
> >>> R08: ffffffff81338c90 R09: 0000000000000000
> >>> Feb 14 02:02:49 lupus kernel: [  534.578251] R10: 0000000000000019
> >>> R11: 0000000000000001 R12: ffff8800b8643380
> >>> Feb 14 02:02:49 lupus kernel: [  534.578272] R13: ffff8800b8643258
> >>> R14: 00007fff806f1f00 R15: 0000000000000000
> >>> Feb 14 02:02:49 lupus kernel: [  534.578293] FS:
> >>> 00007f823d7ed700(0000) GS:ffff8800bf540000(0000)
> >>> knlGS:0000000000000000
> >>> Feb 14 02:02:49 lupus kernel: [  534.578317] CS:  0010 DS: 0000 ES:
> >>> 0000 CR0: 0000000080050033
> >>> Feb 14 02:02:49 lupus kernel: [  534.578334] CR2: 0000000037610050
> >>> CR3: 000000023dcef000 CR4: 00000000000006e0
> >>> Feb 14 02:02:49 lupus kernel: [  534.578356] DR0: 0000000000000000
> >>> DR1: 0000000000000000 DR2: 0000000000000000
> >>> Feb 14 02:02:49 lupus kernel: [  534.578377] DR3: 0000000000000000
> >>> DR6: 00000000ffff0ff0 DR7: 0000000000000400
> >>> Feb 14 02:02:49 lupus kernel: [  534.578398] Process tar (pid:
> 8285,
> >>> threadinfo ffff88023ea9c000, task ffff88023e8b9d40)
> >>> Feb 14 02:02:49 lupus kernel: [  534.578421] Stack:
> >>> Feb 14 02:02:49 lupus kernel: [  534.578428]  000000013d096000
> >>> ffff88023ed84800 ffff88023ea9c000 0000000000000002
> >>> Feb 14 02:02:49 lupus kernel: [  534.578458]  ffffffffffffffff
> >>> ffffffff810e3b1a 0000000000000001 000000061e1d5240
> >>> Feb 14 02:02:49 lupus kernel: [  534.578486]  fffffffffffffffb
> >>> ffffffff810e3d5e ffff88010f383000 0000001ab86cb908
> >>> Feb 14 02:02:49 lupus kernel: [  534.578514] Call Trace:
> >>> Feb 14 02:02:49 lupus kernel: [  534.578525]  [<ffffffff810e3b1a>]
> ?
> >>> cleancache_get_key+0x4a/0x60
> >>> Feb 14 02:02:49 lupus kernel: [  534.578544]  [<ffffffff810e3d5e>]
> ?
> >>> __cleancache_flush_inode+0x3e/0x70
> >>> Feb 14 02:02:49 lupus kernel: [  534.578565]  [<ffffffff810b0ed2>]
> ?
> >>> truncate_inode_pages_range+0x42/0x440
> >>> Feb 14 02:02:49 lupus kernel: [  534.578586]  [<ffffffff81338451>]
> ?
> >>> btrfs_tree_unlock+0x41/0x50
> >>> Feb 14 02:02:49 lupus kernel: [  534.578605]  [<ffffffff812e4ed5>]
> ?
> >>> btrfs_release_path+0x15/0x70
> >>> Feb 14 02:02:49 lupus kernel: [  534.578624]  [<ffffffff8130bf29>]
> ?
> >>> btrfs_run_delayed_iputs+0x49/0x120
> >>> Feb 14 02:02:49 lupus kernel: [  534.578644]  [<ffffffff813107e7>]
> ?
> >>> btrfs_evict_inode+0x27/0x1e0
> >>> Feb 14 02:02:49 lupus kernel: [  534.578663]  [<ffffffff810fc3aa>]
> ?
> >>> evict+0x1a/0xa0
> >>> Feb 14 02:02:49 lupus kernel: [  534.578678]  [<ffffffff810fc6bd>]
> ?
> >>> iput+0x1cd/0x2b0
> >>> Feb 14 02:02:49 lupus kernel: [  534.578694]  [<ffffffff810f266f>]
> ?
> >>> do_unlinkat+0x12f/0x1d0
> >>> Feb 14 02:02:49 lupus kernel: [  534.578712]  [<ffffffff810027bb>]
> ?
> >>> system_call_fastpath+0x16/0x1b
> >>> Feb 14 02:02:49 lupus kernel: [  534.578730] Code: 55 b8 ff 00 00
> 00
> >>> 53 48 89 fb 48 83 ec 18 48 8b 6f 10 8b 3a 83 ff 04 0f 86 d5 00 00
> 00
> >>> 85 c9 0f 95 c1 83 ff 07 0f 86 d5 00 00 00 <48> 8b 45 50 bf 05 00 00
> 00
> >>> 48 89 06 84 c9 48 8b 85 68 fe ff ff
> >>> Feb 14 02:02:49 lupus kernel: [  534.578986] RIP
>  [<ffffffff81338cbb>]
> >>> btrfs_encode_fh+0x2b/0x110
> >>> Feb 14 02:02:49 lupus kernel: [  534.579081]  RSP
> <ffff88023ea9dcc8>
> >>> Feb 14 02:02:49 lupus kernel: [  534.579093] CR2: 0000000037610050
> >>> Feb 14 02:02:49 lupus kernel: [  534.587513] ---[ end trace
> >>> c596b12e66c0b360 ]---
> >>>
> >>>
> >>> for reference I've pasted it to pastebin.com:
> >>>
> >>> "2.6.37_zcache_V2.patch"
> >>> http://pastebin.com/cVSkwQ6M
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> after the reboot I had forgotten to not mount the btrfs volume and
> it
> >>> threw a similar error-message again and remounted several
> partitions
> >>> read-only (including the system partition)
> >>> the partition with btrfs (/usr/gentoo) couldn't be unmounted since
> the
> >>> umount process kind of hang
> >>>
> >>> so here's the error message after a reboot (might not be accurate
> or
> >>> kind of "skewed" since other patches are included (io-less dirty
> >>> throttling, PATCH] fix (latent?) memory corruption in
> >>> btrfs_encode_fh() and latest changes for btrfs)) but might help to
> get
> >>> some more evidence:
> >>>
> >>>
> >>> Feb 14 02:05:46 lupus kernel: [   63.922648] device fsid
> >>> 684a4213565dd3fe-ca991821badc2aac devid 1 transid 13
> >>> /dev/mapper/portage
> >>> Feb 14 02:05:46 lupus kernel: [   64.047118] btrfs: unlinked 1
> orphans
> >>> Feb 14 02:05:46 lupus kernel: [   64.051956] zcache: created
> ephemeral
> >>> tmem pool, id=3
> >>> Feb 14 02:05:48 lupus kernel: [   65.801364] hub 2-1:1.0:
> hub_suspend
> >>> Feb 14 02:05:48 lupus kernel: [   65.801376] usb 2-1: unlink
> >>> qh256-0001/ffff88023fefd180 start 1 [1/0 us]
> >>> Feb 14 02:05:48 lupus kernel: [   65.801559] usb 2-1: usb auto-
> suspend
> >>> Feb 14 02:05:50 lupus kernel: [   67.797929] hub 2-0:1.0:
> hub_suspend
> >>> Feb 14 02:05:50 lupus kernel: [   67.797939] usb usb2: bus auto-
> suspend
> >>> Feb 14 02:05:50 lupus kernel: [   67.797942] ehci_hcd 0000:00:1d.0:
> >>> suspend root hub
> >>> Feb 14 02:05:52 lupus kernel: [   70.050493] BUG: unable to handle
> >>> kernel paging request at 0000030341ed0050
> >>> Feb 14 02:05:52 lupus kernel: [   70.050670] IP:
> [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:05:52 lupus kernel: [   70.050807] PGD 0
> >>> Feb 14 02:05:52 lupus kernel: [   70.050929] Oops: 0000 [#1]
> PREEMPT SMP
> >>> Feb 14 02:05:52 lupus kernel: [   70.051223] last sysfs file:
> >>> /sys/module/pcie_aspm/parameters/policy
> >>> Feb 14 02:05:52 lupus kernel: [   70.051365] CPU 6
> >>> Feb 14 02:05:52 lupus kernel: [   70.051411] Modules linked in:
> >>> ipt_REJECT ipt_LOG xt_limit xt_tcpudp xt_state nf_nat_irc
> >>> nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4
> >>> nf_conntrack_ftp iptable_filter ipt_addrtype xt_DSCP xt_dscp
> >>> xt_iprange ip_tables ip6table_filter xt_NFQUEUE xt_owner
> xt_hashlimit
> >>> xt_conntrack xt_mark xt_multiport xt_connmark nf_conntrack
> xt_string
> >>> ip6_tables x_tables it87 hwmon_vid coretemp snd_seq_dummy
> snd_seq_oss
> >>> snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss
> >>> snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel
> snd_hda_codec
> >>> snd_hwdep snd_pcm snd_timer snd i2c_i801 soundcore wmi shpchp
> e1000e
> >>> snd_page_alloc libphy e1000 scsi_wait_scan sl811_hcd ohci_hcd ssb
> >>> usb_storage ehci_hcd [last unloaded: tg3]
> >>> Feb 14 02:05:52 lupus kernel: [   70.054694]
> >>> Feb 14 02:05:52 lupus kernel: [   70.054776] Pid: 7962, comm:
> umount
> >>> Not tainted 2.6.37-plus_v16_zcache #4 FMP55/ipower G3710
> >>> Feb 14 02:05:52 lupus kernel: [   70.054912] RIP:
> >>> 0010:[<ffffffff8133ef1b>]  [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:05:52 lupus kernel: [   70.055084] RSP:
> >>> 0018:ffff88023c77d6f8  EFLAGS: 00010246
> >>> Feb 14 02:05:52 lupus kernel: [   70.055173] RAX: 00000000000000ff
> >>> RBX: ffff88023cde0168 RCX: 0000000000000000
> >>> Feb 14 02:05:52 lupus kernel: [   70.055265] RDX: ffff88023c77d734
> >>> RSI: ffff88023c77d768 RDI: 0000000000000006
> >>> Feb 14 02:05:52 lupus kernel: [   70.055357] RBP: 0000030341ed0000
> >>> R08: ffffffff8133eef0 R09: ffff88023c77d8d8
> >>> Feb 14 02:05:52 lupus kernel: [   70.055448] R10: 0000000000000003
> >>> R11: 0000000000000001 R12: 00000000ffffffff
> >>> Feb 14 02:05:52 lupus kernel: [   70.055540] R13: ffff88023cde0030
> >>> R14: ffffea0007dd39f0 R15: 0000000000000001
> >>> Feb 14 02:05:52 lupus kernel: [   70.055633] FS:
> >>> 00007fb1cad04760(0000) GS:ffff8800bf580000(0000)
> >>> knlGS:0000000000000000
> >>> Feb 14 02:05:52 lupus kernel: [   70.055762] CS:  0010 DS: 0000 ES:
> >>> 0000 CR0: 000000008005003b
> >>> Feb 14 02:05:52 lupus kernel: [   70.055851] CR2: 0000030341ed0050
> >>> CR3: 000000023c7d5000 CR4: 00000000000006e0
> >>> Feb 14 02:05:52 lupus kernel: [   70.055943] DR0: 0000000000000000
> >>> DR1: 0000000000000000 DR2: 0000000000000000
> >>> Feb 14 02:05:52 lupus kernel: [   70.056035] DR3: 0000000000000000
> >>> DR6: 00000000ffff0ff0 DR7: 0000000000000400
> >>> Feb 14 02:05:52 lupus kernel: [   70.056128] Process umount (pid:
> >>> 7962, threadinfo ffff88023c77c000, task ffff88023c7a4260)
> >>> Feb 14 02:05:52 lupus kernel: [   70.056257] Stack:
> >>> Feb 14 02:05:52 lupus kernel: [   70.056338]  0000000000000000
> >>> 0000000000000002 ffff880200000000 0000000000000003
> >>> Feb 14 02:05:52 lupus kernel: [   70.056630]  ffffea0007dd39f0
> >>> ffffffff810e6aaa ffff880200000041 0000000600000246
> >>> Feb 14 02:05:52 lupus kernel: [   70.056922]  ffff88023cdcd300
> >>> ffffffff810e6b3a 0000000000000001 ffffffff8132bb7c
> >>> Feb 14 02:05:52 lupus kernel: [   70.057213] Call Trace:
> >>> Feb 14 02:05:52 lupus kernel: [   70.057301]  [<ffffffff810e6aaa>]
> ?
> >>> cleancache_get_key+0x4a/0x60
> >>> Feb 14 02:05:52 lupus kernel: [   70.057393]  [<ffffffff810e6b3a>]
> ?
> >>> __cleancache_get_page+0x7a/0xd0
> >>> Feb 14 02:05:52 lupus kernel: [   70.057487]  [<ffffffff8132bb7c>]
> ?
> >>> merge_state+0x7c/0x150
> >>> Feb 14 02:05:52 lupus kernel: [   70.057579]  [<ffffffff8132e4de>]
> ?
> >>> __extent_read_full_page+0x52e/0x710
> >>> Feb 14 02:05:52 lupus kernel: [   70.057673]  [<ffffffff813bdea4>]
> ?
> >>> rb_insert_color+0xa4/0x140
> >>> Feb 14 02:05:52 lupus kernel: [   70.057766]  [<ffffffff8134b0b6>]
> ?
> >>> tree_insert+0x86/0x1e0
> >>> Feb 14 02:05:52 lupus kernel: [   70.057859]  [<ffffffff81058c73>]
> ?
> >>> lock_timer_base.clone.22+0x33/0x70
> >>> Feb 14 02:05:52 lupus kernel: [   70.058004]  [<ffffffff81305060>]
> ?
> >>> btree_get_extent+0x0/0x1c0
> >>> Feb 14 02:05:52 lupus kernel: [   70.058097]  [<ffffffff81330b21>]
> ?
> >>> read_extent_buffer_pages+0x2d1/0x470
> >>> Feb 14 02:05:52 lupus kernel: [   70.058191]  [<ffffffff81305060>]
> ?
> >>> btree_get_extent+0x0/0x1c0
> >>> Feb 14 02:05:52 lupus kernel: [   70.058283]  [<ffffffff8130674d>]
> ?
> >>> btree_read_extent_buffer_pages.clone.65+0x4d/0xa0
> >>> Feb 14 02:05:52 lupus kernel: [   70.058415]  [<ffffffff813076f9>]
> ?
> >>> read_tree_block+0x39/0x60
> >>> Feb 14 02:05:52 lupus kernel: [   70.058508]  [<ffffffff812ed5e6>]
> ?
> >>> read_block_for_search.clone.40+0x116/0x410
> >>> Feb 14 02:05:52 lupus kernel: [   70.058638]  [<ffffffff812eb228>]
> ?
> >>> btrfs_cow_block+0x118/0x2b0
> >>> Feb 14 02:05:52 lupus kernel: [   70.058731]  [<ffffffff812f0bc7>]
> ?
> >>> btrfs_search_slot+0x307/0xa00
> >>> Feb 14 02:05:52 lupus kernel: [   70.058823]  [<ffffffff812f6b18>]
> ?
> >>> lookup_inline_extent_backref+0x98/0x4a0
> >>> Feb 14 02:05:52 lupus kernel: [   70.058919]  [<ffffffff810e33d7>]
> ?
> >>> kmem_cache_alloc+0x87/0xa0
> >>> Feb 14 02:05:52 lupus kernel: [   70.059032]  [<ffffffff812f891c>]
> ?
> >>> __btrfs_free_extent+0xcc/0x6f0
> >>> Feb 14 02:05:52 lupus kernel: [   70.059125]  [<ffffffff812fc4cf>]
> ?
> >>> run_clustered_refs+0x39f/0x880
> >>> Feb 14 02:05:52 lupus kernel: [   70.059220]  [<ffffffff810b1f98>]
> ?
> >>> pagevec_lookup_tag+0x18/0x20
> >>> Feb 14 02:05:52 lupus kernel: [   70.059312]  [<ffffffff810a7c81>]
> ?
> >>> filemap_fdatawait_range+0x91/0x180
> >>> Feb 14 02:05:52 lupus kernel: [   70.059405]  [<ffffffff812fca77>]
> ?
> >>> btrfs_run_delayed_refs+0xc7/0x220
> >>> Feb 14 02:05:52 lupus kernel: [   70.059498]  [<ffffffff8130c29c>]
> ?
> >>> btrfs_commit_transaction+0x7c/0x760
> >>> Feb 14 02:05:52 lupus kernel: [   70.059591]  [<ffffffff81067ea0>]
> ?
> >>> autoremove_wake_function+0x0/0x30
> >>> Feb 14 02:05:52 lupus kernel: [   70.059683]  [<ffffffff8130cdef>]
> ?
> >>> start_transaction+0x1bf/0x270
> >>> Feb 14 02:05:52 lupus kernel: [   70.059775]  [<ffffffff8110e96a>]
> ?
> >>> __sync_filesystem+0x5a/0x90
> >>> Feb 14 02:05:52 lupus kernel: [   70.059867]  [<ffffffff810eae8d>]
> ?
> >>> generic_shutdown_super+0x2d/0x100
> >>> Feb 14 02:05:52 lupus kernel: [   70.059960]  [<ffffffff810eafb9>]
> ?
> >>> kill_anon_super+0x9/0x50
> >>> Feb 14 02:05:52 lupus kernel: [   70.060051]  [<ffffffff810eb266>]
> ?
> >>> deactivate_locked_super+0x26/0x80
> >>> Feb 14 02:05:52 lupus kernel: [   70.060144]  [<ffffffff811043ea>]
> ?
> >>> sys_umount+0x7a/0x390
> >>> Feb 14 02:05:52 lupus kernel: [   70.060235]  [<ffffffff810027bb>]
> ?
> >>> system_call_fastpath+0x16/0x1b
> >>> Feb 14 02:05:52 lupus kernel: [   70.060325] Code: 55 b8 ff 00 00
> 00
> >>> 53 48 89 fb 48 83 ec 18 48 8b 6f 10 8b 3a 83 ff 04 0f 86 d5 00 00
> 00
> >>> 85 c9 0f 95 c1 83 ff 07 0f 86 d5 00 00 00 <48> 8b 45 50 bf 05 00 00
> 00
> >>> 48 89 06 84 c9 48 8b 85 68 fe ff ff
> >>> Feb 14 02:05:52 lupus kernel: [   70.063170] RIP
>  [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:05:52 lupus kernel: [   70.063302]  RSP
> <ffff88023c77d6f8>
> >>> Feb 14 02:05:52 lupus kernel: [   70.063386] CR2: 0000030341ed0050
> >>> Feb 14 02:05:52 lupus kernel: [   70.063528] ---[ end trace
> >>> 3313552d105b1535 ]---
> >>> Feb 14 02:06:16 lupus kernel: [   93.961960] BUG: unable to handle
> >>> kernel paging request at 0000030341ed0050
> >>> Feb 14 02:06:16 lupus kernel: [   93.962171] IP:
> [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:06:16 lupus kernel: [   93.962307] PGD 0
> >>> Feb 14 02:06:16 lupus kernel: [   93.962430] Oops: 0000 [#2]
> PREEMPT SMP
> >>> Feb 14 02:06:16 lupus kernel: [   93.962637] last sysfs file:
> >>> /sys/devices/system/cpu/cpu7/cache/index2/shared_cpu_map
> >>> Feb 14 02:06:16 lupus kernel: [   93.962766] CPU 5
> >>> Feb 14 02:06:16 lupus kernel: [   93.962812] Modules linked in:
> >>> ipt_REJECT ipt_LOG xt_limit xt_tcpudp xt_state nf_nat_irc
> >>> nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4
> >>> nf_conntrack_ftp iptable_filter ipt_addrtype xt_DSCP xt_dscp
> >>> xt_iprange ip_tables ip6table_filter xt_NFQUEUE xt_owner
> xt_hashlimit
> >>> xt_conntrack xt_mark xt_multiport xt_connmark nf_conntrack
> xt_string
> >>> ip6_tables x_tables it87 hwmon_vid coretemp snd_seq_dummy
> snd_seq_oss
> >>> snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss
> >>> snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel
> snd_hda_codec
> >>> snd_hwdep snd_pcm snd_timer snd i2c_i801 soundcore wmi shpchp
> e1000e
> >>> snd_page_alloc libphy e1000 scsi_wait_scan sl811_hcd ohci_hcd ssb
> >>> usb_storage ehci_hcd [last unloaded: tg3]
> >>> Feb 14 02:06:16 lupus kernel: [   93.966044]
> >>> Feb 14 02:06:16 lupus kernel: [   93.966127] Pid: 7915, comm:
> >>> btrfs-transacti Tainted: G      D     2.6.37-plus_v16_zcache #4
> >>> FMP55/ipower G3710
> >>> Feb 14 02:06:16 lupus kernel: [   93.966266] RIP:
> >>> 0010:[<ffffffff8133ef1b>]  [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:06:16 lupus kernel: [   93.966440] RSP:
> >>> 0018:ffff88023c63b6e0  EFLAGS: 00010246
> >>> Feb 14 02:06:16 lupus kernel: [   93.966528] RAX: 00000000000000ff
> >>> RBX: ffff88023cde0168 RCX: 0000000000000000
> >>> Feb 14 02:06:16 lupus kernel: [   93.966620] RDX: ffff88023c63b71c
> >>> RSI: ffff88023c63b750 RDI: 0000000000000006
> >>> Feb 14 02:06:16 lupus kernel: [   93.966713] RBP: 0000030341ed0000
> >>> R08: ffffffff8133eef0 R09: ffff88023c63b8c0
> >>> Feb 14 02:06:16 lupus kernel: [   93.966805] R10: 0000000000000003
> >>> R11: 0000000000000001 R12: 00000000ffffffff
> >>> Feb 14 02:06:16 lupus kernel: [   93.966897] R13: ffff88023cde0030
> >>> R14: ffffea0007d59bc8 R15: 0000000000000001
> >>> Feb 14 02:06:16 lupus kernel: [   93.966990] FS:
> >>> 0000000000000000(0000) GS:ffff8800bf540000(0000)
> >>> knlGS:0000000000000000
> >>> Feb 14 02:06:16 lupus kernel: [   93.967120] CS:  0010 DS: 0000 ES:
> >>> 0000 CR0: 000000008005003b
> >>> Feb 14 02:06:16 lupus kernel: [   93.967209] CR2: 0000030341ed0050
> >>> CR3: 0000000001c27000 CR4: 00000000000006e0
> >>> Feb 14 02:06:16 lupus kernel: [   93.967302] DR0: 0000000000000000
> >>> DR1: 0000000000000000 DR2: 0000000000000000
> >>> Feb 14 02:06:16 lupus kernel: [   93.967394] DR3: 0000000000000000
> >>> DR6: 00000000ffff0ff0 DR7: 0000000000000400
> >>> Feb 14 02:06:16 lupus kernel: [   93.967500] Process btrfs-
> transacti
> >>> (pid: 7915, threadinfo ffff88023c63a000, task ffff88023c7a1620)
> >>> Feb 14 02:06:16 lupus kernel: [   93.967630] Stack:
> >>> Feb 14 02:06:16 lupus kernel: [   93.967711]  0000000000000000
> >>> 0000000000000002 0000000000000000 0000000000000003
> >>> Feb 14 02:06:16 lupus kernel: [   93.968057]  ffffea0007d59bc8
> >>> ffffffff810e6aaa 0000000000000041 0000000600000002
> >>> Feb 14 02:06:16 lupus kernel: [   93.968348]  0000000000000000
> >>> ffffffff810e6b3a 0000000000000001 ffffffff00000001
> >>> Feb 14 02:06:16 lupus kernel: [   93.968639] Call Trace:
> >>> Feb 14 02:06:16 lupus kernel: [   93.968728]  [<ffffffff810e6aaa>]
> ?
> >>> cleancache_get_key+0x4a/0x60
> >>> Feb 14 02:06:16 lupus kernel: [   93.968820]  [<ffffffff810e6b3a>]
> ?
> >>> __cleancache_get_page+0x7a/0xd0
> >>> Feb 14 02:06:16 lupus kernel: [   93.968914]  [<ffffffff8132e4de>]
> ?
> >>> __extent_read_full_page+0x52e/0x710
> >>> Feb 14 02:06:16 lupus kernel: [   93.969008]  [<ffffffff812f3f93>]
> ?
> >>> update_reserved_bytes+0xb3/0x140
> >>> Feb 14 02:06:16 lupus kernel: [   93.969102]  [<ffffffff81305060>]
> ?
> >>> btree_get_extent+0x0/0x1c0
> >>> Feb 14 02:06:16 lupus kernel: [   93.969193]  [<ffffffff8132bb7c>]
> ?
> >>> merge_state+0x7c/0x150
> >>> Feb 14 02:06:16 lupus kernel: [   93.969285]  [<ffffffff81330b21>]
> ?
> >>> read_extent_buffer_pages+0x2d1/0x470
> >>> Feb 14 02:06:16 lupus kernel: [   93.969378]  [<ffffffff81305060>]
> ?
> >>> btree_get_extent+0x0/0x1c0
> >>> Feb 14 02:06:16 lupus kernel: [   93.969470]  [<ffffffff8130674d>]
> ?
> >>> btree_read_extent_buffer_pages.clone.65+0x4d/0xa0
> >>> Feb 14 02:06:16 lupus kernel: [   93.969602]  [<ffffffff813076f9>]
> ?
> >>> read_tree_block+0x39/0x60
> >>> Feb 14 02:06:16 lupus kernel: [   93.969694]  [<ffffffff812ed5e6>]
> ?
> >>> read_block_for_search.clone.40+0x116/0x410
> >>> Feb 14 02:06:16 lupus kernel: [   93.969878]  [<ffffffff812f0bc7>]
> ?
> >>> btrfs_search_slot+0x307/0xa00
> >>> Feb 14 02:06:16 lupus kernel: [   93.969970]  [<ffffffff812f6b18>]
> ?
> >>> lookup_inline_extent_backref+0x98/0x4a0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970065]  [<ffffffff810e33d7>]
> ?
> >>> kmem_cache_alloc+0x87/0xa0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970157]  [<ffffffff812f891c>]
> ?
> >>> __btrfs_free_extent+0xcc/0x6f0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970249]  [<ffffffff812f8434>]
> ?
> >>> update_block_group.clone.62+0xc4/0x280
> >>> Feb 14 02:06:16 lupus kernel: [   93.970343]  [<ffffffff812fc4cf>]
> ?
> >>> run_clustered_refs+0x39f/0x880
> >>> Feb 14 02:06:16 lupus kernel: [   93.970436]  [<ffffffff812fca77>]
> ?
> >>> btrfs_run_delayed_refs+0xc7/0x220
> >>> Feb 14 02:06:16 lupus kernel: [   93.970529]  [<ffffffff810e15f9>]
> ?
> >>> new_slab+0x169/0x1f0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970619]  [<ffffffff8130c29c>]
> ?
> >>> btrfs_commit_transaction+0x7c/0x760
> >>> Feb 14 02:06:16 lupus kernel: [   93.970713]  [<ffffffff81067ea0>]
> ?
> >>> autoremove_wake_function+0x0/0x30
> >>> Feb 14 02:06:16 lupus kernel: [   93.970806]  [<ffffffff81305bc3>]
> ?
> >>> transaction_kthread+0x283/0x2a0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970898]  [<ffffffff81305940>]
> ?
> >>> transaction_kthread+0x0/0x2a0
> >>> Feb 14 02:06:16 lupus kernel: [   93.970990]  [<ffffffff81305940>]
> ?
> >>> transaction_kthread+0x0/0x2a0
> >>> Feb 14 02:06:16 lupus kernel: [   93.971083]  [<ffffffff81067a16>]
> ?
> >>> kthread+0x96/0xa0
> >>> Feb 14 02:06:16 lupus kernel: [   93.971174]  [<ffffffff81003514>]
> ?
> >>> kernel_thread_helper+0x4/0x10
> >>> Feb 14 02:06:16 lupus kernel: [   93.971266]  [<ffffffff81067980>]
> ?
> >>> kthread+0x0/0xa0
> >>> Feb 14 02:06:16 lupus kernel: [   93.971355]  [<ffffffff81003510>]
> ?
> >>> kernel_thread_helper+0x0/0x10
> >>> Feb 14 02:06:16 lupus kernel: [   93.971444] Code: 55 b8 ff 00 00
> 00
> >>> 53 48 89 fb 48 83 ec 18 48 8b 6f 10 8b 3a 83 ff 04 0f 86 d5 00 00
> 00
> >>> 85 c9 0f 95 c1 83 ff 07 0f 86 d5 00 00 00 <48> 8b 45 50 bf 05 00 00
> 00
> >>> 48 89 06 84 c9 48 8b 85 68 fe ff ff
> >>> Feb 14 02:06:16 lupus kernel: [   93.974280] RIP
>  [<ffffffff8133ef1b>]
> >>> btrfs_encode_fh+0x2b/0x120
> >>> Feb 14 02:06:16 lupus kernel: [   93.974412]  RSP
> <ffff88023c63b6e0>
> >>> Feb 14 02:06:16 lupus kernel: [   93.974497] CR2: 0000030341ed0050
> >>> Feb 14 02:06:16 lupus kernel: [   93.974599] ---[ end trace
> >>> 3313552d105b1536 ]---
> >>> Feb 14 02:07:04 lupus kernel: [  141.906124] zcache: destroyed pool
> id=2
> >>> Feb 14 02:07:17 lupus kernel: [  154.783358] SysRq : Keyboard mode
> set
> >>> to system default
> >>> Feb 14 02:07:18 lupus kernel: [  155.486147] SysRq : Terminate All
> Tasks
> >>>
> >>>
> >>> That's all for now
> >>>
> >>> Thanks & Regards
> >>>
> >>> Matt
> >>>
> >>
> >> (leaving out several folks from the CC to avoid spamming - if I left
> >> out someone wrongfully please re-add)
> >>
> >> running an addr2line reveals:
> >>
> >>
> >> addr2line -e /usr/src/linux-2.6.37_vanilla/vmlinux -i
> ffffffff81338cbb
> >> export.c:0
> >>
> >>
> >> hope that helps
> >>
> >>
> >> Regards
> >>
> >> Matt
> >>
> >
> > Just my guessing. I might be wrong.
> >
> > __cleancache_flush_inode calls cleancache_get_key with
> cleancache_filekey.
> > cleancache_file_key's size is just 6 * u32.
> > cleancache_get_key calls btrfs_encode_fh with the key.
> > but btrfs_encode_fh does typecasting the key to btrfs_fid which is
> > bigger size than cleancache_filekey's one so it should not access
> > fields beyond cleancache_get_key.
> >
> > I think some file systems use extend fid so in there, this problem
> can
> > happen. I don't know why we can't find it earlier. Maybe Dan and
> > others test it for a long time.
> >
> > Am I missing something?
> >
> >
> >
> > --
> > Kind regards,
> > Minchan Kim
> >
>
> reposting Minchan's message for reference to the btrfs mailing list
> while also adding
>
> Li Zefan, Miao Xie, Yan Zheng, Dan Rosenberg and Josef Bacik to CC
>
> Regards
>
> Matt

Hi Matt and Minchan --

(BTRFS EXPERTS SEE *** BELOW)

I definitely see a bug in cleancache_get_key in the monolithic
zcache+cleancache+frontswap patch I posted on oss.oracle.com
that is corrected in linux-next but I don't see how it could
get provoked by btrfs.

The bug is that, in cleancache_get_key, the return value of fhfn should
be checked against 255. If the return value is 255, cleancache_get_key
should return -1. This should disable cleancache for any filesystem
where KEY_MAX is too large.

But cleancache_get_key always calls fhfn with connectable == 0 and
CLEANCACHE_KEY_MAX==6 should be greater than BTRFS_FID_SIZE_CONNECTABLE
(which I think should be 5?). And the elements written into the
typecast btrfs_fid should be only writing the first 5 32-bit words.

So if the problem is the one Minchan suggests, I am confused. Matt,
can you first confirm that you are using the cleancache patches from
my monolithic patch from oss.oracle.com (which I think you are)?

***

Looking over the stacktrace and the code, I have an alternate theory.
I wonder if it is ever possible the inode->dentry list is empty
(or corrupt)? list_first_entry() assumes the list is non-empty.
If this is possible and unusual, maybe my testing didn't see the
problem?

Thanks,
Dan

P.S. For those new to cleancache, the code is in linux-next here:
http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git;a=blob;f=mm/cleancache.c;h=f545eb8f11180cfb3aaf3f4f85a5255be8f9f881;hb=a57cb3bc013d2e262a663df50af6a9e7cc88bdad
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/