[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Notes about "A common codebase for guest utilities, defined and shared with Xen downstreams"


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Xihuan Yang (杨喜欢) <xihuan.yang@xxxxxxxxxx>, Lin Liu (刘林) <lin.liu@xxxxxxxxxx>, Edwin Torok <edvin.torok@xxxxxxxxxx>, "samuel.verschelde@xxxxxxxx" <samuel.verschelde@xxxxxxxx>, "yann.dirson@xxxxxxxx" <yann.dirson@xxxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>
  • From: Pau Ruiz Safont <pau.safont@xxxxxxxxxx>
  • Date: Thu, 22 Sep 2022 14:00:34 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0yB3CWTwn7miff6WKQfg4NNooeTmqdpZdK27Pwgqt2w=; b=HXda+t1UfT7TSW68zIBxUAq3POIlPgNSvTt+8Ax2ZjUU54npF2hXP0OJY0rDisculUvKouqrhgbdg0KxXzV8EKtwuAnd77Szi4kcxufa8IA8v5C/pkWb9yfhllDgbScIuoIDD/fZStK7ZMrxS2PsceD3rX+A64FDWYO+oZdQ5lXma6h677NJC+X7119y4KURaDbV4Q09LB7da3lKXWK7qw+7sVawd9kc4R5hSWSyaggY4jlD6bcw3eHP01b3uqzXDMxKhR2VqFuzHIK0rvS4q6LNqTP+2YNNhFQ1hm0g3AboEm0XpHYZ1TxWO0gbMekhUxUhm9V4E/uBOJ4kqdKUEQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JpCv3qPz44qq1S3cqUdJyHCeAWrTBniTgdCVCfupgpUb4V7kmcc9H4XRh+Rz1RSYJTrpNfIRn0wMmuKI55WLNzxhRsj3zBV98dfvocT8/EljI54r/tVuM9Pn9THpqQpgZukR+XTBDLy5yFNfC0nec+2cHYyN/NwOyxhmE2dMtjTK7/S0acRj2PWsIDZasJ5vLlZ6m5uwaFjzilK7ZoWEp/zCmG5CNESYkUMlXHgLfkuOwq/AbXhs9escdo2DcMNauKFxL2tzCq2s/manKY6n7i15+pt4Ct7ZIO0GKoJak35bDVqwNRAlwAOSeWlApEHHaByV9Fym3XjziB7f3rfEPA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Fri, 23 Sep 2022 05:10:03 +0000
  • Ironport-data: A9a23:b48NU6oGhvKtxlmG/vZ61N0QZs9eBmIzZBIvgKrLsJaIsI4StFCzt garIBmHOq2NMGWmLYwkaoWx9UgPscSAn4UySVRp+ShnRCpE8puZCYyVIHmrMnLJJKUvbq7GA +byyDXkBJppJpMJjk71atANlVEliefSAOKU5NfsYkhZXRVjRDoqlSVtkus4hp8AqdWiCkaGt MiaT/f3YTdJ4BYpdDNPg06/gEk35q6q6WlC5gZWic1j5zcyqVFEVPrzGonpR5fIatE8NvK3Q e/F0Ia48gvxl/v6Ior4+lpTWhRiro/6ZWBiuFIPM0SRqkEqShgJ+rQ6LJIhhXJ/0F1lqTzTJ OJl7vRcQS9xVkHFdX90vxNwS0mSNoUekFPLzOTWXWV+ACQqflO1q8iCAn3aMqVBqt13LWhgx 8AiFz8DLUnY3f71+omCH7wEasQLdKEHPas5k1Q5l3T1KKhjRprOBaLX+dVfwTE8wNhUGurTb NYYbjwpawncZxpIOREcD5dWcOWA3yGjNWEH7g/E4/NouQA/zyQouFTpGMLcZ5qRTMtSmFqwr WPa5WXpRBodMbRzzBLVqi382rGSxEsXXqoqHbCaqOdTkWfMz0NQITcLSmr4nPK23xvWt9V3b hZ8FjAVhbg/8gmnQ8fwWzW8oWWYpVgMVtxICeo45QqRjK3O7G6xHWEBUzNFLsIrrtQ9RTEu2 lKhgdr1CCcpvqf9YWOU8LHSoTKoIi8TBXELeSIfCwUfi+QPu6k2hxPLC9pmTqi8i4SvHSmqm m/Q6i8jm78UkMgHkb2h+kzKiC6toZ6PSRMp4gLQXSSu6QYRiJOZWrFEIGPztZ5oRLt1hHHb5 yRb8yRCxIji1a2wqRE=
  • Ironport-hdrordr: A9a23:sHky/6NbSNpo+8BcT23155DYdb4zR+YMi2TDiHoddfUFSKalfp 6V98jzjSWE8Ar4wBkb6Jq90dq7MAjhHPlOkMQs1NaZLULbUQ6TQL2KgrGSpwEIdxeeygcZ79 YYT0EcMqy9MbEZt7ec3ODQKb9Jr7e6GeKT9IHjJhxWPGJXgtRbnmJE43GgYy9LrWd9ZaYRJd 653I5qtjCgcXMYYoCQHX8eRdXOoNXNidbPfQMGLwRP0njBsRqYrJrBVzSI1BYXVD1ChZ0493 LergD/7qK/99mm1x7n0XPJ5Zg+oqqh9jIDPr3NtiEmEESvtu+aXvUlZ1REhkFwnAib0idorD ALmWZmAy080QKWQoj/m2qW5+Cp6kdS15al8y7WvZKrm72HeNpxYfAx+b5xY1/X7VEts8p717 8O12WFt4BPBReFhyjl4cPUPisa4HZcjEBS5dL7tUYvJrc2eftUt8gS7UlVGJAPEGbz750mCv BnCIXZ6OxNeV2XYnjFti03qebcFkgbD1ODWAwPq8aV2z9ZkDRwyFYZ3tUWmjMF+IgmQ5dJ6u zYOuBjla1ITMURcaVhbd1xCPefGyjIW1bBIWiSKVPoGOUOPG/MsYf+5PEv6OSjaPUzve4PcV T6ISFlXEIJCjLT4Je1reN2Gzj2MRSAdCWozN1C7J5kvbC5TKb3MES4OSMTr/c=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYznooQP0DCtQ2a0Sdfczhui1HGK3remkA
  • Thread-topic: Notes about "A common codebase for guest utilities, defined and shared with Xen downstreams"

sa: Samuel
ed: Edwin
xi: Xihuan
an: Anthony
ya: Yann
pa: Pau


sa: agent running in a vm communication with the host via xenstore, 
there's no common code between vendors.
linux vendors do not know what version to package.

we tell customers to download the citrix tools.

current implementation in go

Freebsd didn't package them

ed: what's the minimal features that are needed? And what are the added 
features that are needed?

ya: suspend resume handled by the guest kernel

qubes have their own infrastructure

sa: there's an empty git repo listing features in 
https://gitlab.com/xen-project/xen-guest-agent
There are differences between the metrics in qubes and xenserver

ya: instead of pushing information, only publish the info to xenstore on 
demand.

Different agents report the memory stats in different xenstore locations

ed: after resuming, the guest agent refreshes xenstore keys, could be 
done by udev

ya: go agent don't do it, maybe kernel drivers do

ed: there's a commit from 2016 fixing it

currently we have to support current protocol, and the current protocol.

Signal through xenstore, use a new interface instead. The new interface 
was proposed years ago, to expose metrics from the guests, did it get 
implemented?

ya: a more efficient xenstore?

ed: is it even the correct interface? but there are too many guests 
using it to remove it.

sa: maybe guests could rely on xenstore's package from the distribution?

ed: the agent probably need root access, currently go agent reimplements 
xenstore, but it's incompatible with distro's package

if there's already a xenstore library available, the agent should just 
use that

sa: the initial coreos issues may not still hold, there's now fedora coreos

PoC was tasked to Yann to gfetch the IP address and other easy metrics, 
we will share once we have a minimal set of feature to gather feedback.

ed: are you using the distro packages for xenstore?

sa: if it's available yes, and otherwise we make the package ourselfves. 
On gitlab we won't include this packages, only the agent code.

ed: the one installed in dom0 has different parameters from the ones in 
the guests, it's probably not intentional

sa: we'll make them compatible with the upstream provided

why create a new project? do not depend on xenserver, but be in xen so 
distro packagers know to take that code to build packages. We must reach 
qubes to follow this, as well as Amazon, maybe other downstreams?

reading /etc/release was major improvement that users contributed, based 
on a design we wrote

distro detection tool can massively simplify

ed: what about bsd? is there any interest?

sa: we don't provide package that can be installed, instead it will 
fetch user-contributed repos that have an old version that works

ed: avoiding linux-specific dependencies would be good.

xi: the repo is empty

sa: the repo will be empty until we have a proof of concept vates can share

ed: does this need to be an rpm? A lot of complexity in Citrix is in the 
pipeline

sa: it may be a noarch rpm, without building anything

ed: if the rpms need to be build for guest is very complex

sa: how to provide packages for distros that don't provide them. In our 
bbuild system there's black magic. In koji the go program is done, then 
build the rpm and tar.gz is built, because it's statically linked

ed: without binaries would be even simpler

ya: depending on distro the config files are on different places

sa: location should be defined in the package metadata, not in the user 
repo build
upstream distros should build most of the packages

we build only for some distributions which don't release the up-to-date 
guest utils

we offer users in our webpage the option to pick

pa: what language is the PoC?

ya: we haven't started!

sa: we're trying to use without any languages, using udev. We haven't 
discussed what language would be appropriate
For linux it should be very simple to build
Static linking is very convenient for vates

pa: there's an ocaml project using cosmopolitan libc allows to run 
static binaries on windows, linux and freebsd

ya: seems very specific, runs risk of not being accepted, it should be 
simple to code

an: compatibility in python is not good

sa: not all distros will have python

ed: maybe a kernel driver?

pa: it's linux-specific, though

ed: what do other hypervisor do? kvm agents? qemu agent?

an: never seen a qemu agent

ya: there's a helper for better mouse interaction through qemu

ed: what language, how are they distributed?

an: maybe the source is in qemu

ya: there may be a driver iso, can't remember

an: https://www.qemu.org/docs/master/interop/qemu-ga.html

sa: copy and paste... surprising to see there was no easy way to share 
clipboard

an: xenserver has

sa: but only for windows, with a vnc console for linux, there's no such 
thing. Maybe it's easy to activate but we don't know the way

ed: vnc should have that

(nobody in the room knows)

ya: in qubes has it's own rpc infrastructure to control access to 
clipboard access through vchan There are shortcuts to share guest 
clipboard to the global one and back ctrlc ctrlshiftc etc, it's a 
specific mechanism

ed: we could reuse that, maybe

ya: it's not very advanced, only text. Maybe patches needed!

sa: let's wrap up

thanks for joining everybody, we'll share the notes

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.