virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: virtio-dev@lists.oasis-open.org, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org, Takashi Iwai <tiwai@suse.com>,
	Jaroslav Kysela <perex@perex.cz>,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH v5 6/9] ALSA: virtio: PCM substream operators
Date: Thu, 25 Feb 2021 14:02:50 -0500	[thread overview]
Message-ID: <20210225135951-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <s5hlfbcpayj.wl-tiwai@suse.de>

On Thu, Feb 25, 2021 at 01:51:16PM +0100, Takashi Iwai wrote:
> On Thu, 25 Feb 2021 13:14:37 +0100,
> Anton Yakovlev wrote:
> > 
> > On 25.02.2021 11:55, Takashi Iwai wrote:
> > > On Mon, 22 Feb 2021 16:34:41 +0100,
> > > Anton Yakovlev wrote:
> > >> +static int virtsnd_pcm_open(struct snd_pcm_substream *substream)
> > >> +{
> > >> +     struct virtio_pcm *vpcm = snd_pcm_substream_chip(substream);
> > >> +     struct virtio_pcm_substream *vss = NULL;
> > >> +
> > >> +     if (vpcm) {
> > >> +             switch (substream->stream) {
> > >> +             case SNDRV_PCM_STREAM_PLAYBACK:
> > >> +             case SNDRV_PCM_STREAM_CAPTURE: {
> > >
> > > The switch() here looks superfluous.  The substream->stream must be a
> > > good value in the callback.  If any, you can put WARN_ON() there, but
> > > I don't think it worth.
> > 
> > At least it doesn't do any harm.
> 
> It does -- it makes the readability worse, and that's a very important
> point.
> 
> > >> +static int virtsnd_pcm_hw_params(struct snd_pcm_substream *substream,
> > >> +                              struct snd_pcm_hw_params *hw_params)
> > >> +{
> > > ....
> > >> +     return virtsnd_pcm_msg_alloc(vss, periods, period_bytes);
> > >
> > > We have the allocation, but...
> > >
> > >> +static int virtsnd_pcm_hw_free(struct snd_pcm_substream *substream)
> > >> +{
> > >> +     return 0;
> > >
> > > ... no release at hw_free()?
> > > I know that the free is present in the allocator, but it's only for
> > > re-allocation case, I suppose.
> > 
> > When the substream stops, sync_ptr waits until the device has completed
> > all pending messages. This wait can be interrupted either by a signal or
> > due to a timeout. In this case, the device can still access messages
> > even after calling hw_free(). It can also issue an interrupt, and the
> > interrupt handler will also try to access message structures. Therefore,
> > freeing of already allocated messages occurs either in hw_params() or in
> > dev->release(), since there it is 100% safe.
> 
> OK, then it's worth to document it about this object lifecycle.
> The buffer management of this driver is fairly unique, so otherwise it
> confuses readers.
> 
> 
> thanks,
> 
> Takashi

Takashi given I was in my tree for a while and I planned to merge
it this merge window. I can still drop it but there are
unrelated patches behind these in the tree so that's a rebase
which will invalidate my testing, I'm just concerned about
meeting the merge window.

Would it be ok to merge this as is and then address
readability stuff by patches on top?
If yes please send acks!
If you want to merge it yourself instead, also please say so.

-- 
MST

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  parent reply	other threads:[~2021-02-25 19:03 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-22 15:34 [PATCH v5 0/9] ALSA: add virtio sound driver Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 1/9] uapi: virtio_ids: add a sound device type ID from OASIS spec Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 2/9] ALSA: virtio: add virtio sound driver Anton Yakovlev
     [not found]   ` <s5h7dmwqvo4.wl-tiwai@suse.de>
2021-02-25 11:51     ` Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 3/9] ALSA: virtio: handling control messages Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 4/9] ALSA: virtio: build PCM devices and substream hardware descriptors Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 5/9] ALSA: virtio: handling control and I/O messages for the PCM device Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 6/9] ALSA: virtio: PCM substream operators Anton Yakovlev
     [not found]   ` <s5h35xkquvj.wl-tiwai@suse.de>
2021-02-25 12:14     ` Anton Yakovlev
     [not found]       ` <s5hlfbcpayj.wl-tiwai@suse.de>
2021-02-25 19:02         ` Michael S. Tsirkin [this message]
     [not found]           ` <s5hblc7opok.wl-tiwai@suse.de>
2021-02-25 22:19             ` Anton Yakovlev
     [not found]               ` <s5ha6rqnc0m.wl-tiwai@suse.de>
2021-02-26 20:16                 ` Anton Yakovlev
2021-02-26 20:19             ` Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 7/9] ALSA: virtio: introduce jack support Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 8/9] ALSA: virtio: introduce PCM channel map support Anton Yakovlev
2021-02-22 15:34 ` [PATCH v5 9/9] ALSA: virtio: introduce device suspend/resume support Anton Yakovlev
2021-02-23 12:09 ` [PATCH v5 0/9] ALSA: add virtio sound driver Michael S. Tsirkin
2021-02-23 12:33   ` [virtio-dev] " Anton Yakovlev
2021-02-23 12:59     ` Michael S. Tsirkin

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=20210225135951-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    --cc=tiwai@suse.de \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=virtualization@lists.linux-foundation.org \
    /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).