From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2943C2BD09 for ; Mon, 24 Jun 2024 08:56:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 35B826B0404; Mon, 24 Jun 2024 04:56:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 30AFD6B0406; Mon, 24 Jun 2024 04:56:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1ABCF6B0407; Mon, 24 Jun 2024 04:56:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EB5186B0404 for ; Mon, 24 Jun 2024 04:56:08 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AC0B7140C38 for ; Mon, 24 Jun 2024 08:56:08 +0000 (UTC) X-FDA: 82265175216.16.ECBF369 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by imf07.hostedemail.com (Postfix) with ESMTP id 31BFE4000B for ; Mon, 24 Jun 2024 08:56:04 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=yoseli.org header.s=gm1 header.b="MF/KheyQ"; dmarc=none; spf=none (imf07.hostedemail.com: domain of jeanmichel.hautbois@yoseli.org has no SPF policy when checking 217.70.183.198) smtp.mailfrom=jeanmichel.hautbois@yoseli.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719219355; a=rsa-sha256; cv=none; b=3GLnKUrBQ5M2St30uSSnttQV6ygJEphF1vnUefZwHwez2U/rp2cyaA3SSkg3+qw9ilmw3A gw//RzxBvUsXAjyJUL1QOeiyrmAiHMr62aQjKjer17CnBfjmtYl/kGiXnJ+tsIGB2RI6cN f27qfLZDPVj4ab+B77eA4BhscX0+8mU= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=yoseli.org header.s=gm1 header.b="MF/KheyQ"; dmarc=none; spf=none (imf07.hostedemail.com: domain of jeanmichel.hautbois@yoseli.org has no SPF policy when checking 217.70.183.198) smtp.mailfrom=jeanmichel.hautbois@yoseli.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719219355; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=TTrWWYjX1O8PWjMPZcafuZCd4nFca2QymCmZ8y3PRqA=; b=53Fu8Lae/9YZYnF+6hVX5YXnwY9F+h6ixOp3tTeu1uJPeNEcBgrerj7Xt2k/kk/18RD6W5 KOhgK/0IBXv0n9dJfRsN5JmYIfdNTckaJmGcmTbFXb2QLuzazLC6A5NXMEvUHT62P1RbJX MgMU0WrR5gWSW1XFMTnZyhoecejAJCA= Received: by mail.gandi.net (Postfix) with ESMTPSA id 4A236C000F; Mon, 24 Jun 2024 08:56:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1719219363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TTrWWYjX1O8PWjMPZcafuZCd4nFca2QymCmZ8y3PRqA=; b=MF/KheyQP04xHvovlmajvYn/au18vkWcHGdg9iBQI3jb34gUFYEFRx13DC8emFzI7q1/NY nZG2Yg/F/HFtcVDBfO0pbLD32M8rES5Kl9eGwzgp5rOtQac+NPOIDbKMd78I0ecZhUWARa diu9+1xM4iyfjTqw51RWt3uEDPJ4Om1oX+QFuw7qEbZAcyBD5r91O+xKgPXlZ6mBQEy/VA vajh6g5ZtYj+/9GyrGu9GkTxDLOqGaAc0H7D0uaG8p8rFyZFuJzAfAdIaxcX0ew0olWAf6 DdjdnjlnzL6XWU3OOPWQbw0/jDcGfW78PsFTxdt3i9D7OWjTtR9LFZWDCbXPIQ== Message-ID: <735e19b6-3747-417f-ba5b-1a7da137a3a3@yoseli.org> Date: Mon, 24 Jun 2024 10:56:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: m68k 54418 fails to execute user space To: linux-m68k@lists.linux-m68k.org, linux-mm@kvack.org, linux-mtd@lists.infradead.org Cc: Greg Ungerer , Geert Uytterhoeven , Michael Schmitz , Christoph Hellwig , wbx@openadk.org References: Content-Language: en-US From: Jean-Michel Hautbois In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-GND-Sasl: jeanmichel.hautbois@yoseli.org X-Rspamd-Queue-Id: 31BFE4000B X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: p3hwysfcfeke1f6saexswy9y8o91h8a6 X-HE-Tag: 1719219364-255029 X-HE-Meta: U2FsdGVkX19Lffkbn+Sjazef8S4DcRYcpqMO9qJ8u1urs6WI4pi4mk0eVEkgsSKRCwxPDJB+FF4WTE3Kf25MF2kNTt5QnBBEmOgU7DxVJwfU9zqgf7wp0JdMxc+bBP89yxEaPJU8Pkq3YlCQfS5ZUh1cCI9IwuKl/t3wOaPxMYULTuVUAnJn0WP1FD00Z7Unpb9XDjU7kHgyp9VeOik7Ka83b/5oE+lSQfig8riRysCWpwhIj1Kd15uEhQQWuvbAAd1LYOM+xinmcqwcujcjpJGuAJ1Owqjqqsc4TSBTsz/C9X//yuFUpgsTTRKTGjMbcpsgFfEcJ4aqG3NJHP6IuWCUcOIPaL4rwzqYgQOX0xEolq5enaI0K4/TkdxunGbVp4W6pgkpSSY9mRN0RwbGXZodanpnIOcPBAexg2HsrPmEI85Gln+ogCIeZrPW+LOqk1VYrauEZiuLdcD+qkO+dm575tWs7H7W/1RSz/bvcA4/QUE5e7V1jbobT/Cc05hSR8+V1TNXwIv2G85u5ID28F2SNu7xr54Co3ChC0b3kJvNx08Ab/f+ILo69FAMqj1YdD3kbd8hodEdh8tQYTKX6G6AHBa8G9qq5cb8+5IUWHXLAfeV/RnYZ91aOVPVyXLCZioldHWDJj4LmvpMwCBcK2rKC22T9C/l2z4C+RAUjGR+Cd5nBq373N+BtyUDDB4Febg2CVYJdkLEuSt/uIls5aCM/UkdMuCZaKG8hcuiR+kaYBytib/hUOzyXFAr0lRUaM5KcHZ8nOshTGFZTCQ6WyrW3IX5Alr5Rl0WUgYJqsOz5d+H/ak3IQpDzkkF6EOa6ykAoc+qzxRrVnwcSZYYhXN+n5k2NOO4WpvDnELwz26JQS0stReXdDcFASHIhXkK5rO6WMT4uR9NhSe4PaxOM63NX2aJq0fqHAjVBIDa2CwG/0Of9wong8kRPIi27VIduK6OWaAZrN+wf3rVVH9 cfhLJsHk LlaOOY0NAGZDd7au0DQWS4yiZKHSrrPDQO5GyPko+2rIRVcem12TYhyr5JJoLSJyzmJezkFSkKqaE5rNiEWlrotr0kyxeISCdVjp/jFDzwcjkGyL4jtTCldpkPIoG958cXySCKlo5q45kRpeSc/9DtZbTJj5zt2915rDW X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi all, I keep going with my investigations, hoping that someone will have an idea to help :-) ! I think I found something, but not sure: On 19/06/2024 14:29, Jean-Michel Hautbois wrote: > Hello ! > > I am (still :-)) trying to make an upstream kernel work on my mcf54418 > custom board. The kernel boots nicely now, but I have an issue when > executing binaries. > > I tried uclibc-ng and glibc, with similar results. > > First, I need a patch to change the ELF_ET_DYN_BASE value [1]. > Next, I switched from jffs2 to ubifs, but the behavior is the same, with > one or the other (just that jffs2 needs an extra patch to use > dirty_folio callback) [2]. > > Now, I wrote a very dumb and classical program: > > $> cat hello.c > #include > > int main() > { >     printf("Hello World on coldfire\n"); > } > > And I linked it statically, and dynamically (later called hello-stat and > hello-dyn). > > -- I added another patch to help debug the issue: > diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c > index a1f46919934c..d01bd3276204 100644 > --- a/fs/ubifs/file.c > +++ b/fs/ubifs/file.c > @@ -1474,6 +1474,7 @@ static bool ubifs_dirty_folio(struct address_space > *mapping, >          * An attempt to dirty a page without budgeting for it - should > not >          * happen. >          */ > +       VM_BUG_ON_FOLIO(ret != false, folio); >         ubifs_assert(c, ret == false); >         return ret; >  } > > Now comes the (fun ?) part. > > When I execute /bin/bash as my init, and I launch the hello-dyn, I get: > [    4.140000] Run /bin/bash as init process > [    4.150000]   with arguments: > [    4.150000]     /bin/bash > [    4.150000]   with environment: > [    4.160000]     HOME=/ > [    4.160000]     TERM=linux > bash: cannot set terminal process group (-1): Inappropriate ioctl for > device > bash: no job control in this shell > bash-5.2# [  166.510000] random: crng init done > > bash-5.2# /bin/hello-dyn > Hello World on coldfir[  382.450000] page: refcount:2 mapcount:1 > mapping:4206dc84 index:0x94 pfn:0x20ac9 > e > [  382.460000] aops:0x413b1470 ino:9f dentry name:"libc.so.6" > [  382.460000] flags: 0x38(uptodate|dirty|lru|zone=0) > [  382.470000] raw: 00000038 4fed43dc 4fed4544 4206dc84 00000094 > 00000000 00000000 00000002 > [  382.480000] raw: 41592000 > [  382.480000] page dumped because: VM_BUG_ON_FOLIO(ret != false) > [  382.490000] kernel BUG at fs/ubifs/file.c:1477! > [  382.490000] *** TRAP #7 ***   FORMAT=4 > [  382.490000] Current process id is 26 > [  382.490000] BAD KERNEL TRAP: 00000000 > [  382.490000] PC: [<410fba84>] ubifs_dirty_folio+0x3e/0x42 > [  382.490000] SR: 2010  SP: 4286bda4  a2: 41f24510 > [  382.490000] d0: 00000023    d1: 000000b9    d2: 4fed4444    d3: 6014c000 > [  382.490000] d4: 41593419    d5: 60150000    a0: 4286bce8    a1: 414d5180 > [  382.490000] Process hello-dyn (pid: 26, task=41f24510) > [  382.490000] Frame format=4 eff addr=41450e8d pc=414674a3 > [  382.490000] Stack from 4286bde0: > [  382.490000]         000005c5 4145aeed 41467485 4fed4444 410586de > 4206dc84 4fed4444 41593419 > [  382.490000]         4286bf1a 41074196 4fed4444 00000000 ffffffff > fffffffe 4286be9e 60150000 > [  382.490000]         00000001 41387c58 41073de0 4107797c 00000001 > 4283f184 ffffffff 42884600 > [  382.490000]         60150000 42884600 4283a3d0 4286a000 4283a3fc > 00000000 00000000 00000000 > [  382.490000]         00000000 4286bf5c 41074456 4286bf1a 4283f184 > 6014c000 60150000 4286be9e > [  382.490000]         4283a3fc 4286bef6 4286bf1a 4102a05a 4283a3d4 > 4283f344 4283a3d0 42830000 > [  382.490000] Call Trace: [<410586de>] folio_mark_dirty+0x44/0x58 > [  382.490000]  [<41074196>] unmap_page_range+0x3b6/0x602 > [  382.490000]  [<41387c58>] mas_find+0x0/0xfa > [  382.490000]  [<41073de0>] unmap_page_range+0x0/0x602 > [  382.490000]  [<4107797c>] vma_next+0x0/0x14 > [  382.490000]  [<41074456>] unmap_vmas+0x74/0x98 > [  382.490000]  [<4102a05a>] up_read+0x0/0x36 > [  382.490000]  [<41079ab2>] exit_mmap+0xd4/0x1c0 > [  382.490000]  [<41009300>] arch_local_irq_enable+0x0/0xc > [  382.490000]  [<410092f4>] arch_local_irq_disable+0x0/0xc > [  382.490000]  [<41006b76>] __mmput+0x2e/0x86 > [  382.490000]  [<4100a080>] do_exit+0x21e/0x6e8 > [  382.490000]  [<4100a6c8>] sys_exit_group+0x0/0x14 > [  382.490000]  [<4100a686>] do_group_exit+0x22/0x64 > [  382.490000]  [<4100a6dc>] pid_child_should_wake+0x0/0x56 > [  382.490000]  [<41005848>] system_call+0x54/0xa8 > [  382.490000] > [  382.490000] Code: 74a3 4879 4145 0e8d 4eb9 4139 adb8 4e47 <241f> 4e75 > 91c8 f4e8 5288 f4e8 5288 f4e8 5288 f4e8 41e8 000d b1fc 0000 07f0 63e6 > [  382.490000] Disabling lock debugging due to kernel taint > [  382.490000] note: hello-dyn[26] exited with irqs disabled > [  382.500000] Fixing recursive fault but reboot is needed! > [  387.520000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: folio->private != NULL, in fs/ubifs/file.c:1016 > [  387.530000] UBIFS warning (ubi0:0 pid 24): ubifs_ro_mode: switched to > read-only mode, error -22 > [  387.540000] CPU: 0 PID: 24 Comm: kworker/u4:1 Tainted: G      D > 6.10.0-rc4-00050-g21c7ef993c85 #491 > [  387.540000] Workqueue: writeback wb_workfn (flush-ubifs_0_0) > [  387.540000] Stack from 41c7fc1c: > [  387.540000]         41c7fc1c 4145ed0d 4145ed0d 00000000 0012d0a0 > 41e4d000 413a271a 4145ed0d > [  387.540000]         410fbf84 41e4d000 ffffffea 414674a3 000003f8 > 4fed4444 41c7fd72 41c7fcea > [  387.540000]         41c7fce6 41c7fd72 00002230 41058b72 41051efc > 41c7fd72 41051efc 41c7fd72 > [  387.540000]         41058e74 4fed4444 41c7fd72 00000000 00000064 > 00000400 4281c200 4206dc84 > [  387.540000]         00000000 410fb9dc 4206dc84 41c7fd72 410fbf00 > 00000000 41059f34 4206dc84 > [  387.540000]         41c7fd72 4206dbac 00000400 00000000 00000004 > 41c7fd72 4206dbac 41c7fd72 > [  387.540000] Call Trace: [<413a271a>] dump_stack+0xc/0x10 > [  387.540000]  [<410fbf84>] ubifs_writepage+0x84/0x1e0 > [  387.540000]  [<41058b72>] writeback_iter+0x0/0x2b0 > [  387.540000]  [<41051efc>] folio_unlock+0x0/0x5c > [  387.540000]  [<41051efc>] folio_unlock+0x0/0x5c > [  387.540000]  [<41058e74>] write_cache_pages+0x52/0x6e > [  387.540000]  [<410fb9dc>] ubifs_writepages+0x14/0x1a > [  387.540000]  [<410fbf00>] ubifs_writepage+0x0/0x1e0 > [  387.540000]  [<41059f34>] do_writepages+0x76/0x192 > [  387.540000]  [<41024378>] vruntime_eligible+0x70/0x8c > [  387.540000]  [<410b7b06>] __writeback_single_inode+0x46/0x182 > [  387.540000]  [<410b7e9a>] writeback_sb_inodes+0x2c/0x31a > [  387.540000]  [<410b7ffc>] writeback_sb_inodes+0x18e/0x31a > [  387.540000]  [<4109784a>] super_trylock_shared+0x0/0x40 > [  387.540000]  [<410b7e6e>] writeback_sb_inodes+0x0/0x31a > [  387.540000]  [<4102a05a>] up_read+0x0/0x36 > [  387.540000]  [<41020000>] devm_register_sys_off_handler+0x18/0x64 > [  387.540000]  [<410b81f4>] __writeback_inodes_wb+0x6c/0x9e > [  387.540000]  [<41059ce8>] wb_over_bg_thresh+0x0/0x7c > [  387.540000]  [<410b8332>] queue_io+0x0/0xaa > [  387.540000]  [<410b8484>] wb_writeback.isra.0+0xa8/0x132 > [  387.540000]  [<410b84ea>] wb_writeback.isra.0+0x10e/0x132 > [  387.540000]  [<410b72d8>] arch_local_irq_enable+0x0/0xc > [  387.540000]  [<410b72cc>] arch_local_irq_disable+0x0/0xc > [  387.540000]  [<410b740a>] finish_writeback_work+0x0/0x44 > [  387.540000]  [<410b83dc>] wb_writeback.isra.0+0x0/0x132 > [  387.540000]  [<410b8ac4>] wb_workfn+0x188/0x286 > [  387.540000]  [<41393fba>] sized_strscpy+0x0/0x13e > [  387.540000]  [<41016312>] list_del_init+0x0/0x18 > [  387.540000]  [<41021ccc>] arch_local_irq_disable+0x0/0x12 > [  387.540000]  [<41018382>] process_scheduled_works+0x172/0x220 > [  387.540000]  [<410162e8>] arch_local_irq_disable+0x0/0xc > [  387.540000]  [<41017b8c>] assign_work+0x0/0x54 > [  387.540000]  [<41018afa>] worker_thread+0x0/0x212 > [  387.540000]  [<41018cd2>] worker_thread+0x1d8/0x212 > [  387.540000]  [<4101d3f4>] kthread_exit+0x0/0x14 > [  387.540000]  [<41018afa>] worker_thread+0x0/0x212 > [  387.540000]  [<4101d6ac>] kthread+0x9a/0xa4 > [  387.540000]  [<4101d612>] kthread+0x0/0xa4 > [  387.540000]  [<410033d0>] ret_from_kernel_thread+0xc/0x14 > [  387.540000] > [  387.550000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: !c->ro_media && !c->ro_mount, in fs/ubifs/journal.c:108 > [  387.570000] UBIFS error (ubi0:0 pid 24): make_reservation: cannot > reserve 4144 bytes in jhead 2, error -30 > [  387.580000] UBIFS error (ubi0:0 pid 24): do_writepage: cannot write > folio 148 of inode 159, error -30 > [  387.590000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: folio->private != NULL, in fs/ubifs/file.c:944 > [  387.600000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: c->bi.dd_growth >= 0, in fs/ubifs/budget.c:550 > > If I reboot, and launch hello-stat from bash, I get: > [    4.140000] Run /bin/bash as init process > [    4.150000]   with arguments: > [    4.150000]     /bin/bash > [    4.150000]   with environment: > [    4.160000]     HOME=/ > [    4.160000]     TERM=linux > bash: cannot set terminal process group (-1): Inappropriate ioctl for > device > bash: no job control in this shell > bash-5.2# /bin/hello-stat > > I don't have a printf() printed, and a second launch results in: > bash-5.2# /bin/hello-stat > [   18.540000] page: refcount:2 mapcount:1 mapping:4207134c index:0x29 > pfn:0x27f23 > [   18.550000] aops:0x413b1470 ino:8f dentry name:"hello-stat" > [   18.560000] flags: 0x38(uptodate|dirty|lru|zone=0) > [   18.560000] raw: 00000038 4fed5a14 414f3fdc 4207134c 00000029 > 00000000 00000000 00000002 > [   18.570000] raw: 4fe46000 > [   18.570000] page dumped because: VM_BUG_ON_FOLIO(ret != false) > [   18.580000] kernel BUG at fs/ubifs/file.c:1477! > [   18.580000] *** TRAP #7 ***   FORMAT=4 > [   18.580000] Current process id is 28 > [   18.580000] BAD KERNEL TRAP: 00000000 > [   18.580000] PC: [<410fba84>] ubifs_dirty_folio+0x3e/0x42 > [   18.580000] SR: 2010  SP: 4288bc9c  a2: 41f24a10 > [   18.580000] d0: 00000023    d1: 000000b8    d2: 4ffda0ec    d3: 80054000 > [   18.580000] d4: 4fe47419    d5: 8005a000    a0: 4288bbe0    a1: 414d5180 > [   18.580000] Process hello-stat (pid: 28, task=41f24a10) > [   18.580000] Frame format=4 eff addr=41450e8d pc=414674a3 > [   18.580000] Stack from 4288bcd8: > [   18.580000]         000005c5 4145aeed 41467485 4ffda0ec 410586de > 4207134c 4ffda0ec 4fe47419 > [   18.580000]         4288be12 41074196 4ffda0ec 00000000 ffffffff > fffffffe 4288bd96 8005a000 > [   18.580000]         00000001 41387c58 41073de0 4107797c 00000001 > 4283eb64 ffffffff 42890800 > [   18.580000]         8005a000 42890800 4283a1f0 4288a000 4283a21c > 00000000 00000000 00000000 > [   18.580000]         00000000 4288be54 41074456 4288be12 4283eb64 > 80052000 8005a000 4288bd96 > [   18.580000]         4283a21c 4288bdee 4288be12 4102a05a 4283a1f4 > 4283eaf4 4283a1f0 42830000 > [   18.580000] Call Trace: [<410586de>] folio_mark_dirty+0x44/0x58 > [   18.580000]  [<41074196>] unmap_page_range+0x3b6/0x602 > [   18.580000]  [<41387c58>] mas_find+0x0/0xfa > [   18.580000]  [<41073de0>] unmap_page_range+0x0/0x602 > [   18.580000]  [<4107797c>] vma_next+0x0/0x14 > [   18.580000]  [<41074456>] unmap_vmas+0x74/0x98 > [   18.580000]  [<4102a05a>] up_read+0x0/0x36 > [   18.580000]  [<41079ab2>] exit_mmap+0xd4/0x1c0 > [   18.580000]  [<41009300>] arch_local_irq_enable+0x0/0xc > [   18.580000]  [<410092f4>] arch_local_irq_disable+0x0/0xc > [   18.580000]  [<41014283>] __sys_setreuid+0x99/0x138 > [   18.580000]  [<41006b76>] __mmput+0x2e/0x86 > [   18.580000]  [<4100a080>] do_exit+0x21e/0x6e8 > [   18.580000]  [<4100a686>] do_group_exit+0x22/0x64 > [   18.580000]  [<4101276e>] get_signal+0x420/0x502 > [   18.580000]  [<41003d68>] test_ti_thread_flag+0x0/0x14 > [   18.580000]  [<41004444>] do_notify_resume+0x4a/0x4e2 > [   18.580000]  [<41011cac>] force_sig_fault_to_task+0x40/0x4c > [   18.580000]  [<410058fe>] Lsignal_return+0x14/0x26 > [   18.580000] > [   18.580000] Code: 74a3 4879 4145 0e8d 4eb9 4139 adb8 4e47 <241f> 4e75 > 91c8 f4e8 5288 f4e8 5288 f4e8 5288 f4e8 41e8 000d b1fc 0000 07f0 63e6 > [   18.580000] Disabling lock debugging due to kernel taint > [   18.580000] note: hello-stat[28] exited with irqs disabled > [   18.590000] Fixing recursive fault but reboot is needed! > [   23.600000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: folio->private != NULL, in fs/ubifs/file.c:1016 > [   23.610000] UBIFS warning (ubi0:0 pid 24): ubifs_ro_mode: switched to > read-only mode, error -22 > [   23.620000] CPU: 0 PID: 24 Comm: kworker/u4:1 Tainted: G      D > 6.10.0-rc4-00050-g21c7ef993c85 #491 > [   23.620000] Workqueue: writeback wb_workfn (flush-ubifs_0_0) > [   23.620000] Stack from 41c7fc1c: > [   23.620000]         41c7fc1c 4145ed0d 4145ed0d 00000000 00233cf8 > 41e4d000 413a271a 4145ed0d > [   23.620000]         410fbf84 41e4d000 ffffffea 414674a3 000003f8 > 4ffda0ec 41c7fd72 41c7fcea > [   23.620000]         41c7fce6 41c7fd72 ffff9408 41058b72 41051efc > 41c7fd72 41051efc 41c7fd72 > [   23.620000]         41058e74 4ffda0ec 41c7fd72 00000000 00000064 > 00000400 4281c200 4207134c > [   23.620000]         00000000 410fb9dc 4207134c 41c7fd72 410fbf00 > 00000000 41059f34 4207134c > [   23.620000]         41c7fd72 42071274 00000400 00000000 00000004 > 41c7fd72 42071274 41c7fd72 > [   23.620000] Call Trace: [<413a271a>] dump_stack+0xc/0x10 > [   23.620000]  [<410fbf84>] ubifs_writepage+0x84/0x1e0 > [   23.620000]  [<41058b72>] writeback_iter+0x0/0x2b0 > [   23.620000]  [<41051efc>] folio_unlock+0x0/0x5c > [   23.620000]  [<41051efc>] folio_unlock+0x0/0x5c > [   23.620000]  [<41058e74>] write_cache_pages+0x52/0x6e > [   23.620000]  [<410fb9dc>] ubifs_writepages+0x14/0x1a > [   23.620000]  [<410fbf00>] ubifs_writepage+0x0/0x1e0 > [   23.620000]  [<41059f34>] do_writepages+0x76/0x192 > [   23.620000]  [<41024378>] vruntime_eligible+0x70/0x8c > [   23.620000]  [<410b7b06>] __writeback_single_inode+0x46/0x182 > [   23.620000]  [<410b7e9a>] writeback_sb_inodes+0x2c/0x31a > [   23.620000]  [<410b7ffc>] writeback_sb_inodes+0x18e/0x31a > [   23.620000]  [<4109784a>] super_trylock_shared+0x0/0x40 > [   23.620000]  [<410b7e6e>] writeback_sb_inodes+0x0/0x31a > [   23.620000]  [<4102a05a>] up_read+0x0/0x36 > [   23.620000]  [<41020000>] devm_register_sys_off_handler+0x18/0x64 > [   23.620000]  [<410b81f4>] __writeback_inodes_wb+0x6c/0x9e > [   23.620000]  [<41059ce8>] wb_over_bg_thresh+0x0/0x7c > [   23.620000]  [<410b8332>] queue_io+0x0/0xaa > [   23.620000]  [<410b8484>] wb_writeback.isra.0+0xa8/0x132 > [   23.620000]  [<410b84ea>] wb_writeback.isra.0+0x10e/0x132 > [   23.620000]  [<410b72d8>] arch_local_irq_enable+0x0/0xc > [   23.620000]  [<410b72cc>] arch_local_irq_disable+0x0/0xc > [   23.620000]  [<410b740a>] finish_writeback_work+0x0/0x44 > [   23.620000]  [<410b83dc>] wb_writeback.isra.0+0x0/0x132 > [   23.620000]  [<410b8ac4>] wb_workfn+0x188/0x286 > [   23.620000]  [<41393fba>] sized_strscpy+0x0/0x13e > [   23.620000]  [<41016312>] list_del_init+0x0/0x18 > [   23.620000]  [<41021ccc>] arch_local_irq_disable+0x0/0x12 > [   23.620000]  [<41018382>] process_scheduled_works+0x172/0x220 > [   23.620000]  [<410162e8>] arch_local_irq_disable+0x0/0xc > [   23.620000]  [<41017b8c>] assign_work+0x0/0x54 > [   23.620000]  [<41018afa>] worker_thread+0x0/0x212 > [   23.620000]  [<41018cd2>] worker_thread+0x1d8/0x212 > [   23.620000]  [<4101d3f4>] kthread_exit+0x0/0x14 > [   23.620000]  [<41018afa>] worker_thread+0x0/0x212 > [   23.620000]  [<4101d6ac>] kthread+0x9a/0xa4 > [   23.620000]  [<4101d612>] kthread+0x0/0xa4 > [   23.620000]  [<410033d0>] ret_from_kernel_thread+0xc/0x14 > [   23.620000] > [   23.630000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: !c->ro_media && !c->ro_mount, in fs/ubifs/journal.c:108 > [   23.650000] UBIFS error (ubi0:0 pid 24): make_reservation: cannot > reserve 4144 bytes in jhead 2, error -30 > [   23.660000] UBIFS error (ubi0:0 pid 24): do_writepage: cannot write > folio 41 of inode 143, error -30 > [   23.670000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: folio->private != NULL, in fs/ubifs/file.c:944 > [   23.680000] UBIFS error (ubi0:0 pid 24): ubifs_assert_failed: UBIFS > assert failed: c->bi.dd_growth >= 0, in fs/ubifs/budget.c:550 > > Now, if I change the init process, and call /bin/hello-dyn instead: > [    4.140000] Run /bin/hello-dyn as init process > [    4.150000]   with arguments: > [    4.150000]     /bin/hello-dyn > [    4.150000]   with environment: > [    4.160000]     HOME=/ > [    4.160000]     TERM=linux > Hello World on coldfire > [    4.470000] Kernel panic - not syncing: Attempted to kill init! > exitcode=0x00000000 > [    4.470000] CPU: 0 PID: 1 Comm: hello-dyn Not tainted > 6.10.0-rc4-00050-g21c7ef993c85 #491 > [    4.470000] Stack from 4186df2c: > [    4.470000]         4186df2c 4145ed0d 4145ed0d 41009300 00000001 > 000000ff 413a271a 4145ed0d > [    4.470000]         4139a532 41009300 00000000 000000ff 00000001 > 418a0010 00000000 410092f4 > [    4.470000]         4186dfac 41009fd4 41452c80 00000000 00000000 > 4100a6c8 00000000 00000001 > [    4.470000]         00000000 00000001 41872010 6014f468 6014c000 > 41872010 6014f468 6014c000 > [    4.470000]         601501cc 4100a686 00000000 4186c000 00000000 > 4100a6dc 00000000 41005848 > [    4.470000]         00000000 00000001 000000f7 00000000 00000001 > 60161700 60161700 601501d4 > [    4.470000] Call Trace: [<41009300>] arch_local_irq_enable+0x0/0xc > [    4.470000]  [<413a271a>] dump_stack+0xc/0x10 > [    4.470000]  [<4139a532>] panic+0xc6/0x25c > [    4.470000]  [<41009300>] arch_local_irq_enable+0x0/0xc > [    4.470000]  [<410092f4>] arch_local_irq_disable+0x0/0xc > [    4.470000]  [<41009fd4>] do_exit+0x172/0x6e8 > [    4.470000]  [<4100a6c8>] sys_exit_group+0x0/0x14 > [    4.470000]  [<4100a686>] do_group_exit+0x22/0x64 > [    4.470000]  [<4100a6dc>] pid_child_should_wake+0x0/0x56 > [    4.470000]  [<41005848>] system_call+0x54/0xa8 > [    4.470000] > [    4.470000] ---[ end Kernel panic - not syncing: Attempted to kill > init! exitcode=0x00000000 ]--- > > Which is expected. So, I modified hello-dyn a bit: > $> cat hello.c > #include > #include > #include > > int main() > { >     printf("Hello World on coldfire, execute bash !\n"); >     /* Let's now execute /bin/bash with execve */ >     char *args[] = {"/bin/bash", NULL}; >     execve(args[0], args, NULL); >     /* If we reach here, it means execve failed */ >     perror("execve"); >     exit(EXIT_FAILURE); > } > > And now, I get: > Hello World on coldfire, execute bash ! > bash: cannot set terminal process group (-1): Inappropriate ioctl for > device > bash: no job control in this shell > bash-5.2# ls > [  122.030000] page: refcount:3 mapcount:2 mapping:4206cdc4 index:0x94 > pfn:0x20ab2 > [  122.030000] aops:0x413b1470 ino:9f dentry name:"libc.so.6" > [  122.040000] flags: 0x38(uptodate|dirty|lru|zone=0) > [  122.040000] raw: 00000038 4fed3fec 4fed4208 4206cdc4 00000094 > 00000000 00000001 00000003 > [  122.050000] raw: 41564000 > [  122.050000] page dumped because: VM_BUG_ON_FOLIO(ret != false) > [  122.060000] kernel BUG at fs/ubifs/file.c:1477! > [  122.060000] *** TRAP #7 ***   FORMAT=4 > [  122.060000] Current process id is 26 > [  122.060000] BAD KERNEL TRAP: 00000000 > [  122.060000] PC: [<410fba84>] ubifs_dirty_folio+0x3e/0x42 > [  122.060000] SR: 2010  SP: 42871cec  a2: 41f24510 > [  122.060000] d0: 00000023    d1: 000000b9    d2: 4fed4108    d3: 601ce000 > [  122.060000] d4: 41565411    d5: 601d2000    a0: 42871c30    a1: 414d5180 > [  122.060000] Process bash (pid: 26, task=41f24510) > [  122.060000] Frame format=4 eff addr=41450e8d pc=414674a3 > When I printk the do_page_fault first debug, I get for the first call to ls: bash-5.2# ls [ 14.700000] do page fault: [ 14.700000] regs->sr=0x0, regs->pc=0x70069ee6, address=0x70069ee6, 0, (ptrval) This call works almost fine (I still have the assert failed: folio->private != NULL issue). And when I call it a second time, I get: bash-5.2# ls [ 19.820000] do page fault: [ 19.820000] regs->sr=0x0, regs->pc=0x6011d65a, address=0x700e2004, 2, (ptrval) The address corresponds to the defined zone ELF_ET_DYN_BASE as I set it to 0x70000000. regs->pc is not the same as the address. It might be unrelevant, but any help is appreciated to understand the process behind :-). I keep digging, and I am in the asm part which fears me a bit ! Thanks ! JM