Skip to content

Releases: techomancer/nvme2k

1.2.0.0

15 Dec 03:26

Choose a tag to compare

NVMe passthrough works now and SIV can read NVMe SMART data
Synced version numbers with Ray's releases, releases from this repo will be numbered 1.x.x.x, from Ray's 2.x.x.x and support newer and 64 bit operating systems.

1.0.0.3

25 Nov 05:27

Choose a tag to compare

added throttling of scsiport with pending request when running out of queue space and prps so it doesnt back off super aggressively when we report busy. that fixes SIV benchmark.
added reporting of byteswapped NVME2K\0\0 in WWN in IDENTIFY so utilities can detect it and use correct units for 241/242 attribute.
normalize ATA SMART data for attribute 241 and 242 to report in 32MiB units as suggested by Ray.
increased PRP pool to 32 pages with backoff to 16 if allocating uncached extension fails. should help with more big requests in flight.
report max transfer size based on MDTS, should help scsiport chunking data for us properly.
big thanks to Ray Hinchliffe!

1.0.0.2

14 Nov 05:57

Choose a tag to compare

added really silly implementation of trim
some smart stuff "working"
txtsetup floppy for win2k/i386
nt4 is bootable too
fixed data corruption for very large transfers

1.0.0.1

11 Oct 02:31

Choose a tag to compare

mostly works, SMART functionality not tested yet, if someone can recommend a tool that does SMART over SCSI on win2k it would be nice.

mostly tested on qemu (wtf 256 namespaces?), virtualbox and win2k rc2 on dec personal workstation 600a and startech pci-pcie adapter and 256GB liteon nvme ssd from ewaste.

hits some 10K IOPS with two cores on virtualbox, 5K with single and spews a lot of int3 in win2k checked build with larger queue depths in iometer, so probably it breaks win2k storage stack somehow or microsoft is being microsoft.
on alpha it pretty much saturates the bus

send bugs and merge requests and have fun.

PS no i didnt forget atomics for alpha. they are not needed and dont help with int 3s. i experimented a lot with them.
and from my testing HwInterrupt and HwStartIo do not overlap/run concurrently. scsiport guarantees that and doesnt provide any sync methods.
and Claude spit out flaming garbage that doesnt compile in asaxp for alpha atomics so it is pointless.