[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 yann.dirson\"@vates.fr" <"samuel.verschelde@xxxxxxxx yann.dirson"@vates.fr>, Anthony Perard <anthony.perard@xxxxxxxxxx>
  • From: Pau Ruiz Safont <pau.safont@xxxxxxxxxx>
  • Date: Thu, 22 Sep 2022 11:55:07 +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=bsrLlsI5jZ8AUaG+UcXTqErfz+6DYgwAUHUbEZW+q53a/+qVuQOrcuDZI6l6+kaNTY02PrRz2+4EZdO5XOJvwhMw58VxSIOieT22CuKJhIFaO7X37vXiSqleyPKR6hmUd8T76y2H28AevQsnNO9bfhQ0dXr7F5RnA8S9zYbdHRaC8m78Qiggqc4emBlwhTddxtKHet7BpL7KNOMs3qXyxXurIbfNJ+qrxAzUgxecpuWepKNc5UC8JXY6+MtVDTJ5duB7SCysHzDFKEJsqf1J4rMXKLTR9xuzaLdKB4uJIvpbOfeZr0rBi1miyg41VU7maH5vbmgu18elq9V/hCFhTw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TfV2+422gCjp1eiZnJMB35amlqGaMZ+KmtV2rPG03rhfLDaJ6CmN/ZvpxSUbj08tsXX4VrgGGck54HHdGMyAkKw80xFkoF1UPU6bgcPtwHlL/RWnHLpvf4GKyu9x6QWEpUZf1BYv6OwS4LwxU2f0M4eKdKpkD5w8hM13vW75ckVJfj9QNsUG2qFTWq2ynzY1BGE1Pe6/e30b3Mwjb2E1eDwu33j3Lkjq389slcdW192MS27loXFmpPU6r/QHLEIHccXwWgncwrb+L6/rSa3IIXP7BlLVrHJqU7CIw+3Kcm2V8XQ8Zv7Zsi0iwIcDKYdIUA5bLZg2Qis4HORpLJarIQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Thu, 22 Sep 2022 12:05:02 +0000
  • Ironport-data: A9a23:mB0bPqCZt/mahRVW/1Xiw5YqxClBgxIJ4kV8jS/XYbTApDlw3zBVy WoZCjiOb//bMWv0fohxOY22/E5VvZODmoQwQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA xA2M4GYRCwMZiaA4E3ratANlFEkvYmQXL3wFeXYDS54QA5gWU8JhAlq3uU0meaEu/Dga++2k Y608pa31GONgWYuaDpFsfjb8nuDgdyp0N8mlg1mDRx0lAe2e0k9VPo3Oay3Jn3kdYhYdsbSq zHrlezREsvxpn/BO/v9+lrJWhRiro36ZGBivkF+Sam66iWukwRpukoN2FjwXm8M49mBt4gZJ NygLvVcQy9xVkHHsLx1vxW1j0iSlECJkVPKCSHXjCCd86HJW3rxhNdNPkoXBqwzy9kuIVlv9 MMaOAlYO3hvh8ruqF66Ys9Fo516aeXOYsYYsHwmyizFB/E7R5yFW7/N+dJTwDY3gIZJAOraY M0aLzFoaXwsYTUWYgtRVM14wbju3yevG9FbgAv9Sa4f+2HOihd43r/rLPLee8CQRNUTlUGdz o7D1zShWE1FZILPodaD2kqp1+/FnR3/ZIwTFe210aR13FKS3EVGXXX6UnP++5FVkHWWS99Zb kAZ5Ccqhawz71CwCMnwWQWip3yJtQJaXMBfe9DW8ymIw6vQpgqcWG4NS2cYbMR87ZFmAzs3y lWOgtXlQyR1t6GYQm6c8bHSqi6uPS8SLikJYipsoRY53uQPabob1nrnJuuP2obs5jEpMVkcG wy3kRU=
  • Ironport-hdrordr: A9a23:B1FPlKCNhN2Cd03lHegcsceALOsnbusQ8zAXPh9KJCC9I/bzqy nxpp8mPEfP+VAssOlJo6HJBEDyewKkyXcT2/hbAV7CZniuhILMFu1fBOTZslnd8kHFl9K1tp 0QOZSWaueAamSS5PySiGbXLz9K+qjlzEncv5a6854bd3AJV0gP1WdEIzfeNnczaBhNBJI/Gp bZzNFAvSCcdXMeadn+LmUZXsDYzue72K7OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X XFqQrk/a+u2svLhSM0llWjoai+quGRiuerN/b8yfT97Q+cyDpAUb4RGoFqegpF5d1Hpmxa1O Uk6C1QR/ibo0mhBV1d5yGdljUImQxelkMLgzWj8AHeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL lGxmSDqvNsfGf9dQnGlqr1vitR5z+JiGtnlfRWg21UUIMYZrMUpYsD/FlNGJNFGC7h8ogoHO RnEcmZvZ9tACWnRmGcunMqzM2nX3w1EBvDSk8eutaN2zwTmHxi1UMXyMEWg39F/pMgTJtP4f jCL81T5cZzZ95Tabg4CPYKQMOxBGCISRXQMHiKKVCiD60DM2Klke+F3Fz03pDbRHUl9upNpH 2aaiIliYcbQTOQNeSemJtW7xvKXGKxGTzw18A23ekJhoHB
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYznooUVfpDzfZVEOAf1uhZf8yng==
  • 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®.