Re: armv8.2-A+ tuned FreeBSD kernels vs. poudriere bulk and USB3 media: tx->tx_quiesce_done_cv related blocking of processes?

From: Mark Millard <marklmi_at_yahoo.com>
Date: Mon, 01 May 2023 19:57:01 UTC
On Apr 30, 2023, at 18:57, Mark Millard <marklmi@yahoo.com> wrote:

> On Apr 30, 2023, at 17:44, Mateusz Guzik <mjguzik@gmail.com> wrote:
> 
>> can you redo zfs test with:
>> sysctl vfs.zfs.per_txg_dirty_frees_percent=5
> 
> Sure.
> 
> Result summary: Seems to have avoided the sustained periods
> of low load average activity. Much better for the context.
> 
> 
> Context: Original ZFS USB3 media. World or Kernel in use
> had been built (non-debug style) using:
> 
> -mcpu=cortex-a78C+flagm+nofp16fml
> 
> 
> Steps for this test . . .
> 
> # poudriere pkgclean -A -jmain-CA78C
> . . .
> 
> # sysctl vfs.zfs.per_txg_dirty_frees_percent=5
> vfs.zfs.per_txg_dirty_frees_percent: 30 -> 5
> 
> # grep USE_TMPFS= /usr/local/etc/poudriere.conf
> # EXAMPLE: USE_TMPFS="wrkdir data"
> USE_TMPFS="data"
> #USE_TMPFS=all
> 
> # poudriere bulk -jmain-CA78C -w -f ~/origins/CA78C-origins.txt
> . . .
> 
> At 15 minutes into the build:
> 46 ports in 1st 15 minutes. Load average stayed reasonable
> for the configuration.
> 
> At 30 minutes into the build:
> 102 ports in 1st 30 minutes. Load average still reasonable
> for the configuration.
> 
> Looks good compared to before.
> 
> 
> I've no clue what optimal would be for the context, but
> 
> vfs.zfs.per_txg_dirty_frees_percent=5
> 
> is vastly better for the context than the default 30 was.
> 
> Thanks.
> 
> 
> I'm going to stop the test and do the conversion to the
> U2 960GB Optane media in the USB3 adaptor and then
> compare USE_TMPFS=data vs. USE_TMPFS=all --but using your
> vfs.zfs.per_txg_dirty_frees_percent=5 assignment.
> 

Took a while to actually get around to stopping the test.
It got 186 of the ports built in the 1st hour. (A from
scratch build, starting with building pkg.)

I finally have started the U2 960GB Optane based tests,
currently USE_TMPFS=data . The initial activity looks
like it might build about as many ports as the earlier
USE_TMPFS=all test (for different media,
vfs.zfs.per_txg_dirty_frees_percent being 30).

. . . waiting . . .

It got 222 of the ports built in the 1st hour, again
starting with pkg. That compares to 262 for the earlier
USE_TMPFS=all test.

None of these ports form the first hour are large, long
running port builds, none using large scale amounts of
storage space for its builder. (As I build things, rust
for example, uses 17GiBytes+ of file system space, more
than half of the size of the RAM in the Windows Dev Kit
2023 for USE_TEMPFS=all just for file system content.)

Now for a USE_TMPFS=all build test with
vfs.zfs.per_txg_dirty_frees_percent being 5 . I may try
letting that run to completion. (The configuration has
118 GiBytes of swap for paging activity.)


===
Mark Millard
marklmi at yahoo.com