mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Zeno Endemann <zeno.endemann@mailbox.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Cezary Rojewski <cezary.rojewski@intel.com>,
	Christian Brauner <brauner@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Pavel Hofman <pavel.hofman@ivitera.com>,
	David Howells <dhowells@redhat.com>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	Peter Ujfalusi <peter.ujfalusi@linux.intel.com>,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Kai Vehmanen <kai.vehmanen@linux.intel.com>
Subject: Re: [PATCH] ALSA: core: Remove trigger_tstamp_latched
Date: Mon, 12 Aug 2024 23:05:16 +0200	[thread overview]
Message-ID: <3e9cd14b-7355-4fde-b0c1-39d40467e63c@mailbox.org> (raw)
In-Reply-To: <dec71400-81f1-4ca6-9010-94b55ecdaafa@linux.intel.com>

Pierre-Louis Bossart wrote on 12.08.24 19:25:
>> * The custom timestamp there does not seem to be a meaningful
>>    improvement over the default one; There is virtually no code in
>>    between them, so I measured only a difference of around 300ns in a
>>    KVM VM with ich9-intel-hda device.
> 
> Humm, you're analyzing timestamps with a VM and a rather old device?
> ICH9 support was added in 2014, some ten years ago. The timestamping
> stuff is only improved with SKL+.

With more modern hardware on bare metal I would assume this difference to
the default timestamp to be even smaller. I am not a hardware guy, so
correct me if I'm wrong, but I would think that the unknown timing delays
of the IO operations and internal audio hardware are orders of magnitude
larger than even 300ns, making this improvement drown in the noise. Do you
have some measurements of the differences with modern hardware?

Besides, the only improvement here is that the timestamp is taken slightly
earlier, nothing fancy as far as I can tell. It seems a bit odd to me that
the hda core is the only one that cares for this.

Finally, I cannot imagine what audio application needs sub-microsecond
accuracy for the trigger timestamps. That is less than a single audio frame
even for silly sample rates. Is this intended for some scientific use case?
For regular audio apps I'd think most do not even care that much for the
trigger timestamps and rather use the hw-pointer-update timestamps anyway,
to prevent clock drifts. In my case I use only the stop trigger timestamp
to estimate at which sample position a snd_pcm_drop happened, and don't use
the start timestamp at all.

But these are just my possibly narrow views on this. If you really have
valid use cases for those improved timestamps I won't insist on removing it.
In fact I'd be rather interested to know if you can point me to an
application that makes use of this.


> 
>> * It creates a pitfall for hda driver writers; Calling
>>    snd_hdac_stream_timecounter_init implicitly makes them responsible
>>    for generating these timestamps.
> 
> That's the point, let those drivers generate a better timestamp if they
> can. Not sure what the problem is?

This is more of an API issue. At least to me it seems bad to sneakily enable
this flag in snd_hdac_stream_timecounter_init. The documentation of it does
not make it clear that after calling it the driver is responsible for the
timestamps. Now I am admittedly not that deep into this code, so there may
be a reason, but again at least to an "outsider" like me it is quite unclear
why initializing the time counter also means the driver now has to manage the
trigger timestamps.

If you really want this functionality to stay, maybe it would be better to
move that out of snd_hdac_stream_timecounter_init and just make every driver
that wants to manage them raise the flag explicitly themselves.


  reply	other threads:[~2024-08-12 21:05 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-12 14:20 Zeno Endemann
2024-08-12 17:25 ` Pierre-Louis Bossart
2024-08-12 21:05   ` Zeno Endemann [this message]
2024-08-13  8:04     ` Pierre-Louis Bossart
2024-08-13 12:54       ` Zeno Endemann
2024-08-13 13:41         ` Takashi Iwai
2024-08-13 13:58           ` Zeno Endemann
2024-08-13 14:05             ` Takashi Iwai
2024-08-21 14:27               ` Zeno Endemann
2024-08-21 14:44                 ` Takashi Iwai
2024-08-21 14:59                   ` Jaroslav Kysela
2024-08-21 15:05                     ` Takashi Iwai
2024-08-21 15:09                       ` Jaroslav Kysela
2024-08-21 16:04                     ` Zeno Endemann
2024-08-13  9:26 ` Takashi Iwai
2024-08-13 10:41   ` Zeno Endemann

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=3e9cd14b-7355-4fde-b0c1-39d40467e63c@mailbox.org \
    --to=zeno.endemann@mailbox.org \
    --cc=brauner@kernel.org \
    --cc=broonie@kernel.org \
    --cc=cezary.rojewski@intel.com \
    --cc=dhowells@redhat.com \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=pavel.hofman@ivitera.com \
    --cc=perex@perex.cz \
    --cc=peter.ujfalusi@linux.intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=tiwai@suse.com \
    --cc=yung-chuan.liao@linux.intel.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

all inboxes | Powered by JetHome®