All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/29] tools: enable xenstore-stubdom to use 9pfs
@ 2023-11-01  9:32 Juergen Gross
  2023-11-01  9:32 ` [PATCH 01/29] xen/public: add some more 9pfs xenstore paths Juergen Gross
                   ` (28 more replies)
  0 siblings, 29 replies; 81+ messages in thread
From: Juergen Gross @ 2023-11-01  9:32 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Wei Liu, Anthony PERARD, Julien Grall,
	Samuel Thibault

This series is adding 9pfs support to Xenstore-stubdom, enabling it
to do logging to a dom0 directory.

This is a prerequisite for the final goal to add live update support
to Xenstore-stubdom, as it enables the stubdom to store its state in
a dom0 file.

The 9pfs backend is a new daemon written from scratch. Using a
dedicated 9pfs daemon has several advantages:

- it is using much less resources than a full blown qemu process
- it can serve multiple guests (the idea is to use it for other
  infrastructure domains, like qemu-stubdom or driver domains, too)
- it is designed to support several security enhancements, like
  limiting the number of files for a guest, or limiting the allocated
  file system space
- it doesn't support file links (neither hard nor soft links) or
  referencing parent directories via "..", minimizing the risk that
  a guest can "escape" from its home directory

Note that for now the daemon only contains the minimal needed
functionality to do logging from Xenstore-stubdom. I didn't want to
add all the 9pfs commands and security add-ons in the beginning, in
order to avoid needless efforts in case the idea of the daemon is
being rejected.

Note that the series can only be committed after the related Mini-OS
series [1] has gone in.

[1]: https://lists.xen.org/archives/html/xen-devel/2023-11/threads.html#00010


Juergen Gross (29):
  xen/public: add some more 9pfs xenstore paths
  tools: add a new xen logging daemon
  tools/xenlogd: connect to frontend
  tools/xenlogd: add transport layer
  tools/xenlogd: add 9pfs response generation support
  tools/xenlogd: add 9pfs version request support
  tools/xenlogd: add 9pfs attach request support
  tools/xenlogd: add 9pfs walk request support
  tools/xenlogd: add 9pfs open request support
  tools/xenlogd: add 9pfs clunk request support
  tools/xenlogd: add 9pfs create request support
  tools/xenlogd: add 9pfs stat request support
  tools/xenlogd: add 9pfs write request support
  tools/xenlogd: add 9pfs read request support
  tools/libs/light: add backend type for 9pfs PV devices
  tools/xl: support new 9pfs backend xenlogd
  tools/helpers: allocate xenstore event channel for xenstore stubdom
  tools/xenstored: rename xenbus_evtchn()
  stubdom: extend xenstore stubdom configs
  tools: add 9pfs device to xenstore-stubdom
  tools: tell xenstore-stubdom its own domid
  tools/xenstored:
  tools/xenstored: split domain_init()
  tools/xenstored: map stubdom interface
  tools/xenstored: mount 9pfs device in stubdom
  tools/xenstored: add helpers for filename handling
  tools/xenstored: add daemon_init() function
  tools/xenstored: support complete log capabilities in stubdom
  tools/xenstored: have a single do_control_memreport()

 docs/man/xl.cfg.5.pod.in                  |   36 +-
 stubdom/xenstore-minios.cfg               |    2 +-
 stubdom/xenstorepvh-minios.cfg            |    2 +-
 tools/Makefile                            |    1 +
 tools/helpers/init-xenstore-domain.c      |   13 +-
 tools/hotplug/Linux/launch-xenstore.in    |    1 +
 tools/include/libxl.h                     |   17 +
 tools/include/xen-tools/common-macros.h   |    4 +
 tools/libs/light/libxl_9pfs.c             |  172 ++-
 tools/libs/light/libxl_create.c           |    4 +-
 tools/libs/light/libxl_dm.c               |    2 +-
 tools/libs/light/libxl_types.idl          |   11 +
 tools/libs/light/libxl_types_internal.idl |    1 +
 tools/xenlogd/.gitignore                  |    1 +
 tools/xenlogd/Makefile                    |   38 +
 tools/xenlogd/io.c                        | 1337 +++++++++++++++++++++
 tools/xenlogd/xenlogd.c                   |  715 +++++++++++
 tools/xenlogd/xenlogd.h                   |   85 ++
 tools/xenstored/control.c                 |   29 +-
 tools/xenstored/core.c                    |   28 +-
 tools/xenstored/core.h                    |   12 +-
 tools/xenstored/domain.c                  |   72 +-
 tools/xenstored/domain.h                  |    2 +
 tools/xenstored/lu_daemon.c               |    4 +-
 tools/xenstored/minios.c                  |   49 +-
 tools/xenstored/posix.c                   |   18 +-
 tools/xl/xl_parse.c                       |   35 +
 xen/include/public/io/9pfs.h              |   34 +
 28 files changed, 2655 insertions(+), 70 deletions(-)
 create mode 100644 tools/xenlogd/.gitignore
 create mode 100644 tools/xenlogd/Makefile
 create mode 100644 tools/xenlogd/io.c
 create mode 100644 tools/xenlogd/xenlogd.c
 create mode 100644 tools/xenlogd/xenlogd.h

-- 
2.35.3



^ permalink raw reply	[flat|nested] 81+ messages in thread

end of thread, other threads:[~2023-11-08  6:55 UTC | newest]

Thread overview: 81+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-01  9:32 [PATCH 00/29] tools: enable xenstore-stubdom to use 9pfs Juergen Gross
2023-11-01  9:32 ` [PATCH 01/29] xen/public: add some more 9pfs xenstore paths Juergen Gross
2023-11-01 18:31   ` Jason Andryuk
2023-11-02  7:15     ` Juergen Gross
2023-11-01  9:32 ` [PATCH 02/29] tools: add a new xen logging daemon Juergen Gross
2023-11-01 18:36   ` Jason Andryuk
2023-11-02  7:44     ` Juergen Gross
2023-11-02 19:15       ` Andrew Cooper
2023-11-03  7:36         ` Juergen Gross
2023-11-01  9:32 ` [PATCH 03/29] tools/xenlogd: connect to frontend Juergen Gross
2023-11-01 19:21   ` Jason Andryuk
2023-11-02  8:23     ` Juergen Gross
2023-11-03  1:42       ` Jason Andryuk
2023-11-03  7:37         ` Juergen Gross
2023-11-01  9:33 ` [PATCH 04/29] tools/xenlogd: add transport layer Juergen Gross
2023-11-02 18:30   ` Jason Andryuk
2023-11-03  7:50     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 05/29] tools/xenlogd: add 9pfs response generation support Juergen Gross
2023-11-02 18:48   ` Jason Andryuk
2023-11-03  7:52     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 06/29] tools/xenlogd: add 9pfs version request support Juergen Gross
2023-11-02 19:25   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 07/29] tools/xenlogd: add 9pfs attach " Juergen Gross
2023-11-03 15:13   ` Jason Andryuk
2023-11-06  7:52     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 08/29] tools/xenlogd: add 9pfs walk " Juergen Gross
2023-11-03 19:48   ` Jason Andryuk
2023-11-06  7:53     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 09/29] tools/xenlogd: add 9pfs open " Juergen Gross
2023-11-06 19:33   ` Jason Andryuk
2023-11-07  7:03     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 10/29] tools/xenlogd: add 9pfs clunk " Juergen Gross
2023-11-06 19:35   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 11/29] tools/xenlogd: add 9pfs create " Juergen Gross
2023-11-06 19:53   ` Jason Andryuk
2023-11-07  7:15     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 12/29] tools/xenlogd: add 9pfs stat " Juergen Gross
2023-11-07 14:04   ` Jason Andryuk
2023-11-07 14:42     ` Juergen Gross
2023-11-07 14:48       ` Jason Andryuk
2023-11-07 15:20         ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 13/29] tools/xenlogd: add 9pfs write " Juergen Gross
2023-11-07 14:10   ` Jason Andryuk
2023-11-07 14:43     ` Juergen Gross
2023-11-07 15:21       ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 14/29] tools/xenlogd: add 9pfs read " Juergen Gross
2023-11-07 14:31   ` Jason Andryuk
2023-11-07 14:49     ` Juergen Gross
2023-11-07 15:23       ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 15/29] tools/libs/light: add backend type for 9pfs PV devices Juergen Gross
2023-11-07 15:46   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 16/29] tools/xl: support new 9pfs backend xenlogd Juergen Gross
2023-11-07 16:55   ` Jason Andryuk
2023-11-08  6:54     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 17/29] tools/helpers: allocate xenstore event channel for xenstore stubdom Juergen Gross
2023-11-07 18:23   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 18/29] tools/xenstored: rename xenbus_evtchn() Juergen Gross
2023-11-01 10:44   ` Julien Grall
2023-11-01 11:08     ` Juergen Gross
2023-11-01 11:14       ` Julien Grall
2023-11-01  9:33 ` [PATCH 19/29] stubdom: extend xenstore stubdom configs Juergen Gross
2023-11-07 18:24   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 20/29] tools: add 9pfs device to xenstore-stubdom Juergen Gross
2023-11-07 19:18   ` Jason Andryuk
2023-11-08  6:54     ` Juergen Gross
2023-11-01  9:33 ` [PATCH 21/29] tools: tell xenstore-stubdom its own domid Juergen Gross
2023-11-01 16:51   ` Andrew Cooper
2023-11-01  9:33 ` [PATCH 22/29] tools/xenstored: Juergen Gross
2023-11-07 19:23   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 23/29] tools/xenstored: split domain_init() Juergen Gross
2023-11-01  9:33 ` [PATCH 24/29] tools/xenstored: map stubdom interface Juergen Gross
2023-11-01  9:33 ` [PATCH 25/29] tools/xenstored: mount 9pfs device in stubdom Juergen Gross
2023-11-07 20:32   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 26/29] tools/xenstored: add helpers for filename handling Juergen Gross
2023-11-07 20:34   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 27/29] tools/xenstored: add daemon_init() function Juergen Gross
2023-11-07 20:34   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 28/29] tools/xenstored: support complete log capabilities in stubdom Juergen Gross
2023-11-07 20:36   ` Jason Andryuk
2023-11-01  9:33 ` [PATCH 29/29] tools/xenstored: have a single do_control_memreport() Juergen Gross
2023-11-07 20:40   ` Jason Andryuk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.