On Fri, Jun 26, 2020 at 2:07 AM Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > > The runtime firmware activation capability of Intel NVDIMM devices > requires memory transactions to be disabled for 100s of microseconds. > This timeout is large enough to cause in-flight DMA to fail and other > application detectable timeouts. Arrange for firmware activation to be > executed while the system is "quiesced" all suspend operations have > completed successfully. > > Note that the placement of syscore_quiesced() before > suspend_disable_secondary_cpus() and the "TEST_PLATFORM" early exit in > suspend_enter(): > > if (suspend_test(TEST_PLATFORM)) > goto Platform_wake; > > ...is a deliberate tradeoff. suspend_disable_secondary_cpus() causes > violence to drivers with many interrupts allocated (server-class network > adapters for example). So, allow for triggering firmware-activation > without requiring all irq vectors to be routed (oversubscribed) to a > single CPU. So while the other patches in the series look good to me, this is kind of questionable for reasons described in my reply to the intro message. Cheers!