• Metztli IT's
  • Metztli Bits
  • Ixiptli
  • TIGroup
  • Amatl
  • Calli

Amatzintli

Paper or Book

nahuifs

In nehuatl centzon ca nepohualtzintzin huel acic.
  • Front Page
  • Latest comments
  • PHP 8.0 Built in the 'Debian way' Paradigm on Metztli Reiser4 Computing Environment.
  • My PHP 7.3.11 and Nginx 1.17.2 builds, as well as PHP app b2evolution on Metztli Reiser4 Bare Metal Machine Instance: phpinfo()
  • Aztatlan: Metztli - Reiser4 / Zstd Serial Log Output From Successful 2TB Google Cloud Image First Boot.
  • Successful Metztli Reiser4 SFRN 4.0.2/Zstd Debian Stretch installation into Dell Intel Xeon X3220 Dedicated server.
  • Successful Reiser4 SFRN 4.0.2 installation with Linux 4.14.4-1 with Zstd compression on HP Notebook
  • Metztli-Reiser4 Custom Debian-Installer (d-i)
  • Metztli Reiser4 (SFRN 4.0.1) ~2TB Debian Stretch Image Boot Log During Google Compute Engine (GCE) Cloud Instantiation.
  • Metztli-Reiser4 successful Debian Stretch netboot/USB install on 1.3 TB (terabyte) reiser4-formatted root fs on HP
  • Reiser4 filesystem and the UNIX 2038 date issue.
  • Data striping in Reiser4
  • ← "Er... Does anybody maintain reiser4 these days?"¹
  • statfs(2) for Reiser4 →
  1. Amatzintli
  2. reiser4
  3. [PATCH] reiser4: prevent system lockups.

[PATCH] reiser4: prevent system lockups.

[PATCH] reiser4: prevent system lockups.

∙

From reiserfs-devel Wed Feb 05 00:28:06 2020
From: Edward Shishkin <edward.shishkin () gmail ! com>
Date: Wed, 05 Feb 2020 00:28:06 +0000
To: reiserfs-devel
Subject: [PATCH] reiser4: prevent system lockups
Message-Id: <94861335-0ff3-a8cf-8d73-e0f521fa0ffa () gmail ! com>
X-MARC-Message: https://marc.info/?l=reiserfs-devel&m=158086248927420
MIME-Version: 1
Content-Type: multipart/mixed; boundary="--------------F3FF70D4737419259F49BAF5"

This is a multi-part message in MIME format.
--------------F3FF70D4737419259F49BAF5
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi all,

Starting from Linux-4.15, VFS introduces optimizations, which
are incompatible with Reiser4 (as well as with any FS possessing
an advanced transaction manager). Here is the problematic commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aa65c29ce1b6e1990cd2c7d8004bbea7ff3aff38

The attached patch fixes the problem. This patch is against
Linux-5.4+reiser4. Please, apply.

Later I'll prepare backports for all the mentioned kernels and will
put them on Sourceforge. If someone urgently needs a backport, then
let me know.

Thanks,
Edward.

--------------F3FF70D4737419259F49BAF5
Content-Type: text/x-patch;
name="reiser4-fix-lockup.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="reiser4-fix-lockup.patch"

diff -urN linux-5.4.6/fs/reiser4/page_cache.c  linux-5.4.6.patched/fs/reiser4/page_cache.c
---  linux-5.4.6/fs/reiser4/page_cache.c   2020-02-05 00:08:07.121592727 +0100
+++  linux-5.4.6.patched/fs/reiser4/page_cache.c   2020-02-05 00:09:44.508645047 +0100
@@ -549,7 +549,8 @@
                        */
                        .releasepage = reiser4_releasepage,
                        .direct_IO = NULL,
-                      .migratepage = reiser4_migratepage
+                      .migratepage = reiser4_migratepage,
+                      .batch_lock_tabu = 1
   };

/* called just before page is released (no longer used by reiser4). Callers:
diff -urN linux-5.4.6/fs/reiser4/plugin/object.c  linux-5.4.6.patched/fs/reiser4/plugin/object.c
---  linux-5.4.6/fs/reiser4/plugin/object.c     2020-02-05 00:08:07.129592814 +0100
+++  linux-5.4.6.patched/fs/reiser4/plugin/object.c     2020-02-05 00:09:44.508645047 +0100
@@ -150,7 +150,8 @@
                      .bmap = reiser4_bmap_dispatch,
                      .invalidatepage = reiser4_invalidatepage,
                      .releasepage = reiser4_releasepage,
-                    .migratepage = reiser4_migratepage
+                    .migratepage = reiser4_migratepage,
+                    .batch_lock_tabu = 1
   };

/* VFS methods for symlink files */
diff -urN linux-5.4.6/include/linux/fs.h  linux-5.4.6.patched/include/linux/fs.h
---  linux-5.4.6/include/linux/fs.h     2020-02-05 00:08:07.135592878 +0100
+++  linux-5.4.6.patched/include/linux/fs.h     2020-02-05 00:09:21.339394689 +0100
@@ -409,6 +409,7 @@
                     int (*swap_activate)(struct swap_info_struct *sis, struct file *file,
                                                                  sector_t *span);
                     void (*swap_deactivate)(struct file *file);
+                   int batch_lock_tabu;
   };

extern const struct address_space_operations empty_aops;
diff -urN linux-5.4.6/mm/truncate.c  linux-5.4.6.patched/mm/truncate.c
---  linux-5.4.6/mm/truncate.c     2019-12-21 11:05:23.000000000 +0100
+++  linux-5.4.6.patched/mm/truncate.c     2020-02-05 00:09:21.339394689 +0100
@@ -360,6 +360,13 @@
                                                                    continue;
                                                 }
                                                 pagevec_add(&locked_pvec, page);
+                                               if (mapping->a_ops->batch_lock_tabu)
+                                                                  /*
+                                                                    * the file system doesn't allow to hold
+                                                                    * many pages locked, while calling
+                                                                    * ->invalidatepage() for one of them
+                                                                  */
+                                                                   break;
                                }
                                for (i = 0; i < pagevec_count(&locked_pvec); i++)
                                                 truncate_cleanup_page(mapping, locked_pvec.pages[i]);

--------------F3FF70D4737419259F49BAF5--

Attachments:

  • reiser4-fix-lockup.patch (2.1 KB)
Tags: VFS, lockups, patch, reiser4

No feedback yet


Form is loading...

Search this manual:

Content Hierarchy

  • Paste
  • reiser4
    • Metztli Reiser4 Successful install on Supermicro bare metal Intel 8-core E3-1270v6, 32768MB RAM, 2x 240GB SSD, remote server
    • E21 / EFL 1.22.0 and Terminology 1.4.0 on VirtualBox 6.0.6 Metztli Reiser4 10GB Slice.
    • Xochiquetzal: fsck.reiser4 --fix ∙ Upgrading From Prior Reiser4 Software Format Release Number (SFRN).
    • Metztli Reiser4 successful install on HP ProLiant DL325 Gen10 AMD EPYC 7351P 16-Core Processor, 2 threads per core
    • Metztli Reiser4 on HP ProLiant DL325 Gen10 AMD Epyc 7351P 16-Cores 64GB RAM
    • statfs(2) for Reiser4
    • The Design of Reiser4
    • [PATCH] reiser4: prevent system lockups.
    • "Er... Does anybody maintain reiser4 these days?"¹
    • 'maybe reiser4 is just terribly slow for this access pattern?'
    • volume.reiser4
    • volume.reiser4
    • Random Information
    • Installation Reports
    • manpage
  • Logs

Recent Posts

  • volume.reiser4
  • volume.reiser4
  • 'maybe reiser4 is just terribly slow for this access pattern?'
  • "Er... Does anybody maintain reiser4 these days?"¹
  • [PATCH] reiser4: prevent system lockups.
  • The Design of Reiser4
  • statfs(2) for Reiser4
  • Metztli Reiser4 on HP ProLiant DL325 Gen10 AMD Epyc 7351P 16-Cores 64GB RAM
  • Metztli Reiser4 successful install on HP ProLiant DL325 Gen10 AMD EPYC 7351P 16-Core Processor, 2 threads per core
  • Xochiquetzal: fsck.reiser4 --fix ∙ Upgrading From Prior Reiser4 Software Format Release Number (SFRN).

Recent photos

volume.reiser4
volume.reiser4
'maybe reiser4 is just terribly slow for this access pattern?'
'maybe reiser4 is just terribly slow for this access pattern?'
[PATCH] reiser4: prevent system lockups.
The Design of Reiser4
The Design of Reiser4
The Design of Reiser4
The Design of Reiser4
CCMS

This collection ©2021 by Jose • Contact • Help • Run your own website!