lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAfSe-utAb53278x9X4tKn6jWzdehsPKDRa_CoQy61ND=cXbxQ@mail.gmail.com>
Date: Tue, 11 Feb 2025 17:59:26 +0800
From: Chunyan Zhang <zhang.lyra@...il.com>
To: Charlie Jenkins <charlie@...osinc.com>
Cc: Paul Menzel <pmenzel@...gen.mpg.de>, Chunyan Zhang <zhangchunyan@...as.ac.cn>, 
	Paul Walmsley <paul.walmsley@...ive.com>, Palmer Dabbelt <palmer@...belt.com>, 
	Albert Ou <aou@...s.berkeley.edu>, Song Liu <song@...nel.org>, Yu Kuai <yukuai3@...wei.com>, 
	linux-riscv@...ts.infradead.org, linux-raid@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH V2] raid6: Add RISC-V SIMD syndrome and recovery calculations

On Tue, 28 Jan 2025 at 06:34, Charlie Jenkins <charlie@...osinc.com> wrote:
>
> On Mon, Jan 27, 2025 at 09:39:11AM +0100, Paul Menzel wrote:
> > Dear Chunyan,
> >
> >
> > Thank you for the patch.
> >
> >
> > Am 27.01.25 um 07:15 schrieb Chunyan Zhang:
> > > The assembly is originally based on the ARM NEON and int.uc, but uses
> > > RISC-V vector instructions to implement the RAID6 syndrome and
> > > recovery calculations.
> > >
> > > Results on QEMU running with the option "-icount shift=0":
> > >
> > >    raid6: rvvx1    gen()  1008 MB/s
> > >    raid6: rvvx2    gen()  1395 MB/s
> > >    raid6: rvvx4    gen()  1584 MB/s
> > >    raid6: rvvx8    gen()  1694 MB/s
> > >    raid6: int64x8  gen()   113 MB/s
> > >    raid6: int64x4  gen()   116 MB/s
> > >    raid6: int64x2  gen()   272 MB/s
> > >    raid6: int64x1  gen()   229 MB/s
> > >    raid6: using algorithm rvvx8 gen() 1694 MB/s
> > >    raid6: .... xor() 1000 MB/s, rmw enabled
> > >    raid6: using rvv recovery algorithm
> >
> > How did you start QEMU and on what host did you run it? Does it change
> > between runs? (For me these benchmark values were very unreliable in the
> > past on x86 hardware.)
>
> I reported dramatic gains on vector as well in this response [1]. Note
> that these gains are only present when using the QEMU option "-icount
> shift=0" vector becomes dramatically more performant. Without this
> option we do not see a performance gain on QEMU. However riscv vector is
> known to not be less optimized on QEMU so having vector be less
> performant on some QEMU configurations is not necessarily representative
> of hardware implementations.
>
>
> My full qemu command is (running on x86 host):
>
> qemu-system-riscv64 -nographic -m 1G -machine virt -smp 1\
>     -kernel arch/riscv/boot/Image \
>     -append "root=/dev/vda rw earlycon console=ttyS0" \
>     -drive file=rootfs.ext2,format=raw,id=hd0,if=none \
>     -bios default -cpu rv64,v=true,vlen=256,vext_spec=v1.0 \
>     -device virtio-blk-device,drive=hd0
>
> This is with version 9.2.0.
>
>
> I am also facing this issue when executing this:
>
> raid6: rvvx1    gen()   717 MB/s
> raid6: rvvx2    gen()   734 MB/s
> Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
>
> Only rvvx4 is failing. I applied this patch to 6.13.

I used your command to run but no issue on my side (x86 host, qemu
version is 9.2.0, kernel 6.13 too):

qemu-system-riscv64 -nographic -m 1G -machine virt -smp 1 -icount shift=0 \
        -kernel arch/riscv/boot/Image   \
        -append "rootwait root=/dev/vda ro"     \
        -drive file=rootfs.ext4,format=raw,id=hd0 \
        -bios default -cpu rv64,v=true,vlen=256,vext_spec=v1.0 \
        -device virtio-blk-device,drive=hd0

Thanks,
Chunyan

>
> - Charlie
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ