Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
9508094
Add tracing for xe calls in the CLI server
robhoes Nov 15, 2023
1a694d7
Update datamodel lifecycle
robhoes Nov 20, 2023
0267d1d
CP-45978 update /etc/xapi.d/plugins/power-on-host
acefei Nov 17, 2023
27a5bf4
CP-45978 update /etc/xapi.d/plugins/disk-space
acefei Nov 21, 2023
18eded2
CA-365486: repository-domain-name-allowlist could accept a full hostname
Nov 7, 2023
d5f5b37
using xcp.cmd instead of popen
acefei Nov 21, 2023
fca094e
Merge pull request #5249 from robhoes/oil2
robhoes Nov 21, 2023
cf450c6
CA-384537 add logging to quemu_media_change
Nov 20, 2023
7ac88b9
Merge pull request #5233 from duobei/private/fezhan/CA-365486
minglumlu Nov 21, 2023
dc3574e
CA-384537 simplify qemu_media_change
Nov 21, 2023
dee3137
Update DRAC.py for replacing subprocess.popen
acefei Nov 23, 2023
822853d
CP-45981: Update xenopsd from python2 to python3
stephenchengCloud Nov 21, 2023
697fefa
Merge pull request #5255 from liulinC/master
Vincent-lau Nov 23, 2023
d781834
Revert "CA-379472 increase startup timeout for block_device_io"
Nov 22, 2023
db0b0a3
CA-384148 enable logging for redo_log_alert
Nov 22, 2023
17016b6
CA-384148 remove lock in Redo_log.startup
Nov 23, 2023
6ac4764
CA-385315: document the certificates' fingerprints hash algorithm
psafont Nov 23, 2023
c9f2cbd
Merge pull request #5259 from stephenchengCloud/private/stephenche/CP…
Vincent-lau Nov 23, 2023
181c9d9
Merge pull request #5256 from lindig/master
robhoes Nov 23, 2023
5a4e3ab
Merge pull request #5260 from psafont/fingersha
Vincent-lau Nov 23, 2023
b8cf929
formatting with black
acefei Nov 23, 2023
2c619c5
using the shared lib xcp.cmd instead of subprocess.popen
acefei Nov 23, 2023
6693647
CP-45977: Update scripts/extensions from python2 to python3
stephenchengCloud Nov 16, 2023
5fecb76
Merge pull request #5254 from stephenchengCloud/private/stephenche/CP…
liulinC Nov 27, 2023
62c8001
CP-42559: Add RBAC info to C# SDK XML docs
danilo-delbusso Aug 25, 2023
2c31c38
CP-42559: Add RBAC info to Java SDK docs
danilo-delbusso Aug 25, 2023
88b23a7
CP-42559: Add RBAC info to C SDK docs
danilo-delbusso Aug 25, 2023
3ba5680
CP-42559: Hide internal roles from SDK docs
danilo-delbusso Oct 30, 2023
0a2b08b
Remove special handling for `get_all_records` messages in C# SDK
danilo-delbusso Nov 9, 2023
07903c0
xe pif-list: include host-uuid (#5263)
ydirson Nov 27, 2023
4825a17
xe pif-list: fix displaying of MAC
ydirson Nov 27, 2023
f875a56
CP-45978 update /etc/xapi.d/plugins to python3 for xs9
acefei Nov 22, 2023
b8462e8
format with black
acefei Nov 28, 2023
9cc54dd
ci: create final releases
psafont Nov 28, 2023
01254d6
ci: Simplify release workflow
psafont Nov 28, 2023
b56557d
ci: set up configure appropriately on release
psafont Nov 28, 2023
e84759a
ci: Avoid unnecessary workaround
psafont Nov 28, 2023
542a871
Advanced changes for python3 syntax:
acefei Nov 29, 2023
1d533a0
Improves Code Readability
acefei Nov 29, 2023
bcb9d8b
Merge pull request #5271 from acefei/private/feis/vhd-tool
robhoes Nov 29, 2023
2cd3329
Change type of observer components to use variant
Vincent-lau Nov 28, 2023
7d83c8c
Merge pull request #5264 from xcp-ng/xe-pif-list-params
psafont Nov 29, 2023
3c132e8
Merge pull request #5269 from Vincent-lau/private/shul2/comp-variant
psafont Nov 29, 2023
1c0e630
Enhance debug message in tracing module
Vincent-lau Nov 17, 2023
9dbec9d
Expose `flush_spans` from tracing.ml
Vincent-lau Nov 29, 2023
af5b2a9
Refactor typeCombinator as a single module
Vincent-lau Nov 29, 2023
8fa7f21
Add xapi-clusterd as an observer component
Vincent-lau Nov 29, 2023
e678326
CP-45469: Distributed tracing for xapi-clusterd
Vincent-lau Nov 29, 2023
138c2f7
Merge pull request #5270 from acefei/private/feis/update-py3
Vincent-lau Nov 29, 2023
88ea820
Add xenopsd docs from old site
robhoes Oct 27, 2023
ca0c363
Add live-migration diagram for xenopsd
robhoes Nov 29, 2023
42aea97
Remove old xenopsd docs from ocaml/xenopsd/doc
robhoes Nov 29, 2023
ccb63c6
Merge pull request #5252 from acefei/private/feis/CP-45978_v1
liulinC Nov 30, 2023
b38cf03
Merge pull request #5261 from acefei/private/feis/openvswitch-config-…
liulinC Nov 30, 2023
90a91b7
Merge pull request #5253 from acefei/private/feis/disk-space
liulinC Nov 30, 2023
0cf875c
Merge pull request #5273 from robhoes/add-docs
robhoes Nov 30, 2023
89f1bcf
Merge pull request #5251 from lindig/private/christianlin/CA-384537
psafont Nov 30, 2023
84fe2e5
Merge pull request #5268 from psafont/release-bumper
robhoes Nov 30, 2023
b238f13
Merge pull request #5250 from Vincent-lau/private/shul2/tracing-clusterd
robhoes Nov 30, 2023
29a58d0
CP-46677: Decrease the cardinality of "Export of VM" span name.
Nov 30, 2023
fb62a58
Adjust quality gate for List.hd from 320 to 318
Nov 17, 2023
9ccee32
Simplify scanning /sys/block/<dev>/ stats for iostat
Nov 17, 2023
3787251
CP-46677: Remove repeated code when creating a new span.
Nov 20, 2023
f56b948
CP-46677: Improve function performance
Nov 29, 2023
4bb119c
CA-365059: Clear source pool messages after migrating VM
danilo-delbusso Dec 1, 2023
ac4102f
Revert "CP-45981: Update xenopsd from python2 to python3"
edwintorok Dec 1, 2023
0a36c4a
Merge pull request #5274 from xapi-project/revert-5259-private/stephe…
edwintorok Dec 1, 2023
c40d4c1
Merge pull request #5267 from GabrielBuica/private/dbuica/CP-46677
edwintorok Dec 4, 2023
27cf212
Add VM migration walkthrough
gthvn1 Nov 20, 2023
6ecc885
Merge pull request #5265 from xcp-ng/gtn-vm-migration-walkthrough
robhoes Dec 4, 2023
1b0541a
Remove unused code for getting dom0 memory
robhoes Dec 5, 2023
bc49689
Merge pull request #5279 from robhoes/deadcode
robhoes Dec 5, 2023
e1e220a
CP-46379: Pass unchaged dbg to underlying function.
GabrielBuica Dec 5, 2023
0816d77
CP-45974: Porting examples to python3, changed shebang python3
ashwin9390 Dec 7, 2023
9ad2a53
CA-384457: Add special case for End_of_file to sparse_dd_wrapper
Vincent-lau Dec 7, 2023
d85bd39
CP-45974: Porting examples to python3, changed to python3 compatible …
ashwin9390 Dec 7, 2023
37ae048
CP-45974: Porting examples to python3, fixed string exception issue s…
ashwin9390 Dec 7, 2023
7baa4b9
Merge pull request #5283 from Vincent-lau/private/shul2/wrt-err
psafont Dec 7, 2023
48c3802
Move squeezed docs from xapi-project.github.io
robhoes Dec 6, 2023
8d1c1cc
Moving Event handling docs from xapi-project.github.io
robhoes Dec 8, 2023
682c9df
Add CLI architecture doc
robhoes Dec 8, 2023
68e6e56
Add storage docs
robhoes Dec 8, 2023
9b8eae1
Add xcp-rrdd docs
robhoes Dec 8, 2023
a48432b
Add redo-log doc
robhoes Dec 8, 2023
89e2070
Update generated cluster test_data
Vincent-lau Dec 8, 2023
2918027
Update doc on how to update generated test data
Vincent-lau Dec 8, 2023
e89a35e
CP-44531 Toolstack: Add Dom0 CPU usage, total and free memory into rrdd
Dec 5, 2023
cea1088
Merge pull request #5277 from LunfanZhang/private/github_luzhan/CP-44531
minglumlu Dec 11, 2023
73f6c80
CP-45974: Porting examples to python3, fixed space issue in this file
ashwin9390 Dec 11, 2023
b6a9f7c
CP-45974: Porting examples to python3, fixed extra line in this file
ashwin9390 Dec 11, 2023
c3a621c
CP-45974: Porting examples to python3, changes fixes issue w.r.t Valu…
ashwin9390 Dec 11, 2023
e582ce8
Merge pull request #5289 from robhoes/add-docs
robhoes Dec 11, 2023
4301f47
CP-46085: Add quorum info to `xcli diagnostics dbg`
Vincent-lau Dec 7, 2023
d15fa95
Merge pull request #5285 from Vincent-lau/private/shul2/dlm-time
robhoes Dec 12, 2023
fd672a9
CP-46379: Refactor 'with_dbg' to handle exceptions.
GabrielBuica Dec 7, 2023
9ec01f0
CP-46379: Instrument 'storage_smapiv1.ml' to create spans.
GabrielBuica Dec 8, 2023
5a639b1
CA-386552 XSI-1534 Failed to disable pool HA after missing HA statefile
Dec 8, 2023
f47a714
Merge pull request #5298 from lindig/private/christianlin/CA-386552
robhoes Dec 14, 2023
862b814
CP-45974: Porting examples to python3, Changed exception from generi…
ashwin9390 Dec 14, 2023
2a6aaae
CP-45974: Porting examples to python3,as per Edwin Torok an Rob Hoes …
ashwin9390 Dec 14, 2023
bea2f7c
CP-45974: Porting examples to python3,changed from generic exception …
ashwin9390 Dec 14, 2023
1186ee8
CP-45974: Porting examples to python3, implemented NotImplementedErro…
ashwin9390 Dec 14, 2023
53ec1a8
Make sure observer exporter is only created once
Vincent-lau Dec 11, 2023
2628c52
CA-386582: Always create exporting thread for observers
Vincent-lau Dec 11, 2023
f36ae95
CA-386676: Start clusterd observer when it is already enabled
Vincent-lau Dec 12, 2023
3c357e6
update print-custom-templates to python3
acefei Dec 15, 2023
f48d418
Merge pull request #5294 from Vincent-lau/private/shul2/observer-init
robhoes Dec 15, 2023
db38533
CP-45974: Porting examples to python3, removed unnecessary keys and c…
ashwin9390 Dec 15, 2023
9e6d95f
CP-46140 PVS IPv6 accept both IPv4, IPv6 for PVS Server
Nov 17, 2023
2d68b09
CP-46140 add pvs-setup, replacing setup-pvs-proxy-rules
Nov 21, 2023
31e5c86
Merge pull request #5284 from lindig/private/christianlin/CP-46140
robhoes Dec 15, 2023
f189579
CP-46379: Propagate 'traceparent' to 'Sm.*' functions
GabrielBuica Dec 11, 2023
72e9ec9
Merge pull request #5293 from GabrielBuica/private/dbuica/CP-46379
robhoes Dec 15, 2023
6dc2369
Add an overview of how XAPI handles a migration request
gthvn1 Dec 6, 2023
d5f5b12
Merge pull request #5300 from xcp-ng/gtn-migration-overview
robhoes Dec 15, 2023
ec2a849
CA-386865: External auth plugin logs are not saved
liulinC Dec 19, 2023
6fa18aa
CA-386866: Invalid cross-device link during extauth configure update
liulinC Dec 19, 2023
d6ab153
maintenance: reformat using ocamlformat 0.26.1
psafont Nov 22, 2023
26a0f67
maintenance: ignore latest reformat commit in git blames
psafont Nov 22, 2023
4c167f7
Merge pull request #5257 from psafont/reformat
psafont Dec 19, 2023
1fe74bb
Merge pull request #5306 from liulinC/private/linl/dev
robhoes Dec 19, 2023
ee31290
Merge pull request #5292 from ashwin9390/master
psafont Dec 19, 2023
ae881de
CA-385278: Add interface for flush spans and exit the export thread
Vincent-lau Dec 18, 2023
c3dc055
Merge pull request #5258 from Vincent-lau/private/shul2/span-export
robhoes Dec 19, 2023
a418e99
CP-45981: Update xenopsd from python2 to python3
stephenchengCloud Nov 21, 2023
6d76e7d
Merge pull request #5280 from stephenchengCloud/private/stephenche/qemu
liulinC Dec 20, 2023
e379f25
CP-46379: Set correct traceparent for `storage_smapiv1*.ml` functions
GabrielBuica Dec 20, 2023
34a3df0
ci(main): add a make install smoketest
edwintorok Dec 20, 2023
75b5fc0
fix(Makefile): remove xva.py from the Makefile
edwintorok Dec 20, 2023
6bd5132
Merge pull request #5310 from edwintorok/master
edwintorok Dec 20, 2023
8da012f
Merge pull request #5311 from GabrielBuica/private/dbuica/CP-46379
robhoes Dec 20, 2023
122e9d9
Merge pull request #5301 from acefei/private/feis/print-custom-templates
liulinC Dec 21, 2023
3073e1e
Rename 'override_uefi_certs' with 'allow_custom_uefi_certs'
benjamreis Nov 17, 2023
568382b
Introduce new methods for custom uefi certs
benjamreis Nov 17, 2023
2587c90
Do not break symlink when no custom certificates are set
benjamreis Nov 21, 2023
5196f53
Do not fail when fullpath is given to extract certificates
benjamreis Nov 21, 2023
dfa9b94
Check for used UEFI certificates when updating vm platform
benjamreis Nov 22, 2023
70e07d0
Always set pool.uefi_certificates
benjamreis Dec 11, 2023
5724962
Merge pull request #5247 from xcp-ng/custom-uefi-cert-api-change
psafont Dec 21, 2023
e8085e3
CP-46917 wait for DEMU "running" before unpausing
Dec 7, 2023
460c0f3
CP-46917 improve error handling
Dec 7, 2023
01dfc98
CP-47046 optimise rule emitter for xenopsd PVS Proxy setup
Dec 20, 2023
c5060a1
CP-44533 Add running vCPU and running domain of host into rrdd
LunfanZhang Dec 19, 2023
7b62e73
CA-384537 simplify reporting internal error (1/2)
Jan 2, 2024
c8338d4
CA-384537 simplify reporting internal error (2/2)
Jan 2, 2024
7f0c155
CA-384537 support NBD for CD device
Jan 2, 2024
53d2e8c
Merge pull request #5307 from LunfanZhang/private/luzhan_github/CP-44533
minglumlu Jan 4, 2024
056bc94
Support PAX/POSIX tar on import
edwintorok Jan 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ b020cf35a1f2c274f95a4118d4596043cba6113f
637d2b703e867bfdb018f228902f18ba26ff20bf
ff39018fd6d91985f9c893a56928771dfe9fa48d
cbb9edb17dfd122c591beb14d1275acc39492335
d6ab15362548b8fe270bd14d5153b8d94e1b15c0

# ocp-indent
d018d26d6acd4707a23288b327b49e44f732725e
Expand Down
14 changes: 5 additions & 9 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3

# The checkout action performs a shallow, this triggers dune to set the
# version to <hash>-dirty. Work around this dune behaviour and tag the
# commit so a proper version is always picked up
- name: Tag current commit
run: |
git config user.name "Dune workaround"
git config user.email "<>"
git tag -am "workaround for dune" "$XAPI_VERSION"

- name: Pull configuration from xs-opam
run: |
curl --fail --silent https://raw.githubusercontent.com/xapi-project/xs-opam/master/tools/xs-opam-ci.env | cut -f2 -d " " > .env
Expand Down Expand Up @@ -95,6 +86,11 @@ jobs:
wget -O /opt/xensource/sm/XE_SR_ERRORCODES.xml https://raw.githubusercontent.com/xapi-project/sm/master/drivers/XE_SR_ERRORCODES.xml
opam exec -- make sdk

- name: Make install smoketest
run: |
opam exec -- make install DESTDIR=$(mktemp -d)
opam exec -- make install DESTDIR=$(mktemp -d) BUILD_PY2=NO

- name: Uninstall unversioned packages and remove pins
# This should purge them from the cache, unversioned package have
# 'master' as its version
Expand Down
22 changes: 6 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ on:
- 'v*'

jobs:
build:
build-python:
runs-on: ubuntu-latest
env:
XAPI_VERSION: ${{ github.ref_name }}

steps:
- name: Checkout code
Expand All @@ -27,7 +25,7 @@ jobs:

- name: Generate python package for XenAPI
run: |
./configure --xapi-version=${{ github.ref_name }}
./configure --xapi_version=${{ github.ref_name }}
make python

- name: Store python distribution artifacts
Expand All @@ -39,28 +37,20 @@ jobs:

release:
runs-on: ubuntu-latest
needs: build
needs: build-python
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Retrieve python distribution artifacts
uses: actions/download-artifact@v3
with:
name: XenAPI
path: dist/

- name: Draft Release ${{ github.ref_name }}
run: gh release create ${{ github.ref_name }} --draft --generate-notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload artifacts
run: gh release upload ${{ github.ref_name }} dist/*
- name: Create release ${{ github.ref_name }}
run: gh release create ${{ github.ref_name }} --repo ${{ github.repository }} --generate-notes dist/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

publish:
publish-pypi:
runs-on: ubuntu-latest
needs: release
environment: pypi
Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@ install: build doc sdk doc-json
install -D ./ocaml/xenopsd/scripts/tap $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/tap
install -D ./ocaml/xenopsd/scripts/qemu-vif-script $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/qemu-vif-script
install -D ./ocaml/xenopsd/scripts/setup-vif-rules $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/setup-vif-rules
install -D ./ocaml/xenopsd/scripts/setup-pvs-proxy-rules $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/setup-pvs-proxy-rules
install -D ./_build/install/default/bin/pvs-proxy-ovs-setup $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/pvs-proxy-ovs-setup
(cd $(DESTDIR)/$(XENOPSD_LIBEXECDIR) && ln -s pvs-proxy-ovs-setup setup-pvs-proxy-rules)
install -D ./ocaml/xenopsd/scripts/common.py $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/common.py
install -D ./ocaml/xenopsd/scripts/igmp_query_injector.py $(DESTDIR)/$(XENOPSD_LIBEXECDIR)/igmp_query_injector.py
install -D ./ocaml/xenopsd/scripts/qemu-wrapper $(DESTDIR)/$(QEMU_WRAPPER_DIR)/qemu-wrapper
Expand Down
17 changes: 17 additions & 0 deletions doc/content/squeezed/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
+++
title = "Squeezed"
weight = 50
+++

Squeezed is the XAPI Toolstack's host memory manager (aka balloon driver).
Squeezed uses ballooning to move memory between running VMs, to avoid wasting
host memory.

Principles
----------

1. Avoid wasting host memory: unused memory should be put to use by returning
it to VMs.
2. Memory should be shared in proportion to the configured policy.
3. Operate entirely at the level of domains (not VMs), and be independent of
Xen toolstack.
42 changes: 42 additions & 0 deletions doc/content/squeezed/architecture/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
+++
title = "Architecture"
+++

Squeezed is responsible for managing the memory on a single host. Squeezed
"balances" memory between VMs according to a policy written to Xenstore.

The following diagram shows the internals of Squeezed:

![Internals of squeezed](squeezed.png)

At the center of squeezed is an abstract model of a Xen host. The model
includes:

- The amount of already-used host memory (used by fixed overheads such as Xen
and the crash kernel).
- Per-domain memory policy specifically `dynamic-min` and `dynamic-max` which
together describe a range, within which the domain's actual used memory
should remain.
- Per-domain calibration data which allows us to compute the necessary balloon
target value to achive a particular memory usage value.

Squeezed is a single-threaded program which receives commands from xenopsd over
a Unix domain socket. When Xenopsd wishes to start a new VM, squeezed will be
asked to create a "reservation". Note this is different to the Xen notion of a
reservation. A squeezed reservation consists of an amount of memory squeezed
will guarantee to keep free labelled with an id. When Xenopsd later creates the
domain to notionally use the reservation, the reservation is "transferred" to
the domain before the domain is built.

Squeezed will also wake up every 30s and attempt to rebalance the memory on a
host. This is useful to correct imbalances caused by balloon drivers
temporarily failing to reach their targets. Note that ballooning is
fundamentally a co-operative process, so squeezed must handle cases where the
domains refuse to obey commands.

The "output" of squeezed is a list of "actions" which include:

- Set domain x's `memory/target` to a new value.
- Set the `maxmem` of a domain to a new value (as a hard limit beyond which the
domain cannot allocate).

Binary file added doc/content/squeezed/architecture/squeezed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading