From: Takashi Iwai <tiwai@suse.de>
To: Ivan Orlov <ivan.orlov0322@gmail.com>
Cc: corbet@lwn.net, akpm@linux-foundation.org, perex@perex.cz,
tiwai@suse.com, broonie@kernel.org, skhan@linuxfoundation.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
alsa-devel@alsa-project.org, linux-kselftest@vger.kernel.org,
gregkh@linuxfoundation.org, himadrispandya@gmail.com,
linux-kernel-mentees@lists.linuxfoundation.org
Subject: Re: [PATCH 2/3] ALSA: Implement the new virtual driver
Date: Sun, 14 May 2023 11:18:20 +0200 [thread overview]
Message-ID: <878rdr8e5f.wl-tiwai@suse.de> (raw)
In-Reply-To: <20230513202037.158777-2-ivan.orlov0322@gmail.com>
On Sat, 13 May 2023 22:20:36 +0200,
Ivan Orlov wrote:
>
> We have a lot of different virtual media drivers, which can be used for
> testing of the userspace applications and media subsystem middle layer.
> However, all of them are aimed at testing the video functionality and
> simulating the video devices. For audio devices we have only snd-dummy
> module, which is good in simulating the correct behavior of an ALSA device.
> I decided to write a tool, which would help to test the userspace ALSA
> programs (and the PCM middle layer as well) under unusual circumstances
> to figure out how they would behave. So I came up with this Virtual ALSA
> Driver.
>
> This new Virtual ALSA Driver has several features which can be useful
> during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
> of the PCM middle layer. Not all of them can be implemented using the
> existing virtual drivers (like dummy or loopback). Here is what can this
> driver do:
>
> - Simulate both capture and playback processes
> - Generate random or pattern-based capture data
> - Inject delays into the playback and capturing processes
> - Inject errors during the PCM callbacks
>
> Also, this driver can check the playback stream for containing the
> predefined pattern, which is used in the corresponding selftest to check
> the PCM middle layer data transferring functionality. Additionally, this
> driver redefines the default RESET ioctl, and the selftest covers this PCM
> API functionality as well.
>
> Pattern-based capture stream data generation works in the following way:
> user can set the pattern by writing to the 'fill_pattern' debugfs file.
> After that, the capture stream in case of reading will be filled with this
> pattern (for example, if the pattern is 'abc', the capture stream will
> contain 'abcabcabc...'). The pattern itself can be up to 4096 bytes long.
>
> After all, I think this driver would be a good start, and I believe in the
> future we will see more virtual sound drivers.
>
> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
The idea is interesting, and it's a definitely good thing to have.
I wonder, though, whether it could be better provided as an extention
to the existing snd-dummy driver. The advantage of extending
snd-dummy driver would be that it already supports different formats,
etc. OTOH, if we create an individual driver, the pro side is the
simpleness of the code.
I'm inclined to go with a separate driver, but I'm open about this.
Maybe Jaroslav and Mark have some opinions?
About this patch set: the driver name should be a bit more specific,
as this isn't a generic virtual driver that is used for general
purpose but it's only for testing. And it's only for testing PCM.
So, a name like snd-test-pcm would be more appropriate, IMO.
And, we want the coverage of different formats, channels, rates and
accesses (interleaved vs non-interleaved). How can we extend somehow
more for that?
thanks,
Takashi
next prev parent reply other threads:[~2023-05-14 9:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-13 20:20 [PATCH 1/3] docs: admin-guide: add valsa driver documentation Ivan Orlov
2023-05-13 20:20 ` [PATCH 2/3] ALSA: Implement the new virtual driver Ivan Orlov
2023-05-14 9:18 ` Takashi Iwai [this message]
2023-05-14 10:08 ` Ivan Orlov
2023-05-13 20:20 ` [PATCH 3/3] selftests: ALSA: Add test for the 'valsa' driver Ivan Orlov
2023-05-15 1:28 ` Mark Brown
2023-05-15 5:58 ` Ivan Orlov
2023-05-14 9:21 ` [PATCH 1/3] docs: admin-guide: add valsa driver documentation Takashi Iwai
2023-05-14 10:12 ` Ivan Orlov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878rdr8e5f.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=corbet@lwn.net \
--cc=gregkh@linuxfoundation.org \
--cc=himadrispandya@gmail.com \
--cc=ivan.orlov0322@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel-mentees@lists.linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=perex@perex.cz \
--cc=skhan@linuxfoundation.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).