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]
Date:   Sun, 14 May 2023 11:18:20 +0200
From:   Takashi Iwai <tiwai@...e.de>
To:     Ivan Orlov <ivan.orlov0322@...il.com>
Cc:     corbet@....net, akpm@...ux-foundation.org, perex@...ex.cz,
        tiwai@...e.com, broonie@...nel.org, skhan@...uxfoundation.org,
        linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
        alsa-devel@...a-project.org, linux-kselftest@...r.kernel.org,
        gregkh@...uxfoundation.org, himadrispandya@...il.com,
        linux-kernel-mentees@...ts.linuxfoundation.org
Subject: Re: [PATCH 2/3] ALSA: Implement the new virtual driver

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@...il.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ