mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>,
	tiwai@suse.com, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org,
	xen-devel <xen-devel@lists.xenproject.org>,
	Clemens Ladisch <clemens@ladisch.de>,
	Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [Xen-devel] [RFC v1] ALSA: xen-front: Add Xen para-virtualized frontend driver
Date: Mon, 11 Dec 2017 10:45:27 +0200	[thread overview]
Message-ID: <9031a8b0-88c2-bd86-548c-7dbcf8967856@gmail.com> (raw)
In-Reply-To: <172d2f40-937d-5455-1b4e-576ac7b0da45@gmail.com>

ping

On 11/17/2017 10:08 AM, Oleksandr Andrushchenko wrote:
> ping
>
> On 11/02/2017 03:11 PM, Oleksandr Andrushchenko wrote:
>> Hi, all!
>>
>> Foreword
>> ========
>>
>> This RFC is aimed to introduce support of para-virtualized sound 
>> frontend
>> driver for Xen [1] and gather opinions from the relevant communities
>> (ALSA, Xen). It implements the protocol from [2] with the
>> following limitations:
>>   - mute/unmute is not supported
>>   - get/set volume is not supported
>> Volume control is not supported for the reason that most of the 
>> use-cases
>> (at the moment) are based on scenarios where unprivileged OS
>> (e.g. Android, AGL etc) uses software mixers.
>> Both capture and playback are supported.
>>
>> The relevant backend is implemented as a user-space application [3]
>> and uses accompanying helper library [4].
>>
>> Both frontend driver and backend were tested on real HW running Xen 
>> hypervisor
>> (Renesas R-Car ARM based H3/M3 boards, x86).
>>
>> Discussion
>> ==========
>>
>> During the first attempt to upstream the driver [5] number of 
>> comments and
>> concerns were raised, one of the biggest flaws in the design were 
>> questioned
>> by both Clemens Ladisch [6] and Takashi Sakamoto [7]: the absence of
>> synchronization between frontend and backend during capture/playback.
>> Two options were discussed:
>>
>> “In design of ALSA PCM core, drivers are expected to synchronize to
>> actual hardwares for semi-realtime data transmission. The
>> synchronization is done by two points:
>> 1) Interrupts to respond events from actual hardwares.
>> 2) Positions of actual data transmission in any serial sound interfaces
>>     of actual hardwares.
>> “
>>
>> and finally a change to the existing protocol was suggested:
>>
>> “In 'include/xen/interface/io/sndif.h', there's no functionalities I
>> described the above:
>> 1. notifications from DomU to Dom0 about the size of period for
>>     interrupts from actual hardwares. Or no way from Dom0 to DomU about
>>     the configured size of the period.
>> 2. notifications of the interrupts from actual hardwares to DomU.”
>>
>> This is implemented as a change to the sndif protocol [8] and allows 
>> removing
>> period emulation:
>> 1. Introduced a new event channel from back to front
>> 2. New event with number of bytes played/captured (XENSND_EVT_CUR_POS,
>>    to be used for sending snd_pcm_period_elapsed at frontend (in Linux
>>    implementation). Sent in bytes, not frames to make the protocol
>>    generic and consistent)
>> 3. New request for playback/capture control (XENSND_OP_TRIGGER) with
>>    start/pause/stop/resume sub-ops.
>>
>> Along with these changes other comments on the driver were addressed,
>> e.g. split into smaller chunks, moved the driver from misc to xen etc.
>>
>>
>> Hope, this helps to get the full picture of what was discussed and 
>> makes it
>> possible to move forward.
>>
>> Waiting for your valuable comments,
>>
>> Thank you,
>> Oleksandr
>>
>> [1] https://github.com/andr2000/linux/commits/snd_upstream_v1
>> [2] 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/xen/interface/io/sndif.h
>> [3] https://github.com/xen-troops/snd_be
>> [4] https://github.com/xen-troops/libxenbe
>> [5] https://lkml.org/lkml/2017/8/7/363
>> [6] 
>> http://mailman.alsa-project.org/pipermail/alsa-devel/2017-August/123617.html
>> [7] 
>> http://mailman.alsa-project.org/pipermail/alsa-devel/2017-August/123744.html
>> [8] 
>> https://github.com/andr2000/linux/commit/095d7feae00bf00c852c67c4f1044de5601678ed
>>
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xen.org
>> https://lists.xen.org/xen-devel
>

  reply	other threads:[~2017-12-11  8:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-02 13:11 Oleksandr Andrushchenko
2017-11-17  8:08 ` [Xen-devel] " Oleksandr Andrushchenko
2017-12-11  8:45   ` Oleksandr Andrushchenko [this message]
2017-12-22 15:12     ` Konrad Rzeszutek Wilk
2017-12-22 15:48       ` Oleksandr Andrushchenko
2017-12-22 15:58         ` Konrad Rzeszutek Wilk
2017-12-22 16:07           ` Oleksandr Andrushchenko

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=9031a8b0-88c2-bd86-548c-7dbcf8967856@gmail.com \
    --to=andr2000@gmail.com \
    --cc=Oleksandr_Andrushchenko@epam.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=o-takashi@sakamocchi.jp \
    --cc=tiwai@suse.com \
    --cc=xen-devel@lists.xenproject.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

Powered by JetHome