Messages in this thread | | | Date | Wed, 17 Oct 2012 11:40:12 +0800 | Subject | Re: [RFC PATCH v1 1/3] mm: teach mm by current context info to not do I/O during memory allocation | From | Ming Lei <> |
| |
On Wed, Oct 17, 2012 at 4:19 AM, Andrew Morton <akpm@linux-foundation.org> wrote: > > The patch seems reasonable to me. I'd like to see some examples of > these resume-time callsite which are performing the GFP_KERNEL > allocations, please. You have found some kernel bugs, so those should > be fully described.
OK, there are two examples of GFP_KERNEL allocation in subsystem runtime resume path:
1), almost all devices in some pci platform acpi_os_allocate <-acpi_ut_allocate <-ACPI_ALLOCATE_ZEROED <-acpi_evaluate_object <-__acpi_bus_set_power <-acpi_bus_set_power <-acpi_pci_set_power_state <-platform_pci_set_power_state <-pci_platform_power_transition <-__pci_complete_power_transition <-pci_set_power_state <-pci_restore_standard_config <-pci_pm_runtime_resume
2), all devices in usb subsystem usb_get_status <-finish_port_resume <-usb_port_resume <-generic_resume <-usb_resume_device <-usb_resume_both <-usb_runtime_resume
I also have many examples in which GFP_KERNEL allocation is involved in runtime resume path of individual drivers.
The above two examples just show how difficult to solve the problem by traditional way, :-)
Also as pointed by Oliver, network driver need memory allocation with no io in iSCSI runtime resume situation too.
Thanks, -- Ming Lei
| |