• 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
    • Metztli Reiser4 / Debian 11 Bullseye on Google Compute Engine (GCE)
    • installation-reports: Reiser4 Debian Bullseye ⇒ Supermicro AMD Epyc 7302P 16 cores/32 threads, 128GB
    • Metztli Reiser4 / Debian successful install to remote AMD Ryzen 5 PRO 3600 6-core / 32 Gb RAM server
    • Metztli Reiser4 / Debian successful install to remote AMD Ryzen 7 PRO 3700 8-core / 64 Gb RAM server
    • Metztli Reiser4 / Debian Bookworm successful installation onto native reiser4 -formatted media ...
    • installation-reports: Successful Metztli Reiser4 / Debian Bookworm netboot install on AceMagic AX16
    • Random Information
    • Installation Reports
    • manpage
  • Logs

Recent Posts

  • installation-reports: Successful Metztli Reiser4 / Debian Bookworm netboot install on AceMagic AX16
  • Metztli Reiser4 / Debian Bookworm successful installation onto native reiser4 -formatted media ...
  • PHP 8.0 with XMLRPC hack for Metztli Reiser4 / Debian Bullseye Backports AMD64
  • Metztli Reiser4 / Debian successful install to remote AMD Ryzen 7 PRO 3700 8-core / 64 Gb RAM server
  • Metztli Reiser4 / Debian successful install to remote AMD Ryzen 5 PRO 3600 6-core / 32 Gb RAM server
  • installation-reports: Reiser4 Debian Bullseye ⇒ Supermicro AMD Epyc 7302P 16 cores/32 threads, 128GB
  • Metztli Reiser4 / Debian 11 Bullseye on Google Compute Engine (GCE)
  • volume.reiser4
  • volume.reiser4
  • 'maybe reiser4 is just terribly slow for this access pattern?'

Recent Comments

  • vato on The Design of Reiser4
  • Jordi L'Escala on The Design of Reiser4

Recent photos

installation-reports: Successful Metztli Reiser4 / Debian Bookworm netboot install on AceMagic AX16
installation-reports: Successful Metztli Reiser4 / Debian Bookworm netboot install on AceMagic AX16
Metztli Reiser4 / Debian Bookworm successful installation onto native reiser4 -formatted media ...
PHP 8.0 with XMLRPC hack for Metztli Reiser4 / Debian Bullseye Backports AMD64
PHP 8.0 with XMLRPC hack for Metztli Reiser4 / Debian Bullseye Backports AMD64
Metztli Reiser4 / Debian successful install to remote AMD Ryzen 7 PRO 3700 8-core / 64 Gb RAM server
Metztli Reiser4 / Debian successful install to remote AMD Ryzen 5 PRO 3600 6-core / 32 Gb RAM server
installation-reports: Reiser4 Debian Bullseye ⇒ Supermicro AMD Epyc 7302P 16 cores/32 threads, 128GB
Metztli Reiser4 / Debian 11 Bullseye on Google Compute Engine (GCE)
CCMS

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