All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Henrik Austad <henrik@austad.us>, alsa-devel@alsa-project.org
Cc: netdev@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [very-RFC 0/8] TSN driver for the kernel
Date: Sun, 12 Jun 2016 19:43:34 +0900	[thread overview]
Message-ID: <575D3CD6.3050001@sakamocchi.jp> (raw)
In-Reply-To: <20160612083122.GB32724@icarus.home.austad.us>


[-- Attachment #1.1: Type: text/plain, Size: 3216 bytes --]

On Jun 12 2016 17:31, Henrik Austad wrote:
> On Sun, Jun 12, 2016 at 01:30:24PM +0900, Takashi Sakamoto wrote:
>> On Jun 12 2016 12:38, Takashi Sakamoto wrote:
>>> In your patcset, there's no actual codes about how to handle any
>>> interrupt contexts (software / hardware), how to handle packet payload,
>>> and so on. Especially, for recent sound subsystem, the timing of
>>> generating interrupts and which context does what works are important to
>>> reduce playback/capture latency and power consumption.
>>>
>>> Of source, your intention of this patchset is to show your early concept
>>> of TSN feature. Nevertheless, both of explaination and codes are
>>> important to the other developers who have little knowledges about TSN,
>>> AVB and AES-64 such as me.
>>
>> Oops. Your 5th patch was skipped by alsa-project.org. I guess that size
>> of the patch is too large to the list service. I can see it:
>> http://marc.info/?l=linux-netdev&m=146568672728661&w=2
>>
>> As long as seeing the patch, packets are queueing in hrtimer callbacks
>> every 1 seconds.
> 
> Actually, the hrtimer fires every 1ms, and that part is something I have to 
> do something about, also because it sends of the same number of frames 
> every time, regardless of how accurate the internal timer is to the rest of 
> the network (there's no backpressure from the networking layer).
> 
>> (This is a high level discussion and it's OK to ignore it for the
>> moment. When writing packet-oriented drivers for sound subsystem, you
>> need to pay special attention to accuracy of the number of PCM frames
>> transferred currently, and granularity of the number of PCM frames
>> transferred by one operation. In this case, snd_avb_hw,
>> snd_avb_pcm_pointer(), tsn_buffer_write_net() and tsn_buffer_read_net()
>> are involved in this discussion. You can see ALSA developers' struggle
>> in USB audio device class drivers and (of cource) IEC 61883-1/6 drivers.)
> 
> Ah, good point. Any particular parts of the USB-subsystem I should start 
> looking at?

I don't think it's a beter way for you to study USB Audio Device Class
driver unless you're interested in ALSA or USB subsystem.

(But for your information, snd-usb-audio is in sound/usb/* of Linux
kernel. IEC 61883-1/6 driver is in sound/firewire/*.)

We need different strategy to achieve it on different transmission backend.

> Knowing where to start looking is a tremendous help

It's not well-documented, and not well-generalized for packet-oriented
drivers. Most of developers who have enough knowledge about it work for
DMA-oriented drivers in mobile platforms and have little interests in
packet-oriented drivers. You need to find your own way.

Currently I have few advices to you, because I'm also on the way for
drivers to process IEC 61883-1/6 packets on IEEE 1394 bus with enough
accuracy and granularity. The paper I introduced is for the way (but not
mature).

I wish you get more helps from the other developers. Your work is more
significant to Linux system, than mine.

(And I hope your future work get no ignorance and no unreasonable
hostility from coarse users.)


Regards

Takashi Sakamoto


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-06-12 10:43 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-11 23:01 [alsa-devel] [very-RFC 0/8] TSN driver for the kernel Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 1/8] TSN: add documentation Henrik Austad
2016-06-11 23:01 ` [alsa-devel] " Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 2/8] TSN: Add the standard formerly known as AVB to the kernel Henrik Austad
2016-06-11 23:01 ` [alsa-devel] " Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` [alsa-devel] [very-RFC 3/8] Adding TSN-driver to Intel I210 controller Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 4/8] Add TSN header for the driver Henrik Austad
2016-06-11 23:01 ` [alsa-devel] " Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` [very-RFC 5/8] Add TSN machinery to drive the traffic from a shim over the network Henrik Austad
2016-06-11 23:01 ` [alsa-devel] " Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` [alsa-devel] [very-RFC 6/8] Add TSN event-tracing Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-12 16:58   ` [alsa-devel] " Steven Rostedt
2016-06-12 16:58     ` Steven Rostedt
2016-06-12 21:25     ` [alsa-devel] " Henrik Austad
2016-06-12 21:25       ` Henrik Austad
2016-06-13  2:22       ` Steven Rostedt
2016-06-13  2:22         ` Steven Rostedt
2016-06-13  7:20         ` Henrik Austad
2016-06-13  7:20           ` Henrik Austad
2016-06-12 21:25     ` Henrik Austad
2016-06-12 16:58   ` Steven Rostedt
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [alsa-devel] [very-RFC 7/8] AVB ALSA - Add ALSA shim for TSN Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-15 11:49   ` Richard Cochran
2016-06-15 11:49   ` [alsa-devel] " Richard Cochran
2016-06-15 11:49     ` Richard Cochran
2016-06-15 12:13     ` [alsa-devel] " Henrik Austad
2016-06-15 12:13       ` Henrik Austad
2016-06-15 12:43       ` [alsa-devel] " Richard Cochran
2016-06-15 12:43         ` Richard Cochran
2016-06-15 12:43       ` Richard Cochran
2016-06-15 12:13     ` Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-11 23:01 ` [alsa-devel] [very-RFC 8/8] MAINTAINERS: add TSN/AVB-entries Henrik Austad
2016-06-11 23:01   ` Henrik Austad
2016-06-11 23:01 ` Henrik Austad
2016-06-12  3:38 ` [very-RFC 0/8] TSN driver for the kernel Takashi Sakamoto
2016-06-12  3:38   ` Takashi Sakamoto
2016-06-12  4:30   ` Takashi Sakamoto
2016-06-12  8:31     ` Henrik Austad
2016-06-12 10:43       ` Takashi Sakamoto [this message]
2016-06-12 22:06         ` Henrik Austad
2016-06-12  8:28   ` Henrik Austad
2016-06-12  8:28     ` Henrik Austad
2016-06-12  9:14     ` Takashi Sakamoto
2016-06-12  9:14       ` Takashi Sakamoto
2016-06-13 11:47 ` Richard Cochran
2016-06-13 11:47 ` [alsa-devel] " Richard Cochran
2016-06-13 11:47   ` Richard Cochran
2016-06-13 13:00   ` [alsa-devel] " Henrik Austad
2016-06-13 13:00     ` Henrik Austad
2016-06-13 19:32     ` Richard Cochran
2016-06-13 19:32     ` [alsa-devel] " Richard Cochran
2016-06-13 19:32       ` Richard Cochran
2016-06-14  9:30       ` [alsa-devel] " Henrik Austad
2016-06-14  9:30         ` Henrik Austad
2016-06-14 18:26         ` [alsa-devel] " Richard Cochran
2016-06-14 18:26           ` Richard Cochran
2016-06-14 20:38           ` Henrik Austad
2016-06-14 20:38           ` [alsa-devel] " Henrik Austad
2016-06-14 20:38             ` Henrik Austad
2016-06-15  7:04             ` [alsa-devel] " Richard Cochran
2016-06-15  7:04               ` Richard Cochran
2016-06-15  7:50               ` Henrik Austad
2016-06-15  7:50               ` [alsa-devel] " Henrik Austad
2016-06-15  7:50                 ` Henrik Austad
2016-06-15 11:41               ` Richard Cochran
2016-06-15 11:41               ` [alsa-devel] " Richard Cochran
2016-06-15 11:41                 ` Richard Cochran
2016-06-15  7:04             ` Richard Cochran
2016-06-15  7:11             ` Richard Cochran
2016-06-15  7:11             ` [alsa-devel] " Richard Cochran
2016-06-15  7:11               ` Richard Cochran
2016-06-14 18:26         ` Richard Cochran
2016-06-14  9:30       ` Henrik Austad
2016-06-13 19:37     ` Richard Cochran
2016-06-13 19:37     ` [alsa-devel] " Richard Cochran
2016-06-13 19:37       ` Richard Cochran
2016-06-13 13:00   ` Henrik Austad
2016-06-13 13:12   ` [alsa-devel] " Arnd Bergmann
2016-06-13 13:12     ` Arnd Bergmann
2016-06-13 13:12   ` Arnd Bergmann
2016-06-13 15:56   ` John Fastabend
2016-06-13 15:56   ` [alsa-devel] " John Fastabend
2016-06-13 15:56     ` John Fastabend
2016-06-14  8:35     ` [alsa-devel] " Henrik Austad
2016-06-14  8:35       ` Henrik Austad
2016-06-14  8:35     ` Henrik Austad
2016-06-13 19:51   ` Richard Cochran
2016-06-13 19:51   ` [alsa-devel] " Richard Cochran
2016-06-13 19:51     ` Richard Cochran
2016-06-14 11:18     ` [alsa-devel] " One Thousand Gnomes
2016-06-14 11:18       ` One Thousand Gnomes
2016-06-14 17:04       ` Richard Cochran
2016-06-14 17:04       ` [alsa-devel] " Richard Cochran
2016-06-14 17:04         ` Richard Cochran
2016-06-15  3:15       ` Takashi Sakamoto
2016-06-15  8:06         ` Richard Cochran
2016-06-18  5:22           ` Takashi Sakamoto
2016-06-18  5:22             ` Takashi Sakamoto
2016-06-18 22:45             ` Henrik Austad
2016-06-19  9:46               ` Richard Cochran
2016-06-20  8:05                 ` Henrik Austad
2016-06-20  8:05                   ` Henrik Austad
2016-06-19 14:45               ` Takashi Sakamoto
2016-06-20  9:06                 ` Henrik Austad
2016-06-20  9:06                   ` Henrik Austad
2016-06-21  2:22                   ` Takashi Sakamoto
2016-06-21  2:22                     ` Takashi Sakamoto
2016-06-20 11:08               ` Pierre-Louis Bossart
2016-06-20 11:08                 ` [alsa-devel] " Pierre-Louis Bossart
2016-06-20 11:49                 ` Henrik Austad
2016-06-20 11:49                   ` [alsa-devel] " Henrik Austad
2016-06-20 12:18                 ` Richard Cochran
2016-06-20 12:31                   ` Richard Cochran
2016-06-20 15:21                     ` Richard Cochran
2016-06-20 15:21                       ` [alsa-devel] " Richard Cochran
2016-06-21  5:54                       ` Takashi Iwai
2016-06-21  5:54                         ` [alsa-devel] " Takashi Iwai
2016-06-21  6:38                         ` Richard Cochran
2016-06-21  6:38                           ` [alsa-devel] " Richard Cochran
2016-06-21  6:45                           ` Takashi Iwai
2016-06-21  6:45                             ` [alsa-devel] " Takashi Iwai
2016-06-21 17:18                     ` Pierre-Louis Bossart
2016-06-21 17:18                       ` [alsa-devel] " Pierre-Louis Bossart
2016-06-21 17:45                   ` Pierre-Louis Bossart
2016-06-21 19:40                     ` Richard Cochran
2016-06-22 12:36                       ` Pierre-Louis Bossart
2016-06-22 12:36                         ` [alsa-devel] " Pierre-Louis Bossart
2016-06-23 10:38                     ` Henrik Austad
2016-06-23 13:28                       ` Richard Cochran
2016-06-15  3:27       ` Takashi Sakamoto
2016-06-14 11:18     ` One Thousand Gnomes
  -- strict thread matches above, loose matches on Subject: below --
2016-06-11 23:01 Henrik Austad
2016-06-11 22:22 Henrik Austad
2016-06-11 22:22 Henrik Austad
2016-06-11 22:49 ` Henrik Austad
2016-06-11 22:49 ` Henrik Austad

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=575D3CD6.3050001@sakamocchi.jp \
    --to=o-takashi@sakamocchi.jp \
    --cc=alsa-devel@alsa-project.org \
    --cc=henrik@austad.us \
    --cc=linux-media@vger.kernel.org \
    --cc=netdev@vger.kernel.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 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.