äé: [PATCH] acpi: Fix hot cpu remove problem on acpi subsystem
In Xen virtualization environment, When I used xen tools (xm vcpu-set vcpu_number ) to test the vcpu add and remove, I found it is failure on vcpu remove, I found the reason is that nothing to do when cpu remove in acpi_processor_hotplug_notify function, so I add the code of send the OFFLINE message to udev and add the rule of udev. it is ok on vcpu remove.
Signed-off-by: Shen canquan<shencanquan@xxxxxxxxxx>
---
drivers/acpi/processor_driver.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
index a4e0f1b..a1c564f 100644
--- a/drivers/acpi/processor_driver.c
+++ b/drivers/acpi/processor_driver.c
@@ -677,6 +677,8 @@ static void acpi_processor_hotplug_notify(acpi_handle handle,
"Driver data is NULL, dropping EJECT\n");
return;
}
+
+ kobject_uevent(&device->dev.kobj, KOBJ_OFFLINE);
break;
default:
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
The processor driver used to generate ONLINE and OFFLINE messages. I
removed them with c1815e0740. According to the changelog, the driver
core still generates KOBJ_ADD and KOBJ_REMOVE events.
Could you fix the Xen vcpu add/remove problem by looking for
ADD/REMOVE events rather than ONLINE/OFFLINE?
I removed ONLINE/OFFLINE because I think hotplug should be handled in
the ACPI core, not in the drivers. Removing ONLINE/OFFLINE got rid of
one small piece of driver-specific hotplug handling. Obviously,
there's still a lot to do.
If using ADD/REMOVE is not sufficient, what is the justification for
needing both REMOVE and OFFLINE, and how would they be different?
Bjorn