On Fri, Jun 5, 2020 at 2:26 PM Bruce Ashfield <[email protected]> wrote: > > In message: [linux-yocto] [PATCH v5.4-rt] jbd2: remove extra put_journal_head > call added in merge > on 05/06/2020 George McCollister wrote: > > > Remove an extra jbd2_journal_put_journal_head() call added in merge > > commit 1bd80362fc0b60d44d2808a6f8dc5f1054a9d8ea. > > jbd2_journal_put_journal_head() is already called after write_unlock(). > > > > This commit makes fs/jbd2 match v5.4.43-rt25 of > > git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git > > > > This sometimes caused the following invalid opcode error when a > > postgresql database was being written on an ext4 filesystem. > > > > invalid opcode: 0000 [#1] PREEMPT_RT SMP PTI > > CPU: 0 PID: 589 Comm: postmaster Not tainted 5.4.43-rt24-yocto-preempt-rt #1 > > Hardware name: advantech som-db5800-som-6867/som-db5800-som-6867, BIOS > > 2018.09 03/29/2019 > > RIP: 0010:jbd2_journal_put_journal_head+0x1cb/0x1d7 > > Code: 8b 03 a9 00 00 40 00 75 f4 e9 65 fe ff ff 0f 0b 48 8b 00 a9 00 00 04 > > 00 0f 84 26 ff ff ff e8 3c 12 c8 ff e9 1c ff ff ff 0f 0b <0f> 0b 0f 0b 0f > > 0b 0f 0b 0f 0b 0f 0b 0f 1f 44 00 00 55 48 89 e5 53 > > RSP: 0018:ffffb34200e0f930 EFLAGS: 00010286 > > > > RAX: ffff9b4db6663540 RBX: ffff9b4db65b0390 RCX: 0000000000000001 > > RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000000 > > RBP: ffffb34200e0f948 R08: 0000000000000000 R09: 0000000000000001 > > R10: ffffffffffffffc0 R11: 000000000000003f R12: ffff9b4db6663540 > > R13: ffff9b4db65b0390 R14: ffff9b4db6663540 R15: 0000000000001000 > > FS: 00007fadff2ba740(0000) GS:ffff9b4df9000000(0000) knlGS:0000000000000000 > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > CR2: 000055a694a84530 CR3: 00000000735f8000 CR4: 00000000001006f0 > > Call Trace: > > jbd2_journal_invalidatepage+0x276/0x390 > > __ext4_journalled_invalidatepage+0x62/0x100 > > ext4_journalled_invalidatepage+0xe/0x20 > > truncate_cleanup_page+0x4a/0xb0 > > truncate_inode_pages_range+0x1ec/0x6f0 > > ? ext4_rename+0x170/0x870 > > ? preempt_count_add+0x4d/0xc0 > > ? preempt_count_add+0x4d/0xc0 > > ? migrate_enable+0x11e/0x430 > > ? preempt_count_add+0x4d/0xc0 > > ? migrate_enable+0x11e/0x430 > > truncate_inode_pages_final+0x38/0x60 > > ext4_evict_inode+0x11e/0x590 > > evict+0xc8/0x190 > > iput+0x191/0x250 > > dentry_unlink_inode+0x104/0x150 > > __dentry_kill+0xd4/0x170 > > dput.part.39+0x14c/0x2e0 > > dput+0xe/0x10 > > ovl_destroy_inode+0x19/0x50 > > destroy_inode+0x41/0x80 > > evict+0x135/0x190 > > iput+0x191/0x250 > > dentry_unlink_inode+0x104/0x150 > > __dentry_kill+0xd4/0x170 > > dput.part.39+0x14c/0x2e0 > > dput+0xe/0x10 > > do_renameat2+0x408/0x590 > > __x64_sys_rename+0x20/0x30 > > do_syscall_64+0x4d/0x120 > > entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > RIP: 0033:0x7fadff35f3a7 > > Code: e8 4e 5c 09 00 85 c0 0f 95 c0 0f b6 c0 f7 d8 5b c3 66 90 b8 ff ff ff > > ff 5b c3 66 0f 1f 84 00 00 00 00 00 b8 52 00 00 00 0f 05 <48> 3d 00 f0 ff > > ff 77 01 c3 48 8b 15 b9 ea 15 00 f7 d8 64 89 02 b8 > > RSP: 002b:00007fff018e7ff8 EFLAGS: 00000246 > > ORIG_RAX: 0000000000000052 > > RAX: ffffffffffffffda RBX: 000055a6949e2250 RCX: 00007fadff35f3a7 > > RDX: 000055a6949c3070 RSI: 00007fff018e8460 RDI: 00007fff018e8060 > > RBP: 00007fff018e8040 R08: 000000000000021f R09: 000055a6949e2250 > > R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff018e8060 > > R13: 00007fff018e8460 R14: 0000000000000000 R15: 0000000000000000 > > merged. > > Have you also submitted it upstream to the -rt list ?
Which -rt list? [email protected]? Or is there a linux -rt mailing list? This patch fixes a merge issue that I believe is specific to linux-yocto v5.4/standard/preempt-rt/base. The v5.4-rt branch of git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git doesn't have the issue. George > > Bruce > > > > > Signed-off-by: George McCollister <[email protected]> > > --- > > fs/jbd2/transaction.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c > > index 432c6cf8ebe9..9ba03242f1fb 100644 > > --- a/fs/jbd2/transaction.c > > +++ b/fs/jbd2/transaction.c > > @@ -2301,7 +2301,6 @@ static int journal_unmap_buffer(journal_t *journal, > > struct buffer_head *bh, > > if (journal->j_running_transaction && buffer_jbddirty(bh)) > > jh->b_next_transaction = > > journal->j_running_transaction; > > jh->b_modified = 0; > > - jbd2_journal_put_journal_head(jh); > > spin_unlock(&journal->j_list_lock); > > spin_unlock(&jh->b_state_lock); > > write_unlock(&journal->j_state_lock); > > -- > > 2.24.1 > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#8736): https://lists.yoctoproject.org/g/linux-yocto/message/8736 Mute This Topic: https://lists.yoctoproject.org/mt/74699374/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
