Hi Petar,

thanks for the report. This will be fixed in the next maintenance release.

Regards,
Alexander Eichner

On 24.01.2014 20:05, Petar Bogdanovic <[email protected]> wrote:

> Hi,
> 
> [1]this commit removes the "sysdev" symlink from the cpu device-subtree
> of sysfs.  The files that were found in "sysdev" are now located in
> "physical_node" which is also a symlink.
> 
> VBoxServiceCpuHotPlug.cpp relies on the former symlink:
> 
>       279 /* Get the sysdev */
>       280 uint32_t idCore    = RTLinuxSysFsReadIntFile(10, 
> "%s/sysdev/topology/core_id",
>       281                                              pszPathCurr);
>       282 uint32_t idPackage = RTLinuxSysFsReadIntFile(10, 
> "%s/sysdev/topology/physical_package_id",
>       283                                              pszPathCurr);
> 
> and since VBoxService now can't match a cpu, it dies whenever there is an
> attempt to "unplugcpu" by the host:
> 
>       # VBoxService -fvvv --disable-automount
>       VBoxService 4.3.6 r91406 (verbosity: 3) linux.x86 (Dec 18 2013 
> 16:44:16) release log
>       (...)
>       00:00:00.001981 main     OS Release: 3.12.6-1-ARCH
>       (...)
>       00:00:03.617740 cpuhotplug CpuHotPlug: Event happened idCpuCore=1 
> idCpuPackage=0 enmEventType=3
>       00:00:03.618315 cpuhotplug Final path after probing 
> /sys/devices/LNXSYSTM:00/device:00/ACPI0004:00/LNXCPU:00 rc=VINF_SUCCESS
>       00:00:03.618347 cpuhotplug Going deeper (iLvlCurr=1)
>       00:00:03.618358 cpuhotplug New path /sys/devices/LNXSYSTM:00/device:*
>       00:00:03.618391 cpuhotplug Going deeper (iLvlCurr=2)
>       00:00:03.618402 cpuhotplug New path 
> /sys/devices/LNXSYSTM:00/device:00/ACPI0004:*
>       00:00:03.618472 cpuhotplug Going deeper (iLvlCurr=3)
>       00:00:03.618483 cpuhotplug New path 
> /sys/devices/LNXSYSTM:00/device:00/ACPI0004:00/LNXCPU:*
>       00:00:03.618609 cpuhotplug CPU doesn't match, next directory
>       00:00:03.618624 cpuhotplug Directory not found, going back (iLvlCurr=2)
>       00:00:03.618642 cpuhotplug Going deeper (iLvlCurr=3)
>       00:00:03.618652 cpuhotplug New path 
> /sys/devices/LNXSYSTM:00/device:00/ACPI0004:01/LNXCPU:*
>       00:00:03.618693 cpuhotplug CPU doesn't match, next directory
>       00:00:03.618707 cpuhotplug Directory not found, going back (iLvlCurr=2)
>       00:00:03.618719 cpuhotplug Directory not found, going back (iLvlCurr=1)
>       00:00:03.618731 cpuhotplug Going deeper (iLvlCurr=2)
>       00:00:03.618741 cpuhotplug New path 
> /sys/devices/LNXSYSTM:00/device:02/ACPI0004:*
>       00:00:03.618772 cpuhotplug Directory not found, going back (iLvlCurr=1)
>       00:00:03.618788 cpuhotplug Directory not found, going back (iLvlCurr=0)
>       00:00:03.618801 cpuhotplug Directory not found, going back 
> (iLvlCurr=4294967295)
>       00:00:03.618811 cpuhotplug Directory not found, going back 
> (iLvlCurr=4294967294)
>       00:00:03.618822 cpuhotplug Directory not found, going back 
> (iLvlCurr=4294967293)
>       *** glibc detected *** VBoxService: free(): invalid pointer: 0x08056640 
> ***
>       ======= Backtrace: =========
>       /lib/libc.so.6(+0x6e822)[0xb7553822]
>       /lib/libc.so.6(+0x6f4c2)[0xb75544c2]
>       /lib/libc.so.6(cfree+0x6d)[0xb75575ad]
>       VBoxService[0x8058e0a]
>       VBoxService[0x8059040]
>       VBoxService[0x80591bf]
>       VBoxService[0x804becc]
>       VBoxService[0x8071a72]
>       VBoxService[0x805adc0]
>       /lib/libpthread.so.0(+0x6cf7)[0xb769bcf7]
>       /lib/libc.so.6(clone+0x5e)[0xb75b786e]
>       (...)
> 
> The issuer of unplugcpu gets this in return:
> 
>       $ VBoxManage controlvm pintail unplugcpu 1
>       VBoxManage: error: Hot-Remove was aborted because the CPU may still be 
> used by the guest
>       VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), 
> component Console, interface IConsole, callee nsISupports
>       VBoxManage: error: Context: "HotUnplugCPU(n)" at line 135 of file 
> VBoxManageControlVM.cpp
> 
> 
> Not sure how to fix this properly since the change needs to be backward
> compatible and I'm not very familiar with the source yet.
> 
>               Petar Bogdanovic
> 
> [1] 
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/acpi/processor_driver.c?id=ac212b6980d8d5eda705864fc5a8ecddc6d6eacc
> 
> _______________________________________________
> vbox-dev mailing list
> [email protected]
> https://www.virtualbox.org/mailman/listinfo/vbox-dev


_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to