All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/19] tools/xenstore: drop TDB
@ 2023-08-14  7:46 Juergen Gross
  2023-08-14  7:46 ` [PATCH v4 01/19] tools/xenstore: make hashtable key parameter const Juergen Gross
                   ` (19 more replies)
  0 siblings, 20 replies; 40+ messages in thread
From: Juergen Gross @ 2023-08-14  7:46 UTC (permalink / raw)
  To: xen-devel
  Cc: Juergen Gross, Wei Liu, Julien Grall, Anthony PERARD,
	Andrew Cooper, George Dunlap, Jan Beulich, Stefano Stabellini,
	Samuel Thibault

Using TDB for storing the Xenstore nodes is adding more complexity
instead of removing it. With keeping the data in memory only, the main
reason for using TDB has disappeared.

This series is replacing TDB with a hashlist referencing directly
individually allocated Xenstore nodes.

This in turn allows to use references of the stored nodes instead of
copying them in case only read access is needed. Some simple tests
using the test-xenstore utility have shown no single test being slower
with this series applied, but some tests experienced up to 10% better
performance.

Changes in V4:
- addressed comments
- patches 1-7 already applied
- dropped patch 15 of v3
- add patches 18+19

Changes in V3:
- addressed comments
- add patches 14+15
- replace patch 18 of v2 with patches 20-25

Changes in V2:
- addressed comments
- split former patch 9 into 2 patches
- added patches 13-18

Juergen Gross (19):
  tools/xenstore: make hashtable key parameter const
  tools/xenstore: let hashtable_add() fail in case of existing entry
  tools/xenstore: add hashtable_replace() function
  tools/xenstore: drop use of tdb
  tools/xenstore: remove tdb code
  tools/xenstore: let db_delete() return void
  tools/xenstore: change talloc_free() to take a const pointer
  tools/xenstore: move copying of node data out of db_fetch()
  tools/xenstore: rework struct xs_tdb_record_hdr
  tools/xenstore: don't use struct node_perms in struct node
  tools/xenstore: use struct node_hdr in struct node
  tools/xenstore: alloc new memory in domain_adjust_node_perms()
  tools/xenstore: introduce read_node_const()
  tools/xenstore: merge get_spec_node() into get_node_canonicalized()
  tools/xenstore: merge is_valid_nodename() into canonicalize()
  tools/xenstore: rework get_node()
  tools/xenstore: introduce get_node_const()
  tools/config: add XEN_RUN_STORED to config.h
  tools/xenstore: move xenstored sources into dedicated directory

 .gitignore                                    |    2 +-
 MAINTAINERS                                   |    1 +
 configure                                     |    5 +
 m4/paths.m4                                   |    1 +
 stubdom/Makefile                              |    4 +-
 tools/Makefile                                |    1 +
 tools/config.h.in                             |    3 +
 tools/configure                               |    5 +
 tools/libs/store/Makefile                     |    1 -
 tools/xenstore/Makefile                       |   30 +-
 tools/xenstore/Makefile.common                |   31 -
 tools/xenstore/tdb.c                          | 1748 -----------------
 tools/xenstore/tdb.h                          |  132 --
 tools/xenstored/Makefile                      |   48 +
 tools/xenstored/Makefile.common               |   29 +
 tools/{xenstore => xenstored}/README          |    0
 .../control.c}                                |    8 +-
 .../control.h}                                |    0
 .../xenstored_core.c => xenstored/core.c}     |  643 +++---
 .../xenstored_core.h => xenstored/core.h}     |   77 +-
 .../xenstored_domain.c => xenstored/domain.c} |   44 +-
 .../xenstored_domain.h => xenstored/domain.h} |    8 +-
 tools/{xenstore => xenstored}/hashtable.c     |   60 +-
 tools/{xenstore => xenstored}/hashtable.h     |   24 +-
 tools/{xenstore => xenstored}/list.h          |    0
 .../xenstored_lu.c => xenstored/lu.c}         |    8 +-
 .../xenstored_lu.h => xenstored/lu.h}         |    0
 .../lu_daemon.c}                              |    4 +-
 .../lu_minios.c}                              |    2 +-
 .../xenstored_minios.c => xenstored/minios.c} |    2 +-
 .../xenstored_osdep.h => xenstored/osdep.h}   |    0
 .../xenstored_posix.c => xenstored/posix.c}   |    4 +-
 tools/{xenstore => xenstored}/talloc.c        |   10 +-
 tools/{xenstore => xenstored}/talloc.h        |    4 +-
 .../{xenstore => xenstored}/talloc_guide.txt  |    0
 .../transaction.c}                            |   57 +-
 .../transaction.h}                            |    2 +-
 tools/{xenstore => xenstored}/utils.c         |    0
 tools/{xenstore => xenstored}/utils.h         |    9 -
 .../xenstored_watch.c => xenstored/watch.c}   |   45 +-
 .../xenstored_watch.h => xenstored/watch.h}   |    5 +-
 .../include => xenstored}/xenstore_state.h    |    0
 42 files changed, 666 insertions(+), 2391 deletions(-)
 delete mode 100644 tools/xenstore/Makefile.common
 delete mode 100644 tools/xenstore/tdb.c
 delete mode 100644 tools/xenstore/tdb.h
 create mode 100644 tools/xenstored/Makefile
 create mode 100644 tools/xenstored/Makefile.common
 rename tools/{xenstore => xenstored}/README (100%)
 rename tools/{xenstore/xenstored_control.c => xenstored/control.c} (98%)
 rename tools/{xenstore/xenstored_control.h => xenstored/control.h} (100%)
 rename tools/{xenstore/xenstored_core.c => xenstored/core.c} (88%)
 rename tools/{xenstore/xenstored_core.h => xenstored/core.h} (88%)
 rename tools/{xenstore/xenstored_domain.c => xenstored/domain.c} (98%)
 rename tools/{xenstore/xenstored_domain.h => xenstored/domain.h} (95%)
 rename tools/{xenstore => xenstored}/hashtable.c (89%)
 rename tools/{xenstore => xenstored}/hashtable.h (89%)
 rename tools/{xenstore => xenstored}/list.h (100%)
 rename tools/{xenstore/xenstored_lu.c => xenstored/lu.c} (98%)
 rename tools/{xenstore/xenstored_lu.h => xenstored/lu.h} (100%)
 rename tools/{xenstore/xenstored_lu_daemon.c => xenstored/lu_daemon.c} (97%)
 rename tools/{xenstore/xenstored_lu_minios.c => xenstored/lu_minios.c} (98%)
 rename tools/{xenstore/xenstored_minios.c => xenstored/minios.c} (97%)
 rename tools/{xenstore/xenstored_osdep.h => xenstored/osdep.h} (100%)
 rename tools/{xenstore/xenstored_posix.c => xenstored/posix.c} (98%)
 rename tools/{xenstore => xenstored}/talloc.c (99%)
 rename tools/{xenstore => xenstored}/talloc.h (98%)
 rename tools/{xenstore => xenstored}/talloc_guide.txt (100%)
 rename tools/{xenstore/xenstored_transaction.c => xenstored/transaction.c} (93%)
 rename tools/{xenstore/xenstored_transaction.h => xenstored/transaction.h} (98%)
 rename tools/{xenstore => xenstored}/utils.c (100%)
 rename tools/{xenstore => xenstored}/utils.h (89%)
 rename tools/{xenstore/xenstored_watch.c => xenstored/watch.c} (90%)
 rename tools/{xenstore/xenstored_watch.h => xenstored/watch.h} (93%)
 rename tools/{xenstore/include => xenstored}/xenstore_state.h (100%)

-- 
2.35.3



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

end of thread, other threads:[~2023-08-18 12:54 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-14  7:46 [PATCH v4 00/19] tools/xenstore: drop TDB Juergen Gross
2023-08-14  7:46 ` [PATCH v4 01/19] tools/xenstore: make hashtable key parameter const Juergen Gross
2023-08-14 17:51   ` Julien Grall
2023-08-14  7:46 ` [PATCH v4 02/19] tools/xenstore: let hashtable_add() fail in case of existing entry Juergen Gross
2023-08-14  7:46 ` [PATCH v4 03/19] tools/xenstore: add hashtable_replace() function Juergen Gross
2023-08-14  7:46 ` [PATCH v4 04/19] tools/xenstore: drop use of tdb Juergen Gross
2023-08-14  7:46 ` [PATCH v4 05/19] tools/xenstore: remove tdb code Juergen Gross
2023-08-14  7:46 ` [PATCH v4 06/19] tools/xenstore: let db_delete() return void Juergen Gross
2023-08-14  7:46 ` [PATCH v4 07/19] tools/xenstore: change talloc_free() to take a const pointer Juergen Gross
2023-08-14 17:53   ` Julien Grall
2023-08-14  7:46 ` [PATCH v4 08/19] tools/xenstore: move copying of node data out of db_fetch() Juergen Gross
2023-08-14 17:55   ` Julien Grall
2023-08-14  7:46 ` [PATCH v4 09/19] tools/xenstore: rework struct xs_tdb_record_hdr Juergen Gross
2023-08-14 18:04   ` Julien Grall
2023-08-14  7:46 ` [PATCH v4 10/19] tools/xenstore: don't use struct node_perms in struct node Juergen Gross
2023-08-14 18:09   ` Julien Grall
2023-08-14  7:46 ` [PATCH v4 11/19] tools/xenstore: use struct node_hdr " Juergen Gross
2023-08-18 10:57   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 12/19] tools/xenstore: alloc new memory in domain_adjust_node_perms() Juergen Gross
2023-08-18 10:59   ` [PATCH v4 12/19]tools/xenstore: " Julien Grall
2023-08-14  7:47 ` [PATCH v4 13/19] tools/xenstore: introduce read_node_const() Juergen Gross
2023-08-18 11:06   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 14/19] tools/xenstore: merge get_spec_node() into get_node_canonicalized() Juergen Gross
2023-08-18 11:07   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 15/19] tools/xenstore: merge is_valid_nodename() into canonicalize() Juergen Gross
2023-08-18 11:12   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 16/19] tools/xenstore: rework get_node() Juergen Gross
2023-08-18 11:14   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 17/19] tools/xenstore: introduce get_node_const() Juergen Gross
2023-08-18 11:16   ` Julien Grall
2023-08-14  7:47 ` [PATCH v4 18/19] tools/config: add XEN_RUN_STORED to config.h Juergen Gross
2023-08-14 10:34   ` Anthony PERARD
2023-08-14 11:07     ` Juergen Gross
2023-08-14 11:30   ` [PATCH v4.1 " Juergen Gross
2023-08-14  7:47 ` [PATCH v4 19/19] tools/xenstore: move xenstored sources into dedicated directory Juergen Gross
2023-08-18 11:22   ` Julien Grall
2023-08-18 12:14     ` Juergen Gross
2023-08-18 12:42       ` Julien Grall
2023-08-18 12:46         ` Juergen Gross
2023-08-18 12:54 ` [PATCH v4 00/19] tools/xenstore: drop TDB Julien Grall

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.