All of lore.kernel.org
 help / color / mirror / Atom feed
* [alsa-utils][PATCH 00/14] axfer: reduce test time
@ 2021-03-11  5:21 Takashi Sakamoto
  2021-03-11  5:21 ` [alsa-utils][PATCH 01/14] axfer: minor code arrangement for container module in a point of nonblocking flag Takashi Sakamoto
                   ` (15 more replies)
  0 siblings, 16 replies; 18+ messages in thread
From: Takashi Sakamoto @ 2021-03-11  5:21 UTC (permalink / raw)
  To: tiwai, perex; +Cc: alsa-devel

Hi,

The axfer in alsa-utils has test programs for internal modules and
overall time to execute them takes much. The issue is filing in
github repository[1]. It comes from three causes:

1. file I/O operations are done in file system for actual storage
2. Some cases operate much audio data frames (over 4MB, approx.)
3. much test iteration count (so simple...)

This patchset uses shm by memfd_create(2) for the cause 1. In addition,
the number of maximum audio data frame to test is reduced as well as the
number of samples per frame.

I got benchmark with berow machine environment.

 * AMD Ryzen 5 2400G
 * memory total 30823852 KB
 * linux-image-5.8.0-44-generic on Ubuntu 20.04 amd64
 * ext4 on SATA SSD

As a result:
                   |container|  mapper |
                   |   test  |   test  |
================== | ======= | ======= |
Current            | 112 min |   5 min |
+shm               |  58 min |  50 sec |
+maximum reduction |  38 min |    -    |
+iter reduction    |   4 min |    -    |

In my opinion, the issue comes from package build server in each
distribution. 5 min for test execution is not so worse time.

Finally, test programs run on shm and commit c3f2344b7209 is reverted[1]
since it's useless now.

(I have free time at last from reverse-engineering work to analyze
protocols of RME Fireface series[1], and start to solve stacked issues.)

[1] https://github.com/alsa-project/snd-firewire-ctl-services/pull/37
[2] https://github.com/alsa-project/alsa-utils/issues/19
[3] https://github.com/alsa-project/alsa-utils/commit/c3f2344b7209

Regards

Takashi Sakamoto (14):
  axfer: minor code arrangement for container module in a point of
    nonblocking flag
  axfer: minor code arrangement in a point of stdio detection
  axfer: minor code arrangement in a point of opened file descriptor
  axfer: minor code arrangement to allocate containers
  axfer: open file descriptor outside of container module
  axfer: maintain lifetime of file descriptor outside of container
    module
  autotools: preparation to use memfd_create(2)
  axfer: test: minor code arrangement to use the same file descriptor
    for container-test
  axfer: test: use memfd_create() for container-test
  axfer: test: minor code arrangement to use the same file descriptor
    for mappter-test
  axfer: test: use memfd_create() for mapper-test
  axfer: test: reduce test case for maximum number of frame count
  axfer: test: reduce test case for maximum number of samples per frame
  Revert "axfer: test - add run-test-in-tmpdir.sh script"

 axfer/container.c                | 57 +++++++++++-----------------
 axfer/container.h                | 10 ++---
 axfer/subcmd-transfer.c          | 64 ++++++++++++++++++++++++++------
 axfer/test/container-test.c      | 53 +++++++++++++++++++-------
 axfer/test/mapper-test.c         | 55 ++++++++++++++++++++++-----
 axfer/test/run-test-in-tmpdir.sh | 19 ----------
 configure.ac                     |  5 +++
 7 files changed, 167 insertions(+), 96 deletions(-)
 delete mode 100755 axfer/test/run-test-in-tmpdir.sh

-- 
2.27.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2021-03-11  8:33 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-11  5:21 [alsa-utils][PATCH 00/14] axfer: reduce test time Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 01/14] axfer: minor code arrangement for container module in a point of nonblocking flag Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 02/14] axfer: minor code arrangement in a point of stdio detection Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 03/14] axfer: minor code arrangement in a point of opened file descriptor Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 04/14] axfer: minor code arrangement to allocate containers Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 05/14] axfer: open file descriptor outside of container module Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 06/14] axfer: maintain lifetime of " Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 07/14] autotools: preparation to use memfd_create(2) Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 08/14] axfer: test: minor code arrangement to use the same file descriptor for container-test Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 09/14] axfer: test: use memfd_create() " Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 10/14] axfer: test: minor code arrangement to use the same file descriptor for mappter-test Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 11/14] axfer: test: use memfd_create() for mapper-test Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 12/14] axfer: test: reduce test case for maximum number of frame count Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 13/13] Revert "axfer: test - add run-test-in-tmpdir.sh script" Takashi Sakamoto
2021-03-11  5:32   ` Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 13/14] axfer: test: reduce test case for maximum number of samples per frame Takashi Sakamoto
2021-03-11  5:21 ` [alsa-utils][PATCH 14/14] Revert "axfer: test - add run-test-in-tmpdir.sh script" Takashi Sakamoto
2021-03-11  8:32 ` [alsa-utils][PATCH 00/14] axfer: reduce test time Jaroslav Kysela

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.