Remove residual blank line at start of MakefileThis is a residual of the $FreeBSD$ removal.MFC After: 3 days (though I'll just run the command on the branches)Sponsored by: Netflix
sys: Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
modules: Remove duplicate opt_global.h targetThe default one does the right thing these days.Sponsored by: Netflix
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top ofvmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly hand
vmd(4): Major driver refactoring - Re-implement pcib interface to use standard pci bus driver on top ofvmd(4) instead of custom one. - Re-implement memory/bus resource allocation to properly handle evencomplicated configurations. - Re-implement interrupt handling to evenly distribute children's MSI/MSI-X interrupts between available vmd(4) MSI-X vectors and setup themto be handled by standard OS mechanisms with minimal overhead, exceptsharing when unavoidable.Successfully tested on Dell XPS 13 laptop with Core i7-1185G7 CPU (VMDdevice ID 0x9a0b) and single NVMe SSD, dual-booting with Windows 10.Successfully tested on Supermicro X11DPI-NT motherboard with Xeon(R)Gold 6242R CPUs (VMD device ID 0x201d), simultaneously handling NVMeSSD on one PCIe port and PLX bridge with 3 NVMe and 1 AHCI SSDs onanother. Handles SSD hot-plug (except Optane 905p for some reason,which are not detected until manual bus rescan) and enabled IOMMU(directly connected SSDs work, but ones connected to the PLX failwithout errors from IOMMU).MFC after: 2 weeksSponsored by: iXsystems, Inc.Differential revision: https://reviews.freebsd.org/D31762
show more ...
This driver attaches to the Intel VMD drive and connects a new PCI domainstarting at the max. domain, and then work down. Then existing FreeBSDdrivers will attach. Interrupt routing from the VMD
This driver attaches to the Intel VMD drive and connects a new PCI domainstarting at the max. domain, and then work down. Then existing FreeBSDdrivers will attach. Interrupt routing from the VMD MSI-X to the NVMEdrive is not well known, so any interrupt is sent to all children thatregister.VROC used Intel meta data so graid(8) works with it. However, graid(8)supports RAID 0,1,10 for read and write. I have some early code tosupport writes with RAID 5. Note that RAID 5 can have life issueswith SSDs since it can cause write amplification from updating the paritydata.Hot plug support needs a change to skip the following check to work: if (pcib_request_feature(dev, PCI_FEATURE_HP) != 0) {in sys/dev/pci/pci_pci.c.Looked at by: imp, rpokala, bcrDifferential Revision: https://reviews.freebsd.org/D21383