All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>, Ian Jackson <iwj@xenproject.org>,
	Wei Liu <wl@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH RFC 0/4] tools/xenstore: start of rework of xenstored
Date: Fri, 22 Jan 2021 10:23:20 +0100	[thread overview]
Message-ID: <20210122092324.7178-1-jgross@suse.com> (raw)

This is an overture of a major rework of the xenstored internals I've
had lying around for about one year now. It has been blocked by all
the XSA work and live update stuff.

This series has not seen much testing. It is rather meant as a
starting point for discussions whether the approach especially to
drop tdb is accepted or not.

The main reason to drop using tdb is to be able to have references
between nodes, which will be rather interesting for adding the
capability to do live updates even with open transactions.

Other optimizations made possible by this would be to e.g.:

- hook watches directly to nodes, dropping the need to scan all
  active watches when modifying a node

- switch transaction handling to a rather simple copy-on-write
  scheme

- avoid lots of node copying when traversing the tree

- drop the list children names by replacing it with a linked list of
  child nodes

Patches 1 and 2 are in this series basically because they are in my
todo list for xenstored and they need to wait for the tree to be opened
anyway before being able to go in.

Patch 3 is some preparation for removing tdb, but could be taken as a
cleanup patch even without dropping tdb.

In case no one is objecting to drop tdb I'll continue with some further
optimizations.

Juergen Gross (4):
  tools/xenstore: simplify xenstored main loop
  tools/xenstore: claim resources when running as daemon
  tools/xenstore: rework hashtable interfaces
  tools/xenstore: drop use of tdb

 .gitignore                             |    2 -
 tools/xenstore/Makefile                |    9 +-
 tools/xenstore/hashtable.c             |  234 ++--
 tools/xenstore/hashtable.h             |  137 +-
 tools/xenstore/hashtable_private.h     |   85 --
 tools/xenstore/tdb.c                   | 1748 ------------------------
 tools/xenstore/tdb.h                   |  134 --
 tools/xenstore/xenstored_core.c        |  313 ++---
 tools/xenstore/xenstored_core.h        |   30 +-
 tools/xenstore/xenstored_domain.c      |   11 +-
 tools/xenstore/xenstored_minios.c      |    4 +
 tools/xenstore/xenstored_posix.c       |   46 +
 tools/xenstore/xenstored_transaction.c |   71 +-
 tools/xenstore/xenstored_transaction.h |    4 +-
 tools/xenstore/xs_tdb_dump.c           |   86 --
 15 files changed, 426 insertions(+), 2488 deletions(-)
 delete mode 100644 tools/xenstore/hashtable_private.h
 delete mode 100644 tools/xenstore/tdb.c
 delete mode 100644 tools/xenstore/tdb.h
 delete mode 100644 tools/xenstore/xs_tdb_dump.c

-- 
2.26.2



             reply	other threads:[~2021-01-22  9:23 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-22  9:23 Juergen Gross [this message]
2021-01-22  9:23 ` [PATCH RFC 1/4] tools/xenstore: simplify xenstored main loop Juergen Gross
2021-01-22  9:23 ` [PATCH RFC 2/4] tools/xenstore: claim resources when running as daemon Juergen Gross
2021-01-22  9:23 ` [PATCH RFC 3/4] tools/xenstore: rework hashtable interfaces Juergen Gross
2021-01-22  9:23 ` [PATCH RFC 4/4] tools/xenstore: drop use of tdb Juergen Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210122092324.7178-1-jgross@suse.com \
    --to=jgross@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.