Skip to content

Commit

Permalink
NVMe driver: use an extra # for non-title headers
Browse files Browse the repository at this point in the history
Signed-off-by: Miguel Ojeda <[email protected]>
  • Loading branch information
ojeda committed Mar 13, 2024
1 parent 0efb748 commit 1f43f39
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions src/NVMe-driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,101 +18,101 @@ authored by Wedson Almeida Filho and is now maintained by Andreas Hindborg

The driver is not currently suitable for general use.

# Resources
## Resources
- LPC 2022
[slides](https://lpc.events/event/16/contributions/1180/attachments/1017/1961/deck.pdf)
and [video](https://lpc.events/event/16/contributions/1180/attachments/1017/2249/go)

# 6.7 Rebase Performance ([`nvme-6.7`](https://github.com/metaspace/linux/tree/nvme-6.7))
## 6.7 Rebase Performance ([`nvme-6.7`](https://github.com/metaspace/linux/tree/nvme-6.7))

## Setup
### Setup

- 12th Gen Intel(R) Core(TM) i5-12600
- 32 GB DRAM
- 1x INTEL MEMPEK1W016GA (PCIe 3.0 x2)
- Debian Bullseye userspace
- LTO results are enabled by a build system patch (a hack) that was not yet published.

## Results
### Results

- 30 samples
- Difference of means modeled with t-distribution
- P99 confidence intervals

![](rnvme/nvme-all-6.7.svg)

### Difference Relative
#### Difference Relative

Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`'

![](rnvme/nvme-diff-relative-6.7.svg)

# Performance November 2023 ([`nvme-6.6`](https://github.com/metaspace/linux/tree/nvme-6.6))
## Performance November 2023 ([`nvme-6.6`](https://github.com/metaspace/linux/tree/nvme-6.6))

## Setup
### Setup

- 12th Gen Intel(R) Core(TM) i5-12600
- 32 GB DRAM
- 1x INTEL MEMPEK1W016GA (PCIe 3.0 x2)
- Debian Bullseye userspace
- LTO results are enabled by a build system patch (a hack) that was not yet published.

## Results
### Results

- 30 samples
- Difference of means modeled with t-distribution
- P99 confidence intervals

![](rnvme/nvme-all-6.6.svg)

### Difference
#### Difference

![](rnvme/nvme-diff-6.6.svg)

### Difference Relative
#### Difference Relative

Plot shows `(mean_iops_r - mean_iops_c) / mean_iops_c`'

![](rnvme/nvme-diff-relative-6.6.svg)

# Performance September 2023
## Performance September 2023

The driver was
[rebased](https://github.com/metaspace/linux/tree/7353a81d566510080f91099b1a2b31895c716c9d)
on top of
[`rust-next`](https://github.com/Rust-for-Linux/linux/commit/37152d4a7c6400a4250134e601eca8be1a2bbc16)
PR for 6.6 in September 2023.

## Setup
### Setup

- 12th Gen Intel(R) Core(TM) i5-12600
- 32 GB DRAM
- 1x INTEL MEMPEK1W016GA (PCIe 3.0 x2)
- Debian Bullseye userspace

## Results
### Results

![iops-512](./nvme-512.svg)
![iops-all](./nvme-all.svg)

# Performance January 2023
## Performance January 2023

Performance evaluation as of January 2023.

## Setup
### Setup

- Dell PowerEdge R6525
- 1 CPU socket populated - EPYC 7313, 16 cores
- 128 GB DRAM
- 3x P5800x 16GT/s x4 7.88 GB/s (PCIe 4)
- Debian bullseye (linux 5.19.0+)

## Results
### Results

![iops](./iops.svg)
![relative](./relative.svg)

## Analysis
### Analysis

For 4 KiB block size, the Rust NVMe driver performs similar to the C driver. For
this configuration the target drive is bandwidth limited.
Expand All @@ -121,7 +121,7 @@ For 512 B block size, the C driver outperforms the Rust driver by up to 6%. In
this configuration the drive is not bandwidth limited, but the benchmark becomes
compute limited. The Rust driver has a higher overhead and thus performs worse.

# Work Items
## Work Items

- Remove all unsafe code from the driver
- Support device removal
Expand All @@ -130,7 +130,7 @@ compute limited. The Rust driver has a higher overhead and thus performs worse.
- Support more kernel configurations by deferring initialization to a task queue
- Improve performance of Rust NVMe driver

# Contact
## Contact

Please contact Andreas Hindborg through
[Zulip](Contact.md#zulip-chat).

0 comments on commit 1f43f39

Please sign in to comment.