Page MenuHomeFreeBSD

nvme: Count number of alginment splits
ClosedPublic

Authored by imp on May 22 2024, 11:08 PM.
Tags
None
Referenced Files
F102655537: D45311.diff
Fri, Nov 15, 10:21 AM
F102648643: D45311.diff
Fri, Nov 15, 7:56 AM
Unknown Object (File)
Tue, Nov 5, 12:18 PM
Unknown Object (File)
Tue, Oct 29, 3:17 AM
Unknown Object (File)
Tue, Oct 29, 3:17 AM
Unknown Object (File)
Tue, Oct 29, 3:16 AM
Unknown Object (File)
Tue, Oct 29, 3:15 AM
Unknown Object (File)
Tue, Oct 29, 3:15 AM
Subscribers

Details

Summary

When possible, we split up I/Os to NVMe drives that advertise a
preferred alignment. Add a counter for this.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 57884
Build 54772: arc lint + arc unit

Event Timeline

gallatin added inline comments.
sys/dev/nvme/nvme_ns.c
431

You should be using the counter api, not atomics, for something like this.

sys/dev/nvme/nvme_private.h
323

Or if you really prefer an atomic, at least put it on a cacheline by itself.

sys/dev/nvme/nvme_ns.c
431

Yea. This counter should be totally cold... but if it's not, we don't want it to mess thing up...

Move to counters for this.

sys/dev/nvme/nvme_sysctl.c
426

The first couple of times I read the description, it sounded like this variable tracked how many splits were in an I/O. Would "Number of I/Os split to get better alignment" convey the right meaning of this sysctl or am I still confused?

Regardless of how this gets worded, maybe drop "namespace" as the counter is per controller.

This revision is now accepted and ready to land.May 23 2024, 1:49 PM
sys/dev/nvme/nvme_ctrlr.c
1445

I have feeling there should be counter_u64_free() somewhere.

Update per review comments: description and cleanup.

This revision now requires review to proceed.May 23 2024, 8:28 PM
This revision is now accepted and ready to land.May 23 2024, 9:36 PM
This revision was automatically updated to reflect the committed changes.