From: Dmitry Monakhov <dmonakhov@openvz.org>
To: Christian Kujau <lists@nerdbynature.de>
Cc: CAI Qian <caiqian@redhat.com>, Theodore Ts'o <tytso@mit.edu>,
LKML <linux-kernel@vger.kernel.org>,
linux-s390 <linux-s390@vger.kernel.org>,
Steve Best <sbest@redhat.com>,
linux-ext4@vger.kernel.org, Zheng Liu <gnehzuil.liu@gmail.com>
Subject: Re: s390x: kernel BUG at fs/ext4/inode.c:1591! (powerpc too!)
Date: Wed, 03 Apr 2013 13:53:49 +0400 [thread overview]
Message-ID: <87hajoq6s2.fsf@openvz.org> (raw)
In-Reply-To: <87li90q9mx.fsf@openvz.org>
[-- Attachment #1: Type: text/plain, Size: 653 bytes --]
On Wed, 03 Apr 2013 12:52:06 +0400, Dmitry Monakhov <dmonakhov@openvz.org> wrote:
Non-text part: multipart/mixed
> On Tue, 2 Apr 2013 16:22:41 -0700 (PDT), Christian Kujau <lists@nerdbynature.de> wrote:
> > On Wed, 3 Apr 2013 at 02:05, Dmitry Monakhov wrote:
> > > Please drop that patch and collect logs with a kernel which
> > > has only 0001-enable-ES_AGGRESSIVE_TEST-V2.patch patch applied
> Ok I have found at least one issue.
Yeah.. My college advise me to use sparse in order to spot all
cpu_to_ondisk format conversion
make C=2 CF="-D__CHECK_ENDIAN__" fs/ext4/
And it spotted a huge amount of issues. Which tell us that we are deeply
in shit.
[-- Attachment #2: sparse.log --]
[-- Type: text/plain, Size: 9235 bytes --]
<stdin>:1220:2: warning: #warning syscall kcmp not implemented
<stdin>:1223:2: warning: #warning syscall finit_module not implemented
fs/ext4/ialloc.c:902:37: warning: symbol 'sbi' shadows an earlier one
fs/ext4/ialloc.c:650:29: originally declared here
fs/ext4/inode.c:58:17: warning: incorrect type in assignment (different base types)
fs/ext4/inode.c:58:17: expected unsigned short [unsigned] [usertype] csum_lo
fs/ext4/inode.c:58:17: got restricted __le16 [usertype] l_i_checksum_lo
fs/ext4/inode.c:62:25: warning: incorrect type in assignment (different base types)
fs/ext4/inode.c:62:25: expected unsigned short [unsigned] [usertype] csum_hi
fs/ext4/inode.c:62:25: got restricted __le16 [usertype] i_checksum_hi
fs/ext4/inode.c:69:28: warning: incorrect type in assignment (different base types)
fs/ext4/inode.c:69:28: expected restricted __le16 [usertype] l_i_checksum_lo
fs/ext4/inode.c:69:28: got unsigned short [unsigned] [usertype] csum_lo
fs/ext4/inode.c:72:36: warning: incorrect type in assignment (different base types)
fs/ext4/inode.c:72:36: expected restricted __le16 [usertype] i_checksum_hi
fs/ext4/inode.c:72:36: got unsigned short [unsigned] [usertype] csum_hi
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
fs/ext4/ioctl.c:358:36: warning: symbol 'sb' shadows an earlier one
fs/ext4/ioctl.c:26:28: originally declared here
fs/ext4/namei.c:2008:36: warning: potentially expensive pointer subtraction
fs/ext4/namei.c:423:18: warning: incorrect type in assignment (different base types)
fs/ext4/namei.c:423:18: expected unsigned int [unsigned] [usertype] old_csum
fs/ext4/namei.c:423:18: got restricted __le32 [usertype] dt_checksum
fs/ext4/namei.c:427:24: warning: incorrect type in assignment (different base types)
fs/ext4/namei.c:427:24: expected restricted __le32 [usertype] dt_checksum
fs/ext4/namei.c:427:24: got unsigned int [unsigned] [usertype] old_csum
include/trace/events/ext4.h:1926:1: warning: cast from restricted __le32
include/trace/events/ext4.h:1926:1: warning: incorrect type in assignment (different base types)
include/trace/events/ext4.h:1926:1: expected unsigned int [unsigned] [usertype] ee_lblk
include/trace/events/ext4.h:1926:1: got restricted __le32 [usertype] <noident>
include/trace/events/ext4.h:1926:1: warning: cast from restricted __le32
include/trace/events/ext4.h:1926:1: warning: incorrect type in assignment (different base types)
include/trace/events/ext4.h:1926:1: expected unsigned int [unsigned] [usertype] ee_lblk
include/trace/events/ext4.h:1926:1: got restricted __le32 [usertype] <noident>
fs/ext4/super.c:1957:26: warning: incorrect type in assignment (different base types)
fs/ext4/super.c:1957:26: expected unsigned short [unsigned] [usertype] old_csum
fs/ext4/super.c:1957:26: got restricted __le16 [usertype] bg_checksum
fs/ext4/super.c:1963:34: warning: incorrect type in assignment (different base types)
fs/ext4/super.c:1963:34: expected restricted __le16 [usertype] bg_checksum
fs/ext4/super.c:1963:34: got unsigned short [unsigned] [usertype] old_csum
include/uapi/linux/swab.h:60:16: error: undefined identifier '__builtin_bswap32'
include/uapi/linux/swab.h:60:33: error: not a function <noident>
fs/ext4/extents.c:3002:48: warning: incorrect type in assignment (different base types)
fs/ext4/extents.c:3002:48: expected restricted __le16 [assigned] [usertype] ee_len
fs/ext4/extents.c:3002:48: got restricted __be16 [usertype] <noident>
fs/ext4/extents.c:3008:48: warning: incorrect type in assignment (different base types)
fs/ext4/extents.c:3008:48: expected restricted __le16 [addressable] [assigned] [usertype] ee_len
fs/ext4/extents.c:3008:48: got restricted __be16 [usertype] <noident>
fs/ext4/extents.c:3015:40: warning: incorrect type in assignment (different base types)
fs/ext4/extents.c:3015:40: expected restricted __le16 [addressable] [assigned] [usertype] ee_len
fs/ext4/extents.c:3015:40: got restricted __be16 [usertype] <noident>
fs/ext4/extents.c:603:28: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:671:28: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:849:43: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:984:47: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:1063:50: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:1656:52: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:1706:32: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:1929:43: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:2206:55: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:2528:72: warning: potentially expensive pointer subtraction
fs/ext4/extents.c:2787:36: warning: incorrect type in argument 5 (different base types)
fs/ext4/extents.c:2787:36: expected unsigned short [unsigned] eh_entries
fs/ext4/extents.c:2787:36: got restricted __le16 [usertype] eh_entries
fs/ext4/extents.c:3275:32: warning: incorrect type in assignment (different base types)
fs/ext4/extents.c:3275:32: expected restricted __le16 [assigned] [usertype] ee_len
fs/ext4/extents.c:3275:32: got restricted __be16 [usertype] <noident>
fs/ext4/extents.c:4642:34: warning: cast from restricted __le16
fs/ext4/extents.c:4642:34: warning: incorrect type in argument 1 (different base types)
fs/ext4/extents.c:4642:34: expected unsigned short [unsigned] [usertype] val
fs/ext4/extents.c:4642:34: got restricted __le16 [usertype] eh_entries
fs/ext4/extents.c:4642:34: warning: cast from restricted __le16
fs/ext4/extents.c:4642:34: warning: cast from restricted __le16
fs/ext4/extents.c:4642:34: warning: restricted __be16 degrades to integer
fs/ext4/mballoc.c:863:21: warning: symbol 'group' shadows an earlier one
fs/ext4/mballoc.c:795:35: originally declared here
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
fs/ext4/mballoc.c:4855:9: warning: context imbalance in 'ext4_trim_extent' - unexpected unlock
fs/ext4/move_extent.c:859:29: warning: symbol 'err' shadows an earlier one
fs/ext4/move_extent.c:835:16: originally declared here
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
fs/ext4/mmp.c:18:16: warning: incorrect type in return expression (different base types)
fs/ext4/mmp.c:18:16: expected unsigned int
fs/ext4/mmp.c:18:16: got restricted __le32 [usertype] <noident>
fs/ext4/mmp.c:27:19: warning: restricted __le32 degrades to integer
fs/ext4/mmp.c:36:27: warning: incorrect type in assignment (different base types)
fs/ext4/mmp.c:36:27: expected restricted __le32 [usertype] mmp_checksum
fs/ext4/mmp.c:36:27: got unsigned int
fs/ext4/indirect.c:579:41: warning: potentially expensive pointer subtraction
fs/ext4/indirect.c:592:52: warning: potentially expensive pointer subtraction
fs/ext4/indirect.c:1257:68: warning: potentially expensive pointer subtraction
fs/ext4/indirect.c:1268:67: warning: potentially expensive pointer subtraction
fs/ext4/indirect.c:1275:48: warning: potentially expensive pointer subtraction
fs/ext4/indirect.c:1327:52: warning: incorrect type in argument 2 (different base types)
fs/ext4/indirect.c:1327:52: expected unsigned long [unsigned] [usertype] block
fs/ext4/indirect.c:1327:52: got restricted __le32 [assigned] [usertype] blk
fs/ext4/indirect.c:1329:33: warning: incorrect type in argument 4 (different base types)
fs/ext4/indirect.c:1329:33: expected unsigned long long [unsigned] [usertype] <noident>
fs/ext4/indirect.c:1329:33: got restricted __le32 [assigned] [usertype] blk
fs/ext4/xattr.c:127:13: warning: incorrect type in assignment (different base types)
fs/ext4/xattr.c:127:13: expected unsigned int [unsigned] [usertype] old
fs/ext4/xattr.c:127:13: got restricted __le32 [usertype] h_checksum
fs/ext4/xattr.c:129:18: warning: incorrect type in assignment (different base types)
fs/ext4/xattr.c:129:18: expected unsigned long [unsigned] [usertype] block_nr
fs/ext4/xattr.c:129:18: got restricted __le64 [usertype] <noident>
fs/ext4/xattr.c:135:25: warning: incorrect type in assignment (different base types)
fs/ext4/xattr.c:135:25: expected restricted __le32 [usertype] h_checksum
fs/ext4/xattr.c:135:25: got unsigned int [unsigned] [usertype] old
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
include/linux/mm.h:759:16: warning: potentially expensive pointer subtraction
[-- Attachment #3: Type: text/plain, Size: 3795 bytes --]
So please give me couple of hours and I'll send you a complete patch.
> Please give a try to this patch
> diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
> index 1530cf4..e8460f6 100644
> --- a/fs/ext4/extents.c
> +++ b/fs/ext4/extents.c
> @@ -3272,7 +3272,7 @@ static int ext4_ext_convert_to_initialized(handle_t *handle,
> if (err)
> goto out;
> zero_ex.ee_block = ex->ee_block;
> - zero_ex.ee_len = ext4_ext_get_actual_len(ex);
> + zero_ex.ee_len = cpu_to_le16(ext4_ext_get_actual_len(ext));
> ext4_ext_store_pblock(&zero_ex, ext4_ext_pblock(ex));
>
> err = ext4_ext_get_access(handle, inode, path + depth);
>
> >
> > I've applied (only) 0001-enable-ES_AGGRESSIVE_TEST-V2.patch to 3.9-rc4:
> >
> > patching file fs/ext4/extents_status.h
> > patching file fs/ext4/inode.c
> > Hunk #1 succeeded at 1588 (offset 42 lines).
> > Hunk #2 succeeded at 1609 (offset 42 lines).
> >
> > And tried to download some images via bittorrent. As expected, lots of
> > "ES cache assertation failed" were being logged:
> >
> > http://nerdbynature.de/bits/3.9.0-rc4/ext4/
> > => messages_0001-enable-ES_AGGRESSIVE_TEST-V2.txt.xz
> >
> > I've tried to download 3 files, all via bittorrent (so, fallocate & heavy
> > mmap)
> >
> > 1) 8GB Fedora iso, there are also WARNINGs bring triggered, see below.
> > I decided to cancel the download after some gigabyes.
> >
> > 2) A 50 MB Debian iso, this produced just one "ES cache assertation"
> > message. Download went OK, checksum was correct too.
> >
> > 3) A 221 MB Fedora iso, produced a couple of "ES cache assertation"
> > messages, but no WARNINGs. Download went OK, checksum was correct too.
> >
> > It's all in that messages_0001-enable-ES_AGGRESSIVE_TEST-V2.txt.xz file
> > above. I just e2fsck'ed the ext4 filesystem again (and did so last night),
> > but no errors were found.
> >
> > HTH,
> > Christian.
> >
> > One of the WARNINGs during that 8GB download:
> >
> > ino:39190654 lbkl:0, b_state=0x0004b988, b_size=4131
> > ------------[ cut here ]------------
> > WARNING: at /opt/linux-git/fs/ext4/inode.c:1600
> > Modules linked in: md5 ecb nfs i2c_powermac therm_adt746x ecryptfs firewire_sbp2 arc4 b43 usb_storage mac80211 cfg80211
> > NIP: c013745c LR: c013745c CTR: c000df9c
> > REGS: edc479a0 TRAP: 0700 Tainted: G W (3.9.0-rc4-dirty)
> > MSR: 00029032 <EE,ME,IR,DR,RI> CR: 44028644 XER: 20000000
> > TASK = edca9740[4379] 'flush-254:1' THREAD: edc46000
> > GPR00: c013745c edc47a50 edca9740 00000034 edca9db0 00000006 00000000 00008000
> > GPR08: 00003fb0 00218f23 00000000 c000006e 00000dc9 00000000 00000009 ee18cca0
> > GPR16: edc47c78 0000000e 0004b9bf 0004b988 00000000 edc47a84 00001000 e6357540
> > GPR24: edc47b78 e6357540 00000000 0004b97f 00000000 0051d188 00000000 0004b988
> > NIP [c013745c] mpage_da_submit_io+0x3dc/0x3f0
> > LR [c013745c] mpage_da_submit_io+0x3dc/0x3f0
> > Call Trace:
> > [edc47a50] [c013745c] mpage_da_submit_io+0x3dc/0x3f0 (unreliable)
> > [edc47b30] [c013c9f0] mpage_da_map_and_submit+0x16c/0x5f0
> > [edc47bc0] [c013d2e4] write_cache_pages_da+0x470/0x480
> > [edc47c70] [c013d554] ext4_da_writepages+0x260/0x49c
> > [edc47d20] [c00eeea0] __writeback_single_inode+0x34/0x120
> > [edc47d40] [c00ef508] writeback_sb_inodes+0x1fc/0x34c
> > [edc47db0] [c00ef6e4] __writeback_inodes_wb+0x8c/0xd0
> > [edc47de0] [c00efa90] wb_writeback+0x1b4/0x1bc
> > [edc47e20] [c00f06d0] wb_do_writeback+0x1ec/0x1f4
> > [edc47e80] [c00f0748] bdi_writeback_thread+0x70/0x140
> > [edc47eb0] [c0051c18] kthread+0xa8/0xac
> > [edc47f40] [c00106cc] ret_from_kernel_thread+0x64/0x6c
> > --- Exception: 0 at (null)
> > LR = (null)
> > Instruction dump:
> >
> > --
> > BOFH excuse #61:
> >
> > not approved by the FCC
next prev parent reply other threads:[~2013-04-03 9:53 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <863434221.7624846.1364452822093.JavaMail.root@redhat.com>
2013-03-28 6:40 ` s390x: kernel BUG at fs/ext4/inode.c:1591! CAI Qian
2013-03-28 6:40 ` CAI Qian
2013-03-28 9:44 ` CAI Qian
2013-03-28 9:44 ` CAI Qian
2013-03-28 12:05 ` Theodore Ts'o
2013-03-28 14:56 ` Dmitry Monakhov
2013-03-29 8:53 ` CAI Qian
2013-03-29 10:08 ` Dmitry Monakhov
2013-03-29 9:27 ` CAI Qian
2013-04-01 6:07 ` Dmitry Monakhov
2013-04-01 6:07 ` Dmitry Monakhov
2013-04-01 6:30 ` CAI Qian
2013-04-01 6:30 ` CAI Qian
2013-04-01 6:56 ` Dmitry Monakhov
2013-04-01 6:56 ` Dmitry Monakhov
2013-04-02 4:06 ` bisected! (WAS Re: s390x: kernel BUG at fs/ext4/inode.c:1591!) CAI Qian
[not found] ` <alpine.DEB.2.10.1304012249440.5874@trent.utfs.org>
2013-04-02 9:47 ` s390x: kernel BUG at fs/ext4/inode.c:1591! (powerpc too!) Dmitry Monakhov
2013-04-02 12:33 ` Zheng Liu
[not found] ` <alpine.DEB.2.10.1304021202100.13746@trent.utfs.org>
2013-04-02 19:49 ` Dmitry Monakhov
2013-04-02 19:49 ` Dmitry Monakhov
[not found] ` <alpine.DEB.2.10.1304020955280.13746@trent.utfs.org>
2013-04-02 17:19 ` Dmitry Monakhov
[not found] ` <alpine.DEB.2.10.1304021430480.13746@trent.utfs.org>
2013-04-02 22:05 ` Dmitry Monakhov
[not found] ` <alpine.DEB.2.10.1304021611020.13746@trent.utfs.org>
2013-04-03 8:52 ` Dmitry Monakhov
2013-04-03 9:53 ` Dmitry Monakhov [this message]
2013-04-03 10:22 ` Zheng Liu
2013-04-03 12:20 ` [PATCH] ext4: fix a big-endian bug when an extent is zeroed out Theodore Ts'o
2013-04-03 12:29 ` Dmitry Monakhov
2013-04-03 14:34 ` Eric Whitney
2013-04-03 14:41 ` Theodore Ts'o
2013-04-03 15:23 ` Florian Fainelli
2013-04-03 15:23 ` Florian Fainelli
2013-04-09 3:05 ` CAI Qian
2013-04-20 15:19 ` Theodore Ts'o
2013-04-22 3:40 ` CAI Qian
2013-04-22 10:04 ` Christian Borntraeger
2013-04-03 11:02 ` s390x: kernel BUG at fs/ext4/inode.c:1591! (powerpc too!) Dmitry Monakhov
[not found] ` <alpine.DEB.2.10.1304030935230.13746@trent.utfs.org>
2013-04-03 16:50 ` Dmitry Monakhov
2013-04-03 16:52 ` Zheng Liu
2013-04-02 10:01 ` bisected! (WAS Re: s390x: kernel BUG at fs/ext4/inode.c:1591!) Dmitry Monakhov
[not found] ` <876098945.1097253.1364961617725.JavaMail.root@redhat.com>
2013-04-03 7:14 ` CAI Qian
2013-04-03 7:51 ` Dmitry Monakhov
2013-04-03 8:09 ` Lukáš Czerner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87hajoq6s2.fsf@openvz.org \
--to=dmonakhov@openvz.org \
--cc=caiqian@redhat.com \
--cc=gnehzuil.liu@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=lists@nerdbynature.de \
--cc=sbest@redhat.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.