Edward Shishkin | 20 Dec 21:24 2014
Picon

[PATCH] reiser4: precise discard - general case

This is the promised generalization, which is supposed to work for all 
discard
offsets and all discard unit sizes without any restrictions.

Complications in comparison with the previous implementation:

In this general case we need "precise" coordinates, where every 
individual byte
can be addressed. All local variables, which represent precise 
coordinates are
denoted with "prefixes" (a_len, d_off, p_tailp, etc). Local variables, 
which represent
"non-precise" coordinates (they are usually of type reiser4_block_nr) 
are denoted
without prefixes (start, len, end, tailp, etc).

Blocks, which contain head and tail paddings are now calculated using the
function size_in_blocks(), which actually is an expression for the 
minimal number
of blocks containing the precise extent.

The next trouble is "peculiarity in 0", encountered when calculating the 
blocks of
head padding. if discard offset is different from 0, then the first 
discard unit of the
partition is partial (its other part doesn't belong to our partition, so 
we can not
discard it). We handle this peculiarity by an additional check.

In other bits everything is the same.
(Continue reading)

doiggl | 15 Dec 10:50 2014
Picon

patches to apply to reiser4-for-3.17.2 patch

Hello,
- Do these patches apply on top of the reiser4-for-3.17.2 patch or not [1]
- Do any other patches apply on top of the reiser4-for-3.17.2 patch, if
so, which patches are they and is there a link to the patch?
--Thanks Glenn

[1]
[PATCH] reiser4: roll back space grabbing fixes
http://www.spinics.net/lists/reiserfs-devel/msg04549.html

--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Edward Shishkin | 14 Dec 01:17 2014
Picon

[PATCH] reiser4: roll back space grabbing fixes

Self-NACK-ed by Ivan Shapovalov
Ivan Shapovalov | 12 Dec 22:10 2014
Picon

[PATCH 0/6] reiser4: discard support: "precise discard" aka padding of extents to erase unit boundaries.

So, this patchset uses your algorithm of padding/gluing extents to be discarded.
I've added exact allocation primitives (is it what you've been talking about?),
made the discard procedure allocate blocks of all paddings it performs and
fixed an apparent bug in extent gluing which triggered the "edward-1635"
assertion.

Edward Shishkin (1):
  reiser4: iterate over extents in discard_atom

Ivan Shapovalov (5):
  reiser4: block_alloc: split block allocation accounting logic into separate functions for re-use.
  reiser4: block_alloc, plugin/space/bitmap: add a method for "exact" block allocation.
  reiser4: discard: don't be overly smart when gluing extents in discard_sorted_merged_extents().
  reiser4: blocknrlist: add operations blocknr_list_del() and blocknr_list_update_extent().
  reiser4: discard: allocate extent paddings.

 fs/reiser4/block_alloc.c                  | 175 +++++++++----
 fs/reiser4/block_alloc.h                  |   3 +
 fs/reiser4/blocknrlist.c                  |  38 +++
 fs/reiser4/discard.c                      | 410 +++++++++++++++++++++++++++---
 fs/reiser4/discard.h                      |   8 +-
 fs/reiser4/forward.h                      |   1 +
 fs/reiser4/init_super.c                   |   4 +
 fs/reiser4/plugin/space/bitmap.c          |  94 +++++--
 fs/reiser4/plugin/space/bitmap.h          |   3 +
 fs/reiser4/plugin/space/space_allocator.h |  10 +-
 fs/reiser4/super.h                        |   4 +
 fs/reiser4/txnmgr.h                       |   6 +
 12 files changed, 647 insertions(+), 109 deletions(-)

(Continue reading)

Ivan Shapovalov | 12 Dec 22:00 2014
Picon

[PATCHv4 00/10] reiser4: batch discard support (FITRIM ioctl): initial implementation.

This patch series implements FITRIM ioctl support in reiser4.

The FITRIM ioctl is supposed to be applied to any directory inside the target
filesystem. At least, this can be deduced from `fstrim` utility behavior on
mainstream filesystems (e. g. ext2/3/4).

The idea of implementation is per Edward's advices: FITRIM handler iteratively
grabs a portion of disk space, sequentially allocates extents within grabbed
space and commits the resulting atom. This way we avoid starving concurrent
processes of the disk space. This process is repeated until the partition has
been fully scanned and processed.

Points I'm really uncertain of:
- creation of empty atoms (reiser4_create_atom())
- handling of empty atoms in commit_current_atom()

v2: - fix PATCH 5/7 "reiser4: txnmgr: call reiser4_post_write_back_hook() for empty atoms."
      * fix a typo
      * release atom spinlock before calling reiser4_post_write_back_hook()

v3: - use bitwise shift instead of integer division by 4 to calculate 25%
    - honor "minlen" of ioctl parameters (minimal extent length to consider for discarding)
    - fix a stupidity in reiser4_trim_fs() (two local variables holding the same superblock pointer)

v4: - refactor BA_SOME_SPACE implementation, fix calculation of space-to-grab if !BA_RESERVED
    - rename reiser4_blocknr_hint's "forward" to "monotonic_forward"
    - move free space accounting by pre-commit hook to block_alloc.c
    - explain BA_DEFER flag behavior in comments
    - fix "minlen" addition to alloc_blocks_forward() (use minlen in both calls)
    - refactor (equivalent at this time ;)) reiser4_trim_fs()
(Continue reading)

Dušan Čolić | 10 Dec 12:38 2014
Picon

Fwd: Reiser4 for 3.16.2 problem: mount: mount /dev/md125 on /mnt/backup failed: Cannot allocate memory

On Mon, Dec 8, 2014 at 12:22 PM, Edward Shishkin
<edward.shishkin <at> gmail.com> wrote:
>
> Is .config the same as in the stuff for 3.10?
>

I double checked and maybe I messed up the diff between configs.

krshina3 src # diff -du config3.10good config3.16badfrom3.11 |grep -v
"#"|grep -v " <at>  <at> "| grep -e "+" -e "-"
--- config3.10good      2014-12-10 12:19:13.796804296 +0100
+++ config3.16badfrom3.11       2014-12-10 12:20:14.975493022 +0100
+
+CONFIG_GENTOO_LINUX=y
+CONFIG_GENTOO_LINUX_UDEV=y
+
+CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
-CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi
-fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9
-fcall-saved-r10 -fcall-saved-r11"
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_USELIB=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS=y
(Continue reading)

doiggl | 10 Dec 10:46 2014
Picon

Re: Reiser4 for 3.16.2 problem: mount: mount /dev/md125 on /mnt/backup failed: Cannot allocate memory

<CADW=+3=GpYCc3aQOexJY7afL6suKxXRhs=dkf0m9zZfHQ0cnFA <at> mail.gmail.com> <CADW=+3kpg6zYxNWwX5tN0AWZ8Cuof0ccVRsQaL-6knM5AmOhbg <at> mail.gmail.com>
Message-ID: <19cc0a2ad9f331ee56016e24dbeb6883 <at> mail.velocitynet.com.au>
X-Sender: doiggl <at> velocitynet.com.au
User-Agent: RoundCube Webmail/0.3.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8

Hello,
Something is eating up ram.

Yours reads:
# cat /proc/meminfo
MemTotal:        7867900 kB
MemFree:         1553044 kB
MemAvailable:    4853752 kB
Buffers:               0 kB
Cached:          2975880 kB

Mine reads:
#cat /proc/meminfo
MemTotal:        7932564 kB
MemFree:         5352992 kB
Buffers:           86092 kB
Cached:          1778548 kB

I have no r4 partitions mounted.
I have 8 GB ram installed

- What does your /proc/meminfo say  before using fsck.reiser4 /dev/md125
command ?
(Continue reading)

doiggl | 9 Dec 07:21 2014
Picon

Is there a Reiser4 patch set planned for linux-3.18 series or will reiser4-for-3.17.2.patch.gz work with it ?

Hello,
Question:
Is there a Reiser4 patch set planned for linux-3.18 series or will
reiser4-for-3.17.2.patch.gz work with it ?

https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.tar.xz
http://downloads.sourceforge.net/project/reiser4/reiser4-for-linux-3.x/reiser4-for-3.17.2.patch.gz

Thanks Glenn
--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Peter Zelezny | 8 Dec 00:40 2014
Picon

NULL pointer dereference in do_journal_end()

Hi,

I've recently come across an instance (yes just one) of a crash inside
do_journal_end().
Unfortunately it's difficult to nail down the exact reiserfs version, as
it is a vendor patched kernel: SuSE SLES 11 SP3, which is based on linux
kernel 3.0.82.

I realise the information I have is a bit limited, and I don't know the
steps to reproduce, but I am hoping someone recognises this as an old or
familiar issue.

By my analyses (I could be mistaken), journal_getblk() returned NULL,
which then caused set_buffer_uptodate to crash. Does it ring any bells
for someone familiar with the source base?

Thanks for any insights,
-Peter.

---
        /* setup description block */
        d_bh =i
            journal_getblk(sb,
                           SB_ONDISK_JOURNAL_1st_BLOCK(sb) +
                           journal->j_start);   // journal_getblk
returned NULL.
        set_buffer_uptodate(d_bh);      // caused set_buffer_uptodate to
crash.

Call Trace:
(Continue reading)

Edward Shishkin | 6 Dec 13:00 2014
Picon

Re: [Testing Error] xfstests generic/169 - Test for file size consistency with append followed by umount/mount


On 12/05/2014 02:31 PM, Dušan Čolić wrote:
> Code: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfstests.git;a=blob;f=tests/generic/169;
> Patch: reiser4-for-3.16.2.patch
> Extra mount options: none
>
> diff -u tests/generic/169.out /root/xfstests/results//generic/169.out.bad
> --- tests/generic/169.out       2014-12-04 21:04:20.000000000 +0100
> +++ /root/xfstests/results//generic/169.out.bad 2014-12-05
> 16:03:27.000000000 +0100
>  <at>  <at>  -4,11 +4,11  <at>  <at> 
>   wrote 5120/5120 bytes at offset 0
>   wrote 5120/5120 bytes at offset 5120
>   wrote 5120/5120 bytes at offset 10240
> -stat.size = 15360
> +stat.size = 20481

Hmm, 5120+10240 != 15360?
What a surprise. OK, I'll take a look at leisure..

Thanks,
Edward.

>   # unmounting scratch
>   # mounting scratch
>   # stating file to confirm correct size
> -stat.size = 15360
> +stat.size = 20481
>   # appending 10 bytes to new file, sync at 5 bytes
>   wrote 5/5 bytes at offset 0
(Continue reading)

Dušan Čolić | 5 Dec 14:46 2014
Picon

Re: [Testing] Testing Reiser4 with xfstests

On Fri, Dec 5, 2014 at 2:22 PM, Dušan Čolić <dusanc <at> gmail.com> wrote:
> I managed to get xfstests  (
> http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfstests.git;a=tree ) to
> run on Reiser4 partition. Test for async, acl, quota still don't work but a
> lot of the rest finishes successfully.
> Tests were run on reiser4-for-3.16.2.patch
> I'll post unsuccessful tests and their results in following e-mails.
>
Btw. these tests can stress test fs and I could also test with
different mount (block size?) or mkfs options (reg40) and automate it
easily to test multiple combinations, so if there's any ideas what
would be useful please tell me.

Thanks
Dushan

> Dushan
--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Gmane