All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: Brian Norris <computersforpeace@gmail.com>
Cc: Kamlakant Patel <kamlakant.patel@broadcom.com>,
	Artem Bityutskiy <dedekind1@gmail.com>,
	Wang Guoli <andy.wangguoli@huawei.com>,
	Li Zefan <lizefan@huawei.com>,
	linux-mtd@lists.infradead.org,
	Ajesh Kunhipurayil Vijayan <ajesh@broadcom.com>
Subject: Re: JFFS2 locking issue on 3.14 + patches
Date: Wed, 30 Apr 2014 07:43:08 +0200	[thread overview]
Message-ID: <53608D6C.3020008@monstr.eu> (raw)
In-Reply-To: <20140429170530.GA9418@norris-Latitude-E6410>

[-- Attachment #1: Type: text/plain, Size: 4151 bytes --]

On 04/29/2014 07:05 PM, Brian Norris wrote:
> + Artem
> 
> On Tue, Apr 29, 2014 at 02:02:07PM +0200, Michal Simek wrote:
>> On 04/28/2014 06:51 PM, Brian Norris wrote:
>>> On Mon, Apr 28, 2014 at 05:57:12PM +0200, Michal Simek wrote:
>>>> we are having this problem with JFFS2 rootfs. It is v3.14 kernel
>>>> with these 5 patches which cherry-picked from 3.15.
>>>>
>>>> 41bf1a2 jffs2: Fix crash due to truncation of csize
>>>> 3367da5 jffs2: Fix segmentation fault found in stress test
>>>> 01887a3 jffs2: unlock f->sem on error in jffs2_new_inode()
>>>> 13b546d jffs2: avoid soft-lockup in jffs2_reserve_space_gc()
>>>> 3ead957 jffs2: remove from wait queue after schedule()
>>>
>>> Have you bisected these? And possibly test the patches in isolation
>>> (there are only 5)?
> [...]
>> Bisecting these five patches don't solve anything.
> 
> BTW, for your bisecting, did you have a clean version of your
> filesystem? After a bug creates CRC / data errors, it's possible
> that--no matter what kernel you boot--you will retain those errors on
> your flash media.

I didn't see any problem like this. It means filesystem
is not corrupted when CRC problem happen.


>> Locking issue was introduced 3.6-rc3 by this commit.
>> I will check CONFIG_JFFS2_FS_WRITEBUFFER option.
> 
> Sorry, I think I misread your first report; your problem is probably not
> with any of these 5 patches, but with some other yet-unsolved issue.

Yes that's my impression too.

>> commit a445f784ae5558a3da680aa6b39ed53c95a551c1
>> Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>> Date:   Thu Aug 23 10:10:07 2012 +0300
>>
>>     JFFS2: fix unmount regression
>>
>>     This patch fixes regression introduced by
>>     "8bdc81c jffs2: get rid of jffs2_sync_super". We submit a delayed work in order
>>     to make sure the write-buffer is synchronized at some point. But we do not
>>     flush it when we unmount, which causes an oops when we unmount the file-system
>>     and then the delayed work is executed.
>>
>>     This patch fixes the issue by adding a "cancel_delayed_work_sync()" infocation
>>     in the '->sync_fs()' handler. This will make sure the delayed work is canceled
>>     on sync, unmount and re-mount. And because VFS always callse 'sync_fs()' before
>>     unmounting or remounting, this fixes the issue.
>>
>>     Reported-by: Ludovic Desroches <ludovic.desroches@atmel.com>
>>     Cc: stable@vger.kernel.org [3.5+]
>>     Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>>     Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
>>     Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
> 
> Bisection turned you up here?

I have looked at it more and JFFS2_FS_WRITEBUFFER is broken from this commit.
When you disable it is working till this commit on Microblaze.

commit ac093f8d5e76be1f2654acfd7a59d339ba037654
Author:     Michael S. Tsirkin <mst@redhat.com>

    microblaze: uaccess s/might_sleep/might_fault/

And surprisingly the same change is causing problem on ARM.

commit ad72907acd2943304c292ae36960bb66e6dc23c9
Author:     Will Deacon <will.deacon@arm.com>

    ARM: 7528/1: uaccess: annotate [__]{get,put}_user functions with might_fault()


I have revert these 2 patches and disable JFFS2_FS_WRITEBUFFER
on the top of that 5 patches and everything seems to work.

Then I have tried to disable debug locking features which I have ON
and I have ended up that disabling CONFIG_PROVE_LOCKING
and CRC problem is back again.


> Honestly, I'm not too familiar with JFFS2. Maybe Artem can comment,
> since he authored this commit.

Is someone doing any testing on JFFS2 at all?
From this debugging it looks like that JFFS2 have some serious issues
for quite a long time.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

  reply	other threads:[~2014-04-30  5:50 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 15:57 JFFS2 locking issue on 3.14 + patches Michal Simek
2014-04-28 16:44 ` Joakim Tjernlund
2014-04-28 16:51 ` Brian Norris
2014-04-29 12:02   ` Michal Simek
2014-04-29 17:05     ` Brian Norris
2014-04-30  5:43       ` Michal Simek [this message]
2014-05-16  6:10         ` Brian Norris
2014-05-16  6:43           ` Michal Simek

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=53608D6C.3020008@monstr.eu \
    --to=monstr@monstr.eu \
    --cc=ajesh@broadcom.com \
    --cc=andy.wangguoli@huawei.com \
    --cc=computersforpeace@gmail.com \
    --cc=dedekind1@gmail.com \
    --cc=kamlakant.patel@broadcom.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=lizefan@huawei.com \
    /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.