> -----Original Message----- > From: Dan Williams <dan.j.williams@xxxxxxxxx> > On Fri, Aug 13, 2021 at 10:14 AM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > > > > [+cc Amey (working on PCI resets), linux-pci] > > > > On Fri, Aug 13, 2021 at 05:01:32PM +0000, Vikram Sethi wrote: > > > Hi Dan, > > > > > > > -----Original Message----- > > > > From: Dan Williams <dan.j.williams@xxxxxxxxx> > > > > > > > > On Wed, Aug 11, 2021 at 9:42 AM Chris Browy > > > > <cbrowy@xxxxxxxxxxxxxxxx> > > > > wrote: > > > > > > > > /sys/bus/pci/devices/$device/reset is a method to trigger PCI > > > > device reset, but I do not expect that will ever gain CXL specific > > > > knowledge. > > > > > > > CXL reset may need some thought, specially for devices that don't > > > expose FLR but do expose CXL reset (while former does not affect > > > CXL.cache/mem, the latter wipes out CXL.cache/mem state in the > > > device and there is discoverability as to whether or not memory > > > contents can be cleared as part of CXL reset). We may need a way of > > > triggering CXL reset from userspace, and if the existing > > > /sys/bus/pci/devices/$device/reset won't have knowledge of CXL > > > reset, there still should be a prioritized order in the kernel in > > > which CXL reset is attempted before more drastic resets like SBR. > > > IIRC CXL reset can also impact all functions that use CXL.cache/mem, > > > but not legacy PCIe functions on the device which do not use > > > CXL.cache/mem (there is discoverability as to which functions are > > > not impacted by CXL reset). > > What's the Linux use case for supporting CXL reset for a CXL memory > expander? PCI reset is useful for device assignment, and CXL reset might be > useful for similarly assigning an accelerator. CXL.mem on the other hand can > be directly assigned at a per-page level without also needing to assign the > device. How could a VM reliably program HDM decoders when it cannot > perceive the host physical address space? I understand the utility of CXL > reset for device bring-up and test software that knows what it is doing can > write config space directly, but that software would assume all responsibility. Agree that CXL reset will be needed for type1/2 CXL devices (accelerators) which will need a sysfs interface for userspace to use CXL reset.