From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752340AbdJ3Gd5 (ORCPT ); Mon, 30 Oct 2017 02:33:57 -0400 Received: from mail-db5eur01on0089.outbound.protection.outlook.com ([104.47.2.89]:60128 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751540AbdJ3Gdz (ORCPT ); Mon, 30 Oct 2017 02:33:55 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Oleksandr_Andrushchenko@epam.com; Subject: [RFC] ALSA: vsnd: Add Xen para-virtualized frontend driver To: tiwai@suse.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, xen-devel@lists.xen.org, Konrad Rzeszutek Wilk Cc: Oleksandr Andrushchenko , Oleksandr Grytsov , Clemens Ladisch , Takashi Sakamoto References: <1502108577-8099-1-git-send-email-andr2000@gmail.com> <7e62a406-7dcd-b5c9-b2de-ea52e1d2afd0@sakamocchi.jp> <2a2fd222-fc54-1709-bfc8-a530efc3f307@gmail.com> <3f8e535b-8607-6b15-6e17-da755a06cc1e@sakamocchi.jp> <3fde10f8-4727-e37b-8001-ce2356fffb2b@sakamocchi.jp> <162b7251-4040-c61f-1fcd-c32f65bd3c67@gmail.com> <8542f293-f2d0-9ba3-7082-967b32fcec17@ladisch.de> <5421f97e-cd7a-dd22-7557-b0fc25899c1b@gmail.com> <232329e2-893f-d40a-3543-062098338bc2@gmail.com> From: Oleksandr Andrushchenko Message-ID: <77dc886e-f3e6-ecef-ed73-c92e966d02f9@epam.com> Date: Mon, 30 Oct 2017 08:33:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [85.223.209.54] X-ClientProxiedBy: HE1PR0402CA0036.eurprd04.prod.outlook.com (2603:10a6:7:7c::25) To AM4PR0301MB1937.eurprd03.prod.outlook.com (2603:10a6:200:38::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c40caea-424f-4d45-1aa1-08d51f602f6b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(2017052603238);SRVR:AM4PR0301MB1937; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0301MB1937;3:QrecDQnVFFR7UBMS3QYKbm15SmtxOQj90DW8DKn76fMJi2tvFgxPXah2ig5tR0qWDXx2i+AUM+2MX5oytQCMzxdrvMYjKRSO8ibRDUOauCCHZZW5C3GXlrjvQGvhoS357VxFYoqzBooDlR+mQ45IciDB96X3p7Cp3VN5LXm07ROGeVXqx9asCztw03mwpLL4kcPPU9HZkOkhEd1lkKg+vMHL4dY6/xJPVHExTI2OKm/9AgIuQzZlHYXDcs/Pi4DY;25:EMEtWLgpAiMoxAAssbFDBMUVeysR9NYK9fPX3Rt9Z+NAgyZ1nswwsv47gcYKYB05VupU9EdnpqrMYFGE0EB4AeWvq7PZdnA+9IUeH7uLfOhU1dfJbMx5wcNUfvAbykFg8eD7i0wKrmRITO6EBG4LGYGJpgdtqOZ0+bQRxRjZZ49fEW3x1EQfYcOk335nPwb85UhOvTLjjwMSiE8CNfceyhG2TJJLuzotKvqrPfA5MxMMJLzTdaS+n9INstHKwyVcEX068fdU8TW+zL0cTPbp7Gr314ln4+wlo7xOdvegCPZYmAhaH0c08YnRqYNeaTqzpiax0inKdkxEppaLnO0Qcw==;31:hjlJHVbDfm3KggtLuWWQ5VAS0tZsUCrBJfRpwN8ldD/E/l2eqrd81u+VNES71cu2gwqg2mLiKdM+h88961lsAQEBNQxs8b4IFWXirNnp3JIA3rmRmzwsn/GB7oiCVYZ0YOP0RXRuxzDdx1ygiyOHrmviP+uLYZw7ZzfqSj2dOog52T3AjCtnJfRdxRk0HK4E2qcUcwoGiLRrsoKaPZdDNx/nW7V2F9Hs+2Oid18EaqI= X-MS-TrafficTypeDiagnostic: AM4PR0301MB1937: X-Microsoft-Exchange-Diagnostics: 1;AM4PR0301MB1937;20:u8AIU+OGruefJP/BG3nSaZkcokVKe4JA+2oOwtdZsIDt60jFBQ7i8piwqyXb6XXZ462PiNlVowjNO3Na3ec7HcbbPezRw6z4ltRZ2cpNZU32XtRvM8v/lSeeEYoHFG+a1OjtSW+RkmdLFXT1S0L8eTay7a6KtRvWuGGH1hyRqruMIemwrpf1TEt2PQJbXsBOyBQ15Mk0SADykR/gY8P2sf3dVFPjCJk3e0Jb6J9Ibd217Klm2mpFrdKbT73TLS78rSud00pxJuszsFzBHprE2I4e/D7A7hzUrVvIfjDXZZTlSz9w9UR3qH1b52D8zzahb2Kg1A1A9RtvfhuH4imCKrLeFUczU4mDslDkRm15vYj70EuVyjMYK/wYjkcQO4zi05JEVAilbUY3F4iNukdGmYQ/bh4Jr3czqSZbswOoSEDJ7C/sIV8XdsgFfHJCZHF9f9SP+vE9JIhbgq95V8wXGuuXxQ8EX+XgPl8Owg0xPGVi8qnCjVgdaw/9QPeluE+g;4:P7AafcPjXtsc2IFoSE9hoB/ohdjrMGjM+51gKipHnn1lhF3nJjyFM6bjU1H6SpPEujTPTX0Ts8qKzmZx5cpDEArswlPc9Qw1KmKriYpk7njB7fay1ijZ6chzL1vRYFGI0CoHuCQlw8hSCtkvFcwhT9Q9iP5VmpjUGiIARfK5lY5LF+wv33FYDDX+KcfrFsJdL9dN4JzE7EPQfaqtyFxXd9nEsiDCWEvOmEK4zgD7o/BCer2ggrJDofhLVA56rWxjo2vFHBccalYIQ4affDSBmxbprX43kNYHBEpUQ00Fs5rE5yQdBkowp7xN6zMhqVU000oHYQAUJfw1pb10Vm5/3PjHEUQ38ccJRK1POJRrm+0= X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(84791874153150); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231020)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM4PR0301MB1937;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM4PR0301MB1937; X-Forefront-PRVS: 0476D4AB88 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(39830400002)(346002)(376002)(199003)(189002)(33646002)(83506002)(77096006)(6306002)(6486002)(53936002)(36756003)(2906002)(5660300001)(65826007)(8936002)(93886005)(8676002)(54906003)(16576012)(81156014)(81166006)(58126008)(316002)(6116002)(64126003)(3846002)(16526018)(65806001)(2950100002)(65956001)(66066001)(6916009)(47776003)(6666003)(50466002)(478600001)(39060400002)(7736002)(966005)(72206003)(80792005)(23676002)(31696002)(101416001)(189998001)(50986999)(54356999)(76176999)(105586002)(106356001)(31686004)(230700001)(86362001)(97736004)(305945005)(68736007)(4326008)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR0301MB1937;H:[10.17.182.9];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjAzMDFNQjE5Mzc7MjM6U0RDczA1cy9KcUtBVWFSbkhkS1hiWi9Q?= =?utf-8?B?Vi80Tno5bXE4S0hUVUc4T0s2SnBCNllacFlQOWtoZVJmMktTeUV5bkUybDdP?= =?utf-8?B?dm52NFcyc3NLS1BEaDJyQmJwbDYySjZqci9nOGhFRmRNZ2ZDeno3SGdjSWlW?= =?utf-8?B?VVpLN3ZZem5qWWFWVEJFNXJnOTM0SmNydW5uQ2JPdkhLb2xmMU1qRk14eVhL?= =?utf-8?B?RmR2cUhTUGcvaEhHV0tJT1dtWmJ5RGlzZm9mRnczYlBuK3kzYmRKL0NNbllx?= =?utf-8?B?ajFSVWZaN3ljT003TzJ6NXpsWG93LzRRK0J4UXpVdHRzL0tidjBLNm1yN1Iz?= =?utf-8?B?SGMzckNkUHRIRUJnZTArRXZTNDlQK0d0ZDAxaUtvUTQzeUN2WkYvKytDbVlZ?= =?utf-8?B?UnQzL000WnJ1aG1sQXhpdGMzS2Nob09EK3Q3VGd0S0NKMkJwd1NQbDNOVm5M?= =?utf-8?B?cmVMT1k0SkpGdzgzWEtoZ29oclJhVEFRQUpQYk9XMzBoSzduNzJVZHJLR3JI?= =?utf-8?B?Q2VoU0RmR1JzL0RjdUdtek5XOWFSQzVZT1dKMlUyU24vMEh4WUtBdmVoVUZP?= =?utf-8?B?U01kdmc4Si8zekV6bUw0RXhZK0RxSHB6K21ySDdMUzFMNlNSUWxUQ09XZFdq?= =?utf-8?B?ampXK1g0cjJOTUVuaTEzOGRrMkR5TW1UbWlSMXdGVzg3N1J1R0xVREVucnRN?= =?utf-8?B?YjM1eDBVTGhLR2JvRy91Nm90OTIzWUZ0MnJCb3R0SUZZdjA5RERCL3BhcWNP?= =?utf-8?B?ZnFzU0IxNU5mV1haUUZ1Mk5ETEtTa3RvNE4zeXhnYkdxUTIrSmhueEEwRlpB?= =?utf-8?B?ejNlWXdmeG5LdWV2RngyV0o5dldsdmtTY21WRWxKa2g0RTg2bC9Zd205VWha?= =?utf-8?B?akVtY2FoQm1EK20wVVNMcmJMVkpCUzZIQXpUdkFPaGZPZ3pjcXBpbDNJWCtl?= =?utf-8?B?b2daeWk2cnRBMWlmSXlTdU1walNoeXlYOXBHcEZPNGpTam43TVZjKzJEMXov?= =?utf-8?B?VVBHdEZocHFzNUc5alFxeXUzZzdLMnllUHFFc01RUmM2bTIwSzZPUDg5emxk?= =?utf-8?B?ZHlaNThNdXlIUm9ISjVCQ0xkcTdNQUxMYXQyL1pxQ3Q3a2JocEJmYXlVMVlh?= =?utf-8?B?QmRjdi93b2pBT1N1dWdlYmxHcFRDandMRE9rQm9NVkJGSG1kU05mVUpzNmhJ?= =?utf-8?B?ekIvZlVNbkJrd3EvT3o4dHNFM3lMdUFRMTdVekNzVFh1ZkxBQzVNY1JyVGhN?= =?utf-8?B?dzVyOFU1dXZZaXZ3cnBlaDFGUHBSckRaemtLbXdkaVZWK2hyTzRjVm5SekhZ?= =?utf-8?B?UnZZMy9kQnZDSUtXS2tnKzRpdXg0SUpycDVtTjR0cEpCOXUrMWtvRzV1SG5M?= =?utf-8?B?M0hHNWNtdStzcC96alFrS2h5Y3QvUFdpa3cxcVcwcTVQemFuM3NYSmRoQ1I4?= =?utf-8?B?VSt4S1JyVzYremFJcFpDRnhCaDlmaDdvUzRMcDFxN0dOYXlpN1BDeUZGOEZI?= =?utf-8?B?KzFzSFUyUE5sZS8yY0Vpb2d4QjVLLzA4USs0cWxtdjg3NlpiNzRWeFlObHFv?= =?utf-8?B?Y3NpbUVMSTNjcFMxSnBZVk5GOGdEck14YUp0ZVd4NGs1RFFWUmFaZisycU1X?= =?utf-8?B?MXVHanJzYS9jMmNLSzh1VDAxS0k4UWJBWjQ2N2lvNis4ZnVLT01vcmIxL0JS?= =?utf-8?B?TkdyTytSQWU1aDI3RFJnQXJpZ0ZSYTNWZlF2U0JnSklPYk0ramsyYldDWTVv?= =?utf-8?B?a1Q4RUFzb0R0OTgzbEZFODNYS3lUNzdEK0FGL0o4ZmZtNFNrM0R4aURQaU9O?= =?utf-8?B?SHBqTlVVZlBNNUt1dzl0Z05XQTcxVVEwYXN1cFJuMjJqMENvRjFiL1I4OHlj?= =?utf-8?Q?PgfR0Ml1ge/QAT97DlmLsvrvPQpJhA5Ks8?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0301MB1937;6:1DrCHK56UpW0bSl0YgzBG6kNiE7/ZX3KcaW/xFIgre1nfohJu928x3zDAw3asWeXuhJL2gz2s+lKC7MzTjgf5FzTT24FFS8UG8wVoe0E36sizspt78ohP1gRkYvGxKS4QPpIhRV/MsjF14w5bqYj/9fkQpIABPQjqy3hx7xFR6ivdz0NwiuM+2l/HiO0KsSWN+Sv4LJY/LwLzdn5eCZgQQKElAH/5zXZ2/SCaBnGWrUU5VfgRxf3ctlJGfNzUN4MdRgCwm1enD4Skwge1BiqxolTnm27c2N3CdlSiQpxdqZbwQ/Uv0uoGBbQBlp2R9xp82neSNkTp2Y3LaCkA0Jte1P6/OFd6j1ijudlKoD2+Sk=;5:40RIWW5JIRIkir5oK/n/9VyCf+T3Ytr/AaTomV9vEQhFIgMevffThwU5aAZxhiPlIaRD3FwyfcwZz8vm6eo7kqF8SG2O3zaj+Fp/AbIRU/k0VSJHGtt3GVVC54VKzjkg+RsEs0kgjYWnvMM1gMvC+rkp4o4+8SG1KHG/ZJezJu8=;24:yQAcidVFpbudtj2SsGyggx+Xd50N1XtIbhli7OgBdh0cd2J/plZrXVVeTG68cba35O52DlB6wZFSQ8XQ+Vk3jO/PPVHw2CyLqk6EgemNXvM=;7:LOj/1D8HvMID1k/V2AGRvUYN+CYUbDiCvymYUXCXGVSPeIsNi9RA7Y9W32IuwbPdVj1OV8z+LbXo6e7zTxFPITL8waex/e9AfcIt2XT0Fnw9W3zJapUTRvxp/TsN9p2YFnz2Xc8pXAkqbq7UxDV3dI7wtlyvYe3mJ5rBoJBraJOymzFq7otPooteU3rMOhW9KudFy9trlEf4d3kid6y8/othSo3Q0TdPy55vhMMnfI7e/H4TUmWJVexO8lK8vJA2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2017 06:33:50.5350 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9c40caea-424f-4d45-1aa1-08d51f602f6b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0301MB1937 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, all! This is an attempt to summarize previous discussions on Xen para-virtual sound driver. A first attempt has been made to upstream the driver [1] which brought number of fundamental questions, one of the biggest ones was that the frontend driver has no means to synchronize its period elapsed event with the host driver, but uses software emulation on the guest side [2] with a timer. In order to address this a change to the existing Xen para-virtual sound protocol [3] was proposed to fill this gap [4] and remove 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. [5]. Hope, this helps to get the full picture of what was discussed and makes it possible to move forward: if the approach seems ok, then I'll start upstreaming the changes to the sndif protocol and then will send the updated version of the driver for the further review. Thank you, Oleksandr [1] https://lkml.org/lkml/2017/8/7/363 [2] https://lkml.org/lkml/2017/8/9/1167 [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/xen/interface/io/sndif.h [4] https://lkml.org/lkml/2017/9/19/121 [5] https://github.com/andr2000/linux/tree/snd_upstream_v1/sound/xen