Hello!
We would like to contribute to VirtualBox under MIT license. We want to
suggest our changes for multiple VMs starting speed-up.
The basic idea is to take out getting of host interfaces from write lock
on host object. When many VMs are starting at the same time then
/FindHostNetworkInterfaceByName/ is called for every machine and it
updates network interfaces. So if umount of VMs is large enough then
execution time of this function greatly increases due to lock wait.
There are two /VBoxSVC/ logs in attach: before applying our changes and
after it. In every case we started 80 VMs at the same time. Statistic of
/FindHostNetworkInterfaceByName/ execution time before changes is:
Min: 0.38 s (nspr-31)
Med: 14.13 s (nspr-82)
Max: 37.70 s (nspr-188)
Avg: 15.07 s
Statistic after changes is:
Min: 1.12 s (nspr-85)
Med: 6.56 s (nspr-228)
Max: 17.27 s (nspr-7)
Avg: 5.82 s
Regards,
Alexander
Log created: 2015-02-25T10:58:19.748914000Z
10:58:19.749138 main Executable: /home/user/VirtualBox-4.3.22/out/linux.amd64/release/bin/VBoxSVC
10:58:19.749200 main Arg[0]: /home/user/VirtualBox-4.3.22/out/linux.amd64/release/bin/VBoxSVC
10:58:46.357431 nspr-26 FindHostNetworkInterfaceByName enter
10:58:46.399483 nspr-76 FindHostNetworkInterfaceByName enter
10:58:46.399504 nspr-63 FindHostNetworkInterfaceByName enter
10:58:46.400180 nspr-85 FindHostNetworkInterfaceByName enter
10:58:47.520112 nspr-85 FindHostNetworkInterfaceByName leave
10:58:47.529530 nspr-76 FindHostNetworkInterfaceByName leave
10:58:47.556516 nspr-63 FindHostNetworkInterfaceByName leave
10:58:47.590352 nspr-26 FindHostNetworkInterfaceByName leave
10:58:48.569317 nspr-66 FindHostNetworkInterfaceByName enter
10:58:49.788183 nspr-66 FindHostNetworkInterfaceByName leave
10:58:50.427071 nspr-16 FindHostNetworkInterfaceByName enter
10:58:51.574798 nspr-16 FindHostNetworkInterfaceByName leave
10:58:51.786744 nspr-136 FindHostNetworkInterfaceByName enter
10:58:52.869510 nspr-141 FindHostNetworkInterfaceByName enter
10:58:52.869559 nspr-190 FindHostNetworkInterfaceByName enter
10:58:52.975248 nspr-136 FindHostNetworkInterfaceByName leave
10:58:52.996583 nspr-7 FindHostNetworkInterfaceByName enter
10:58:53.053114 nspr-82 FindHostNetworkInterfaceByName enter
10:58:53.201534 nspr-204 FindHostNetworkInterfaceByName enter
10:58:53.722448 nspr-184 FindHostNetworkInterfaceByName enter
10:58:55.007142 nspr-44 FindHostNetworkInterfaceByName enter
10:58:55.448942 nspr-141 FindHostNetworkInterfaceByName leave
10:58:55.479266 nspr-190 FindHostNetworkInterfaceByName leave
10:58:55.806798 nspr-215 FindHostNetworkInterfaceByName enter
10:58:55.810524 nspr-145 FindHostNetworkInterfaceByName enter
10:58:56.026400 nspr-204 FindHostNetworkInterfaceByName leave
10:58:56.039516 nspr-82 FindHostNetworkInterfaceByName leave
10:58:56.485872 nspr-184 FindHostNetworkInterfaceByName leave
10:58:56.929049 nspr-187 FindHostNetworkInterfaceByName enter
10:58:57.707646 nspr-213 FindHostNetworkInterfaceByName enter
10:58:57.959160 nspr-44 FindHostNetworkInterfaceByName leave
10:58:58.088679 nspr-215 FindHostNetworkInterfaceByName leave
10:58:58.153128 nspr-7 FindHostNetworkInterfaceByName leave
10:58:58.153673 nspr-145 FindHostNetworkInterfaceByName leave
10:58:58.405403 nspr-55 FindHostNetworkInterfaceByName enter
10:58:58.409734 nspr-165 FindHostNetworkInterfaceByName enter
10:58:58.414482 nspr-110 FindHostNetworkInterfaceByName enter
10:58:59.202960 nspr-187 FindHostNetworkInterfaceByName leave
10:58:59.258969 nspr-199 FindHostNetworkInterfaceByName enter
10:58:59.431879 nspr-26 FindHostNetworkInterfaceByName enter
10:58:59.836814 nspr-179 FindHostNetworkInterfaceByName enter
10:59:00.147736 nspr-213 FindHostNetworkInterfaceByName leave
10:59:01.144134 nspr-110 FindHostNetworkInterfaceByName leave
10:59:01.149357 nspr-165 FindHostNetworkInterfaceByName leave
10:59:01.590324 nspr-55 FindHostNetworkInterfaceByName leave
10:59:01.650591 nspr-82 FindHostNetworkInterfaceByName enter
10:59:01.661902 nspr-57 FindHostNetworkInterfaceByName enter
10:59:01.862706 nspr-199 FindHostNetworkInterfaceByName leave
10:59:01.959589 nspr-7 FindHostNetworkInterfaceByName enter
10:59:01.989689 nspr-206 FindHostNetworkInterfaceByName enter
10:59:01.990151 nspr-156 FindHostNetworkInterfaceByName enter
10:59:02.427071 nspr-179 FindHostNetworkInterfaceByName leave
10:59:02.666470 nspr-214 FindHostNetworkInterfaceByName enter
10:59:02.808496 nspr-197 FindHostNetworkInterfaceByName enter
10:59:02.828373 nspr-154 FindHostNetworkInterfaceByName enter
10:59:02.892736 nspr-178 FindHostNetworkInterfaceByName enter
10:59:03.118917 nspr-108 FindHostNetworkInterfaceByName enter
10:59:03.235035 nspr-26 FindHostNetworkInterfaceByName leave
10:59:03.845750 nspr-107 FindHostNetworkInterfaceByName enter
10:59:03.851882 nspr-58 FindHostNetworkInterfaceByName enter
10:59:04.055472 nspr-30 FindHostNetworkInterfaceByName enter
10:59:04.055494 nspr-109 FindHostNetworkInterfaceByName enter
10:59:07.079146 nspr-186 FindHostNetworkInterfaceByName enter
10:59:07.167040 nspr-207 FindHostNetworkInterfaceByName enter
10:59:07.252422 nspr-82 FindHostNetworkInterfaceByName leave
10:59:07.716663 nspr-57 FindHostNetworkInterfaceByName leave
10:59:07.863530 nspr-156 FindHostNetworkInterfaceByName leave
10:59:07.867300 nspr-206 FindHostNetworkInterfaceByName leave
10:59:08.283537 nspr-112 FindHostNetworkInterfaceByName enter
10:59:09.025400 nspr-189 FindHostNetworkInterfaceByName enter
10:59:09.145361 nspr-214 FindHostNetworkInterfaceByName leave
10:59:09.166793 nspr-210 FindHostNetworkInterfaceByName enter
10:59:09.556172 nspr-75 FindHostNetworkInterfaceByName enter
10:59:09.556204 nspr-66 FindHostNetworkInterfaceByName enter
10:59:09.588457 nspr-139 FindHostNetworkInterfaceByName enter
10:59:09.617979 nspr-198 FindHostNetworkInterfaceByName enter
10:59:09.753596 nspr-197 FindHostNetworkInterfaceByName leave
10:59:09.769021 nspr-154 FindHostNetworkInterfaceByName leave
10:59:09.868111 nspr-178 FindHostNetworkInterfaceByName leave
10:59:10.263498 nspr-16 FindHostNetworkInterfaceByName enter
10:59:10.291751 nspr-108 FindHostNetworkInterfaceByName leave
10:59:11.188607 nspr-228 FindHostNetworkInterfaceByName enter
10:59:11.382390 nspr-107 FindHostNetworkInterfaceByName leave
10:59:11.537981 nspr-109 FindHostNetworkInterfaceByName leave
10:59:11.741578 nspr-30 FindHostNetworkInterfaceByName leave
10:59:12.002653 nspr-58 FindHostNetworkInterfaceByName leave
10:59:12.055048 nspr-40 FindHostNetworkInterfaceByName enter
10:59:13.712475 nspr-119 FindHostNetworkInterfaceByName enter
10:59:14.381023 nspr-186 FindHostNetworkInterfaceByName leave
10:59:14.406203 nspr-207 FindHostNetworkInterfaceByName leave
10:59:15.218885 nspr-188 FindHostNetworkInterfaceByName enter
10:59:15.407141 nspr-112 FindHostNetworkInterfaceByName leave
10:59:16.082999 nspr-221 FindHostNetworkInterfaceByName enter
10:59:16.083046 nspr-206 FindHostNetworkInterfaceByName enter
10:59:16.129884 nspr-189 FindHostNetworkInterfaceByName leave
10:59:16.362992 nspr-214 FindHostNetworkInterfaceByName enter
10:59:16.363708 nspr-210 FindHostNetworkInterfaceByName leave
10:59:16.471471 nspr-198 FindHostNetworkInterfaceByName leave
10:59:16.521046 nspr-139 FindHostNetworkInterfaceByName leave
10:59:16.762235 nspr-160 FindHostNetworkInterfaceByName enter
10:59:16.791617 nspr-75 FindHostNetworkInterfaceByName leave
10:59:17.036514 nspr-66 FindHostNetworkInterfaceByName leave
10:59:17.747874 nspr-228 FindHostNetworkInterfaceByName leave
10:59:19.156403 nspr-122 FindHostNetworkInterfaceByName enter
10:59:19.225372 nspr-7 FindHostNetworkInterfaceByName leave
10:59:19.447408 nspr-40 FindHostNetworkInterfaceByName leave
10:59:20.009302 nspr-16 FindHostNetworkInterfaceByName leave
10:59:20.063846 nspr-119 FindHostNetworkInterfaceByName leave
10:59:20.072180 nspr-188 FindHostNetworkInterfaceByName leave
10:59:20.154084 nspr-206 FindHostNetworkInterfaceByName leave
10:59:20.209192 nspr-221 FindHostNetworkInterfaceByName leave
10:59:20.305474 nspr-214 FindHostNetworkInterfaceByName leave
10:59:20.403415 nspr-160 FindHostNetworkInterfaceByName leave
10:59:20.430812 nspr-35 FindHostNetworkInterfaceByName enter
10:59:20.602716 nspr-7 FindHostNetworkInterfaceByName enter
10:59:20.672068 nspr-171 FindHostNetworkInterfaceByName enter
10:59:20.759619 nspr-183 FindHostNetworkInterfaceByName enter
10:59:20.806155 nspr-225 FindHostNetworkInterfaceByName enter
10:59:20.907838 nspr-190 FindHostNetworkInterfaceByName enter
10:59:21.742258 nspr-8 FindHostNetworkInterfaceByName enter
10:59:21.800670 nspr-3 FindHostNetworkInterfaceByName enter
10:59:21.849048 nspr-30 FindHostNetworkInterfaceByName enter
10:59:22.232117 nspr-122 FindHostNetworkInterfaceByName leave
10:59:22.519835 nspr-238 FindHostNetworkInterfaceByName enter
10:59:22.588356 nspr-108 FindHostNetworkInterfaceByName enter
10:59:22.588426 nspr-139 FindHostNetworkInterfaceByName enter
10:59:22.602818 nspr-168 FindHostNetworkInterfaceByName enter
10:59:22.608130 nspr-202 FindHostNetworkInterfaceByName enter
10:59:22.615486 nspr-227 FindHostNetworkInterfaceByName enter
10:59:22.619938 nspr-212 FindHostNetworkInterfaceByName enter
10:59:22.620044 nspr-205 FindHostNetworkInterfaceByName enter
10:59:22.620459 nspr-167 FindHostNetworkInterfaceByName enter
10:59:24.162773 nspr-80 FindHostNetworkInterfaceByName enter
10:59:24.478533 nspr-125 FindHostNetworkInterfaceByName enter
10:59:25.479596 nspr-16 FindHostNetworkInterfaceByName enter
10:59:25.720193 nspr-35 FindHostNetworkInterfaceByName leave
10:59:27.625733 nspr-171 FindHostNetworkInterfaceByName leave
10:59:27.632332 nspr-183 FindHostNetworkInterfaceByName leave
10:59:27.743456 nspr-225 FindHostNetworkInterfaceByName leave
10:59:27.846787 nspr-190 FindHostNetworkInterfaceByName leave
10:59:29.068607 nspr-160 FindHostNetworkInterfaceByName enter
10:59:31.338424 nspr-30 FindHostNetworkInterfaceByName leave
10:59:31.436068 nspr-108 FindHostNetworkInterfaceByName leave
10:59:31.502316 nspr-168 FindHostNetworkInterfaceByName leave
10:59:31.519633 nspr-167 FindHostNetworkInterfaceByName leave
10:59:31.523622 nspr-227 FindHostNetworkInterfaceByName leave
10:59:31.529232 nspr-238 FindHostNetworkInterfaceByName leave
10:59:31.533658 nspr-139 FindHostNetworkInterfaceByName leave
10:59:31.534540 nspr-212 FindHostNetworkInterfaceByName leave
10:59:31.541495 nspr-202 FindHostNetworkInterfaceByName leave
10:59:31.547701 nspr-205 FindHostNetworkInterfaceByName leave
10:59:32.049387 nspr-80 FindHostNetworkInterfaceByName leave
10:59:32.198916 nspr-125 FindHostNetworkInterfaceByName leave
10:59:32.463435 nspr-3 FindHostNetworkInterfaceByName leave
10:59:32.534060 nspr-16 FindHostNetworkInterfaceByName leave
10:59:32.750832 nspr-7 FindHostNetworkInterfaceByName leave
10:59:32.818946 nspr-8 FindHostNetworkInterfaceByName leave
10:59:32.970078 nspr-160 FindHostNetworkInterfaceByName leave
10:59:34.012222 nspr-138 FindHostNetworkInterfaceByName enter
10:59:35.148405 nspr-138 FindHostNetworkInterfaceByName leave
Log created: 2015-02-25T10:37:33.143490000Z
10:37:33.143752 main Executable: /home/user/VirtualBox-4.3.22/out/linux.amd64/release/bin/VBoxSVC
10:37:33.143816 main Arg[0]: /home/user/VirtualBox-4.3.22/out/linux.amd64/release/bin/VBoxSVC
10:37:54.098280 nspr-23 FindHostNetworkInterfaceByName enter
10:37:54.689405 nspr-23 FindHostNetworkInterfaceByName leave
10:37:54.899380 nspr-79 FindHostNetworkInterfaceByName enter
10:37:55.347059 nspr-79 FindHostNetworkInterfaceByName leave
10:37:55.478054 nspr-31 FindHostNetworkInterfaceByName enter
10:37:55.480519 nspr-46 FindHostNetworkInterfaceByName enter
10:37:55.854638 nspr-31 FindHostNetworkInterfaceByName leave
10:37:56.291069 nspr-46 FindHostNetworkInterfaceByName leave
10:37:56.319215 nspr-60 FindHostNetworkInterfaceByName enter
10:37:56.319980 nspr-85 FindHostNetworkInterfaceByName enter
10:37:56.796693 nspr-60 FindHostNetworkInterfaceByName leave
10:37:57.346961 nspr-85 FindHostNetworkInterfaceByName leave
10:37:57.663864 nspr-98 FindHostNetworkInterfaceByName enter
10:37:58.372239 nspr-98 FindHostNetworkInterfaceByName leave
10:37:58.540763 nspr-54 FindHostNetworkInterfaceByName enter
10:37:58.552755 nspr-93 FindHostNetworkInterfaceByName enter
10:37:58.552765 nspr-79 FindHostNetworkInterfaceByName enter
10:37:58.557019 nspr-28 FindHostNetworkInterfaceByName enter
10:37:58.558513 nspr-58 FindHostNetworkInterfaceByName enter
10:37:58.558523 nspr-51 FindHostNetworkInterfaceByName enter
10:37:58.558953 nspr-31 FindHostNetworkInterfaceByName enter
10:37:58.565749 nspr-77 FindHostNetworkInterfaceByName enter
10:37:58.565859 nspr-91 FindHostNetworkInterfaceByName enter
10:37:58.565964 nspr-23 FindHostNetworkInterfaceByName enter
10:37:58.566125 nspr-64 FindHostNetworkInterfaceByName enter
10:37:58.567847 nspr-26 FindHostNetworkInterfaceByName enter
10:37:58.568203 nspr-73 FindHostNetworkInterfaceByName enter
10:37:58.569378 nspr-74 FindHostNetworkInterfaceByName enter
10:37:58.570089 nspr-57 FindHostNetworkInterfaceByName enter
10:37:58.571062 nspr-82 FindHostNetworkInterfaceByName enter
10:37:58.571077 nspr-17 FindHostNetworkInterfaceByName enter
10:37:58.571092 nspr-40 FindHostNetworkInterfaceByName enter
10:37:58.571317 nspr-18 FindHostNetworkInterfaceByName enter
10:37:58.571556 nspr-101 FindHostNetworkInterfaceByName enter
10:37:58.572369 nspr-30 FindHostNetworkInterfaceByName enter
10:37:58.572438 nspr-53 FindHostNetworkInterfaceByName enter
10:37:58.572462 nspr-45 FindHostNetworkInterfaceByName enter
10:37:58.572573 nspr-59 FindHostNetworkInterfaceByName enter
10:37:58.572625 nspr-78 FindHostNetworkInterfaceByName enter
10:37:58.572682 nspr-47 FindHostNetworkInterfaceByName enter
10:37:58.573016 nspr-61 FindHostNetworkInterfaceByName enter
10:37:58.573121 nspr-4 FindHostNetworkInterfaceByName enter
10:37:58.573186 nspr-39 FindHostNetworkInterfaceByName enter
10:37:58.573196 nspr-19 FindHostNetworkInterfaceByName enter
10:37:58.573499 nspr-36 FindHostNetworkInterfaceByName enter
10:37:59.270081 nspr-54 FindHostNetworkInterfaceByName leave
10:37:59.878902 nspr-93 FindHostNetworkInterfaceByName leave
10:38:00.491747 nspr-79 FindHostNetworkInterfaceByName leave
10:38:01.246952 nspr-28 FindHostNetworkInterfaceByName leave
10:38:02.030371 nspr-58 FindHostNetworkInterfaceByName leave
10:38:02.879991 nspr-51 FindHostNetworkInterfaceByName leave
10:38:03.746061 nspr-31 FindHostNetworkInterfaceByName leave
10:38:04.702570 nspr-77 FindHostNetworkInterfaceByName leave
10:38:05.695193 nspr-91 FindHostNetworkInterfaceByName leave
10:38:06.704448 nspr-23 FindHostNetworkInterfaceByName leave
10:38:07.659903 nspr-64 FindHostNetworkInterfaceByName leave
10:38:08.710851 nspr-26 FindHostNetworkInterfaceByName leave
10:38:09.700663 nspr-73 FindHostNetworkInterfaceByName leave
10:38:10.715584 nspr-74 FindHostNetworkInterfaceByName leave
10:38:11.715778 nspr-57 FindHostNetworkInterfaceByName leave
10:38:12.703212 nspr-82 FindHostNetworkInterfaceByName leave
10:38:13.783536 nspr-17 FindHostNetworkInterfaceByName leave
10:38:14.865261 nspr-40 FindHostNetworkInterfaceByName leave
10:38:15.897795 nspr-18 FindHostNetworkInterfaceByName leave
10:38:16.943853 nspr-101 FindHostNetworkInterfaceByName leave
10:38:17.994452 nspr-30 FindHostNetworkInterfaceByName leave
10:38:19.021810 nspr-53 FindHostNetworkInterfaceByName leave
10:38:20.012157 nspr-45 FindHostNetworkInterfaceByName leave
10:38:21.029531 nspr-59 FindHostNetworkInterfaceByName leave
10:38:22.044238 nspr-78 FindHostNetworkInterfaceByName leave
10:38:23.093667 nspr-47 FindHostNetworkInterfaceByName leave
10:38:24.116962 nspr-61 FindHostNetworkInterfaceByName leave
10:38:25.134576 nspr-4 FindHostNetworkInterfaceByName leave
10:38:26.167652 nspr-39 FindHostNetworkInterfaceByName leave
10:38:27.162317 nspr-19 FindHostNetworkInterfaceByName leave
10:38:28.117331 nspr-36 FindHostNetworkInterfaceByName leave
10:38:28.152691 nspr-37 FindHostNetworkInterfaceByName enter
10:38:28.152897 nspr-56 FindHostNetworkInterfaceByName enter
10:38:29.182460 nspr-37 FindHostNetworkInterfaceByName leave
10:38:30.152384 nspr-56 FindHostNetworkInterfaceByName leave
10:38:31.400244 nspr-145 FindHostNetworkInterfaceByName enter
10:38:31.408836 nspr-180 FindHostNetworkInterfaceByName enter
10:38:31.410301 nspr-40 FindHostNetworkInterfaceByName enter
10:38:31.410983 nspr-90 FindHostNetworkInterfaceByName enter
10:38:31.410996 nspr-26 FindHostNetworkInterfaceByName enter
10:38:31.416391 nspr-95 FindHostNetworkInterfaceByName enter
10:38:31.426173 nspr-165 FindHostNetworkInterfaceByName enter
10:38:31.430210 nspr-114 FindHostNetworkInterfaceByName enter
10:38:31.430254 nspr-132 FindHostNetworkInterfaceByName enter
10:38:31.434463 nspr-172 FindHostNetworkInterfaceByName enter
10:38:31.437091 nspr-151 FindHostNetworkInterfaceByName enter
10:38:31.437767 nspr-196 FindHostNetworkInterfaceByName enter
10:38:31.438061 nspr-59 FindHostNetworkInterfaceByName enter
10:38:31.442843 nspr-93 FindHostNetworkInterfaceByName enter
10:38:31.443986 nspr-173 FindHostNetworkInterfaceByName enter
10:38:31.445417 nspr-61 FindHostNetworkInterfaceByName enter
10:38:31.445487 nspr-87 FindHostNetworkInterfaceByName enter
10:38:31.448833 nspr-82 FindHostNetworkInterfaceByName enter
10:38:31.449595 nspr-152 FindHostNetworkInterfaceByName enter
10:38:31.449994 nspr-169 FindHostNetworkInterfaceByName enter
10:38:31.450175 nspr-150 FindHostNetworkInterfaceByName enter
10:38:31.451099 nspr-191 FindHostNetworkInterfaceByName enter
10:38:31.451473 nspr-67 FindHostNetworkInterfaceByName enter
10:38:31.452020 nspr-181 FindHostNetworkInterfaceByName enter
10:38:31.452100 nspr-63 FindHostNetworkInterfaceByName enter
10:38:31.452576 nspr-158 FindHostNetworkInterfaceByName enter
10:38:31.453884 nspr-137 FindHostNetworkInterfaceByName enter
10:38:31.453905 nspr-118 FindHostNetworkInterfaceByName enter
10:38:31.454108 nspr-146 FindHostNetworkInterfaceByName enter
10:38:31.454292 nspr-113 FindHostNetworkInterfaceByName enter
10:38:31.457417 nspr-184 FindHostNetworkInterfaceByName enter
10:38:31.458939 nspr-130 FindHostNetworkInterfaceByName enter
10:38:31.459581 nspr-103 FindHostNetworkInterfaceByName enter
10:38:31.460418 nspr-18 FindHostNetworkInterfaceByName enter
10:38:31.462045 nspr-8 FindHostNetworkInterfaceByName enter
10:38:31.466073 nspr-28 FindHostNetworkInterfaceByName enter
10:38:31.466084 nspr-188 FindHostNetworkInterfaceByName enter
10:38:32.104765 nspr-145 FindHostNetworkInterfaceByName leave
10:38:32.922056 nspr-180 FindHostNetworkInterfaceByName leave
10:38:33.827111 nspr-40 FindHostNetworkInterfaceByName leave
10:38:34.765190 nspr-90 FindHostNetworkInterfaceByName leave
10:38:35.634443 nspr-26 FindHostNetworkInterfaceByName leave
10:38:36.613582 nspr-95 FindHostNetworkInterfaceByName leave
10:38:37.642935 nspr-165 FindHostNetworkInterfaceByName leave
10:38:38.649600 nspr-114 FindHostNetworkInterfaceByName leave
10:38:39.655998 nspr-132 FindHostNetworkInterfaceByName leave
10:38:40.690701 nspr-172 FindHostNetworkInterfaceByName leave
10:38:41.786116 nspr-151 FindHostNetworkInterfaceByName leave
10:38:42.875783 nspr-196 FindHostNetworkInterfaceByName leave
10:38:43.985898 nspr-59 FindHostNetworkInterfaceByName leave
10:38:45.088463 nspr-93 FindHostNetworkInterfaceByName leave
10:38:46.184134 nspr-173 FindHostNetworkInterfaceByName leave
10:38:47.276893 nspr-61 FindHostNetworkInterfaceByName leave
10:38:48.380127 nspr-87 FindHostNetworkInterfaceByName leave
10:38:49.472878 nspr-82 FindHostNetworkInterfaceByName leave
10:38:50.541551 nspr-152 FindHostNetworkInterfaceByName leave
10:38:51.626957 nspr-169 FindHostNetworkInterfaceByName leave
10:38:52.756442 nspr-150 FindHostNetworkInterfaceByName leave
10:38:53.851789 nspr-191 FindHostNetworkInterfaceByName leave
10:38:54.902451 nspr-67 FindHostNetworkInterfaceByName leave
10:38:55.978548 nspr-181 FindHostNetworkInterfaceByName leave
10:38:57.098724 nspr-63 FindHostNetworkInterfaceByName leave
10:38:58.156111 nspr-158 FindHostNetworkInterfaceByName leave
10:38:59.278269 nspr-137 FindHostNetworkInterfaceByName leave
10:39:00.356110 nspr-118 FindHostNetworkInterfaceByName leave
10:39:01.438068 nspr-146 FindHostNetworkInterfaceByName leave
10:39:02.384106 nspr-113 FindHostNetworkInterfaceByName leave
10:39:03.240290 nspr-184 FindHostNetworkInterfaceByName leave
10:39:04.064013 nspr-130 FindHostNetworkInterfaceByName leave
10:39:05.023987 nspr-103 FindHostNetworkInterfaceByName leave
10:39:06.056903 nspr-18 FindHostNetworkInterfaceByName leave
10:39:07.103806 nspr-8 FindHostNetworkInterfaceByName leave
10:39:08.115456 nspr-28 FindHostNetworkInterfaceByName leave
10:39:09.167677 nspr-188 FindHostNetworkInterfaceByName leave
diff --git a/VirtualBox-4.3.22/src/VBox/Main/include/HostImpl.h b/VirtualBox-4.3.22/src/VBox/Main/include/HostImpl.h
index d5815a4..82f81f3 100644
--- a/VirtualBox-4.3.22/src/VBox/Main/include/HostImpl.h
+++ b/VirtualBox-4.3.22/src/VBox/Main/include/HostImpl.h
@@ -19,6 +19,7 @@
#define ____H_HOSTIMPL
#include "VirtualBoxBase.h"
+#include "HostNetworkInterfaceImpl.h"
class HostUSBDeviceFilter;
class USBProxyService;
@@ -130,6 +131,8 @@ public:
HRESULT checkUSBProxyService();
#endif /* !VBOX_WITH_USB */
+ static HRESULT getNetIfList(HostNetworkInterfaceList &list);
+
static void generateMACAddress(Utf8Str &mac);
private:
@@ -149,7 +152,7 @@ private:
bool validateDevice(const char *deviceNode, bool isCDROM);
#endif
- HRESULT updateNetIfList();
+ HRESULT updateNetIfList(HostNetworkInterfaceList &list);
#ifndef RT_OS_WINDOWS
HRESULT parseResolvConf();
diff --git a/VirtualBox-4.3.22/src/VBox/Main/src-server/HostImpl.cpp b/VirtualBox-4.3.22/src/VBox/Main/src-server/HostImpl.cpp
index 0d9fbbd..b73c3c2 100644
--- a/VirtualBox-4.3.22/src/VBox/Main/src-server/HostImpl.cpp
+++ b/VirtualBox-4.3.22/src/VBox/Main/src-server/HostImpl.cpp
@@ -292,7 +292,10 @@ HRESULT Host::init(VirtualBox *aParent)
registerMetrics(aParent->performanceCollector());
#endif /* VBOX_WITH_RESOURCE_USAGE_API */
/* Create the list of network interfaces so their metrics get registered. */
- updateNetIfList();
+ HostNetworkInterfaceList list;
+ HRESULT rc = getNetIfList(list);
+ if (RT_SUCCESS(rc))
+ updateNetIfList(list);
m->hostDnsMonitorProxy.init(HostDnsMonitor::getHostDnsMonitor(), m->pParent);
@@ -346,7 +349,7 @@ HRESULT Host::init(VirtualBox *aParent)
&& (fFeaturesEdx & X86_CPUID_FEATURE_EDX_FXSR)
)
{
- int rc = SUPR3QueryVTxSupported();
+ rc = SUPR3QueryVTxSupported();
if (RT_SUCCESS(rc))
m->fVTSupported = true;
}
@@ -378,7 +381,7 @@ HRESULT Host::init(VirtualBox *aParent)
/* Check with SUPDrv if VT-x and AMD-V are really supported (may fail). */
if (m->fVTSupported)
{
- int rc = SUPR3InitEx(false /*fUnrestricted*/, NULL);
+ rc = SUPR3InitEx(false /*fUnrestricted*/, NULL);
if (RT_SUCCESS(rc))
{
uint32_t fVTCaps;
@@ -619,13 +622,16 @@ STDMETHODIMP Host::COMGETTER(NetworkInterfaces)(ComSafeArrayOut(IHostNetworkInte
AutoCaller autoCaller(this);
if (FAILED(autoCaller.rc())) return autoCaller.rc();
- AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
# ifdef VBOX_WITH_HOSTNETIF_API
- int rc = updateNetIfList();
- if (rc)
- {
+ HostNetworkInterfaceList list;
+ HRESULT rc = getNetIfList(list);
+
+ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+ if (RT_SUCCESS(rc))
+ rc = updateNetIfList(list);
+ if (RT_FAILURE(rc))
Log(("Failed to get host network interface list with rc=%Rrc\n", rc));
- }
SafeIfaceArray<IHostNetworkInterface> networkInterfaces (m->llNetIfs);
networkInterfaces.detachTo(ComSafeArrayOutArg(aNetworkInterfaces));
@@ -633,6 +639,7 @@ STDMETHODIMP Host::COMGETTER(NetworkInterfaces)(ComSafeArrayOut(IHostNetworkInte
return S_OK;
# else
+ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
std::list<ComObjPtr<HostNetworkInterface> > list;
# if defined(RT_OS_DARWIN)
@@ -1548,11 +1555,16 @@ STDMETHODIMP Host::FindHostNetworkInterfaceByName(IN_BSTR name, IHostNetworkInte
if (!networkInterface)
return E_POINTER;
- AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
-
*networkInterface = NULL;
ComObjPtr<HostNetworkInterface> found;
- int rc = updateNetIfList();
+
+ HostNetworkInterfaceList list;
+ HRESULT rc = getNetIfList(list);
+
+ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+ if (RT_SUCCESS(rc))
+ rc = updateNetIfList(list);
if (RT_FAILURE(rc))
{
Log(("Failed to get host network interface list with rc=%Rrc\n", rc));
@@ -1585,11 +1597,16 @@ STDMETHODIMP Host::FindHostNetworkInterfaceById(IN_BSTR id, IHostNetworkInterfac
if (!networkInterface)
return E_POINTER;
- AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
-
*networkInterface = NULL;
ComObjPtr<HostNetworkInterface> found;
- int rc = updateNetIfList();
+
+ HostNetworkInterfaceList list;
+ HRESULT rc = getNetIfList(list);
+
+ AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+ if (RT_SUCCESS(rc))
+ rc = updateNetIfList(list);
if (RT_FAILURE(rc))
{
Log(("Failed to get host network interface list with rc=%Rrc\n", rc));
@@ -1616,9 +1633,13 @@ STDMETHODIMP Host::FindHostNetworkInterfacesOfType(HostNetworkInterfaceType_T ty
ComSafeArrayOut(IHostNetworkInterface *, aNetworkInterfaces))
{
#ifdef VBOX_WITH_HOSTNETIF_API
+ HostNetworkInterfaceList list;
+ HRESULT rc = getNetIfList(list);
+
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
- int rc = updateNetIfList();
+ if (RT_SUCCESS(rc))
+ rc = updateNetIfList(list);
if (RT_FAILURE(rc))
return E_FAIL;
@@ -3002,22 +3023,14 @@ HRESULT Host::checkUSBProxyService()
}
#endif /* VBOX_WITH_USB */
-HRESULT Host::updateNetIfList()
+HRESULT Host::updateNetIfList(HostNetworkInterfaceList &list)
{
#ifdef VBOX_WITH_HOSTNETIF_API
AssertReturn(AutoCaller(this).state() == InInit ||
isWriteLockOnCurrentThread(), E_FAIL);
-
- HostNetworkInterfaceList list, listCopy;
- int rc = NetIfList(list);
- if (rc)
- {
- Log(("Failed to get host network interface list with rc=%Rrc\n", rc));
- return E_FAIL;
- }
AssertReturn(m->pParent, E_FAIL);
/* Make a copy as the original may be partially destroyed later. */
- listCopy = list;
+ HostNetworkInterfaceList listCopy = list;
HostNetworkInterfaceList::iterator itOld, itNew;
# ifdef VBOX_WITH_RESOURCE_USAGE_API
PerformanceCollector *aCollector = m->pParent->performanceCollector();
@@ -3076,6 +3089,19 @@ HRESULT Host::updateNetIfList()
#endif
}
+/* static */
+HRESULT Host::getNetIfList(HostNetworkInterfaceList &list)
+{
+#ifdef VBOX_WITH_HOSTNETIF_API
+ HRESULT rc = NetIfList(list);
+ if (rc)
+ Log(("Failed to get host network interface list with rc=%Rrc\n", rc));
+ return rc;
+#else
+ return E_NOTIMPL;
+#endif
+}
+
#ifdef VBOX_WITH_RESOURCE_USAGE_API
void Host::registerDiskMetrics(PerformanceCollector *aCollector)
_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
https://www.virtualbox.org/mailman/listinfo/vbox-dev