On Aug 23 2017 23:51, Oleksandr Grytsov wrote:
Hi,
Thank you for detailed explanation.
We understand that emulated interrupt on the frontend side is completely not acceptable and definitely we need to provide some feedback mechanism from Dom0 to DomU.
In our case it is technically impossible to provide precise period interrupt (mostly because our backend is a user space application). The best we can implement it is provide number of frames (time, bytes etc.) consumed by real HW. This info will be outdated due to different delays but we can provide precise timestamps when this info was acquired.
Stuffs of ALSA PCM in kernel land is an abstraction layer for actual hardware for data transmission. The stuffs get affects from a design of actual hardware. Furthermore, sound subsystems on the other operating systems such as Microsoft Windows are also designed with a consideration about actual hardware. When you design any interfaces as an abstraction for such software layer, it's better to understand actual hardware and design of low-level software layer somehow.
Actually the 'sndif' has no good abstraction for actual hardware, therefore an idea to implement frontend driver as an ALSA driver is not reasonable at all. It's better to implement it as an application in the other software layer, e.g. sinks/sources of PulseAudio in DomU via Xenbus. This idea is nearer an original concept of Xen framework, I guess. But I don't know we can write any applications of Xenbus in user land of DomU or not.
Anyway, it's not a good idea to have an ALSA driver for the present 'sndif', in my opinion.
Regards
Takashi Sakamoto