Rob Bradford
d516374c39
block: Replace use of crc32c crate with crc-any
...
According to crates.io the crc-any crate is actively maintained which
avoids issues with the crc32c crate and the nightly compiler.
Fixes : #6168
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2024-02-06 14:29:10 -08:00
Bo Chen
3ce0fef7fd
build: Bump vmm-sys-util crate and its consumers
...
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16 .0`**, `linux-loader@0.11 .0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10 .0`,
`vhost-user-backend@0.13 .1`, `virtio-queue@0.11 .0`, `vm-memory@0.14 .0`,
`vmm-sys-util@0.12 .1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes : #6072
Signed-off-by: Bo Chen <chen.bo@intel.com >
2024-01-25 10:14:54 +00:00
dependabot[bot]
48fc91467b
build: Bump thiserror from 1.0.40 to 1.0.52
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.40 to 1.0.52.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.40...1.0.52 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-30 10:28:17 +00:00
dependabot[bot]
77f4e35bc8
build: Bump io-uring from 0.6.1 to 0.6.2
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.6.1 to 0.6.2.
- [Commits](https://github.com/tokio-rs/io-uring/commits )
---
updated-dependencies:
- dependency-name: io-uring
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-07 17:47:36 -08:00
dependabot[bot]
81b30bf390
build: Bump log from 0.4.17 to 0.4.20
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.17 to 0.4.20.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.20 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-11-24 08:47:05 +00:00
Bo Chen
d4892f41b3
misc: Stop using deprecated functions from vm-memory crate
...
See: https://github.com/rust-vmm/vm-memory/pull/247
Signed-off-by: Bo Chen <chen.bo@intel.com >
2023-11-14 09:17:42 +00:00
Bo Chen
4d7a4c598a
build: Upgrade vm-memory crates and its consumers
...
Signed-off-by: Bo Chen <chen.bo@intel.com >
2023-11-14 09:17:42 +00:00
Thomas Barrett
d9ed281719
block: fix aio backend behavior when writeback enabled
...
Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com >
2023-11-08 19:24:40 -08:00
Thomas Barrett
4980a5f778
block: add copyright text to raw_async_aio.rs
...
Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com >
2023-10-30 12:34:23 -07:00
Thomas Barrett
bae13c5c56
block: add aio disk backend
...
Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com >
2023-10-25 10:19:23 -07:00
dependabot[bot]
0235bc4cee
build: Bump smallvec from 1.10.0 to 1.11.0
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.10.0...v1.11.0 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-18 16:27:52 +00:00
dependabot[bot]
226816bb04
build: Bump crc32c from 0.6.3 to 0.6.4
...
Bumps [crc32c](https://github.com/zowens/crc32c ) from 0.6.3 to 0.6.4.
- [Commits](https://github.com/zowens/crc32c/compare/v0.6.3...v0.6.4 )
---
updated-dependencies:
- dependency-name: crc32c
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-12 00:15:22 +00:00
Thomas Barrett
c4e8e653ac
block: Add support for user specified ID_SERIAL
...
Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com >
2023-09-11 12:50:41 +01:00
Philipp Schuster
7bf0cc1ed5
misc: Fix various spelling errors using typos
...
This fixes all typos found by the typos utility with respect to the config file.
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
2023-09-09 10:46:21 +01:00
Rob Bradford
07d1208dd5
build: Bump vm-memory and its consumers
...
Update to the latest vm-memory and all the crates that also depend upon
it.
Fix some deprecation warnings.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-09-07 11:34:51 -07:00
Rob Bradford
01097aa130
block: Ensure probing reads are block size aligned
...
This is necessary for O_DIRECT based use of raw block devices which may
require access at a larger block size than that of a sector (512 bytes.)
Fixes : #5722
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-09-05 13:09:49 -07:00
Rob Bradford
9ca2c336f2
block: Move DiskTopology to common code
...
It doens't make sense to limit this to the async_io module and import
across modules so place in default create module.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-09-05 13:09:49 -07:00
dependabot[bot]
8db85eca1f
build: Bump io-uring from 0.6.0 to 0.6.1
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.6.0 to 0.6.1.
- [Commits](https://github.com/tokio-rs/io-uring/commits )
---
updated-dependencies:
- dependency-name: io-uring
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-31 23:59:42 +00:00
Rob Bradford
11c58870c4
block: async_io: Remove unnecessary mut from reference
...
warning: this argument is a mutable reference, but not used mutably
--> block/src/async_io.rs:68:28
|
68 | fn query_block_size(f: &mut File, block_size_type: BlockSize) -> std::io::Result<u64> {
| ^^^^^^^^^ help: consider changing to: `&File`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-08-22 12:01:54 +01:00
Rob Bradford
b74907fa1b
block: vhdx: Fix block size check
...
warning: boolean expression will never evaluate to 'true'
--> block/src/vhdx/vhdx_metadata.rs:136:20
|
136 | if disk_spec.block_size < BLOCK_SIZE_MIN && disk_spec.block_size > BLOCK_SIZE_MAX {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: since `BLOCK_SIZE_MIN` < `BLOCK_SIZE_MAX`, the expression evaluates to false for any value of `disk_spec.block_size`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#impossible_comparisons
= note: `#[warn(clippy::impossible_comparisons)]` on by default
&& was used when || should have been used
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-08-22 12:01:54 +01:00
dependabot[bot]
2571e59438
build: Bump libc from 0.2.144 to 0.2.147
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.144 to 0.2.147.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.144...0.2.147 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-15 00:53:20 +00:00
dependabot[bot]
ecf3db5092
build: Bump remain from 0.2.10 to 0.2.11
...
Bumps [remain](https://github.com/dtolnay/remain ) from 0.2.10 to 0.2.11.
- [Release notes](https://github.com/dtolnay/remain/releases )
- [Commits](https://github.com/dtolnay/remain/compare/0.2.10...0.2.11 )
---
updated-dependencies:
- dependency-name: remain
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-02 23:50:57 +00:00
dependabot[bot]
fe97785a9f
build: Bump io-uring from 0.5.13 to 0.6.0
...
Includes fixes for changed function prototypes.
bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.5.13 to 0.6.0.
- [Commits](https://github.com/tokio-rs/io-uring/commits )
---
updated-dependencies:
- dependency-name: io-uring
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2023-08-01 14:27:54 +01:00
Yu Li
5ffc6d6107
block: qcow: initialize qcow clusters off the backing file when present
...
This preserves any data that the backing file had on a cluster when
doing a write to a subset of that cluster. These writes cause a
performance penalty on creating new clusters if a backing file is
present.
This commit is based on crosvm implementation:
https://chromium.googlesource.com/crosvm/crosvm/+/5ad3bc345904b252efd6dd2ef4853f5ee06ae3c5
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00
Yu Li
e98ea329bf
block: qcow: read from the backing file if present on read miss
...
Reads to qcow files with backing files will fall through to the backing
file if there is no allocated cluster. As of this change, a write will
still trash the cluster and hide any data already present.
This commit is based on crosvm implementation:
https://chromium.googlesource.com/crosvm/crosvm/+/d8144a56e26ca09e2c7ff97ed63c57e7e7965674
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00
Yu Li
081a6ebb51
block: qcow: support opening backing files
...
This commit allows opening qcow with a backing file, which supports any
type implementing `BlockBackend`.
This commit is based on crosvm implementation:
https://chromium.googlesource.com/crosvm/crosvm/+/9ca6039b030a5c83062cfec9a5ff52f42814fa13
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00
Yu Li
ffe78c98fd
qcow: bugfix: do not write v3 items to qcow header
...
Fixes: 3f02ccaa8
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00
Yu Li
741d640330
block: introduce trait BlockBackend for block types
...
This commit introduces the trait `BlockBackend` with generic ops
including read, write and seek, which can be used for common I/O
interfaces for the block types without using `DiskFile` and `AsyncIo`.
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00
Yu Li
447cad3861
block: merge qcow, vhdx and block_util into block crate
...
This commit merges crates `qcow`, `vhdx` and `block_util` into the
crate `block`, which can allow `qcow` to use functions from `block_util`
without introducing a circular crate dependency.
This commit is based on crosvm implementation:
https://chromium.googlesource.com/crosvm/crosvm/+/f2eecc4152eca8d395566cffa2c102ec090a152d
Signed-off-by: Yu Li <liyu.yukiteru@bytedance.com >
2023-07-19 13:52:43 +01:00