History log of /vbox/src/VBox/HostDrivers/Support/SUPDrvGip.cpp
Revision Date Author Comments Expand
6f8f54585e02c203bef2e7ec2f59829163fdc971 54581 02-Mar-2015 vboxsync

HostDrivers/Support: add and use supdrvOSAreCpusOfflinedOnSuspend(). FreeBSD, Darwin, Solaris need verification.

d5d73d91f3aba093b9737fc51ccf3c7a31501d80 54579 02-Mar-2015 vboxsync

paranoia.

b07cf09ce59f674b9c085bcd7ae77927cd551804 54578 02-Mar-2015 vboxsync

HostDrivers/Support: Host suspend/resume now recomputes TSC-deltas for all CPUs.

cd831d3bfb2a059e58b42268a89fa4c7355847c8 54551 27-Feb-2015 vboxsync

HostDrivers/Support: doxygen nit.

5acdcd39dfd0adec57d6e85838e999ba952ee49d 54516 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Increased the TSC frequency refinement period to 12.2 seconds. Decided to remove the wait-for-RTTimeSystemNanoTS-to-change-loop in the TSC frequency refinement callback as it will only get us into trouble where it matters and is pointless on the result of the systems.

d2bf529b7f81219efcdc932bee290467a2b04e24 54515 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Re-enabled the clock tick sync code in supdrvInitRefineInvariantTscFreqTimer again, but with some precautions preventing us from spinning forever.

5cb0813f7ea960345b7bc247add053f4aa5841aa 54514 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Re-enabled the TSC frequency refinement timer for windows now that RTTimerStop no longer does stupid stuff like trying to flush the DPC queue.

b9efc54979b7ee83352754810d59d75543b474a1 54510 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Forgot something during the Init/Delete removal, would cause NULL pointer crashes in supdrvTscDeltaMethod2ProcessDataOnMaster.

d7e34ed92c10a226ff323bdf25d687d28b95a833 54498 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Temporariliy disabled TSC frequency refinement on windows.

97108b625a944324e86c586c51b077c8db985cb0 54492 25-Feb-2015 vboxsync

Temporarily disable the time tick loop in supdrvInitRefineInvariantTscFreqTimer.

ccf651c487e8410e36b2bd79a406a202c02c417f 54489 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Simplify the data structures for the TSC measurements, drop the per-method init/delete stuff.

b0deb52d71d46987430324c2e39de46a2791a738 54480 25-Feb-2015 vboxsync

SUPDrvGip.cpp: Double the timeout to just below 2ms to make it less likely that we time out before we get anything done on slow machines. Windows doesn't seem to care about how long IPI work takes, fortunately. :-) (Usually the job is done in < 50 us, this is just making sure the worst case scenario works.)

24c541a19f29f17baec92a097b8050854b08fd96 54465 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Cleanups.

8f507027ddf8199099a107a263964ec7560b1a9e 54464 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Enabled the 2nd algo after some adjusting.

6e1cd642b67bf605db524a9919e28138aeaedba9 54462 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Sync fixes.

22362edec993ca6ca17ae026d28a8495fad880e0 54458 24-Feb-2015 vboxsync

nits

fcaae7b928d7e61427e8b624046a785507e5a3b6 54456 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Sync macro fix. Profiling in progress...

00cd9478b4914c7bb2998114d794cb5ba3faa1b4 54455 24-Feb-2015 vboxsync

iprt/cdefs.h,VBoxDrvGip.cpp: Using __noinline__ instead of noinline in DECL_NO_INLINE should hopefully fix the issue with linux redefining noinline in a more permanent manner.

3a3aa7a4d81818decb78355caff674e6c616ef85 54454 24-Feb-2015 vboxsync

Disable the statistics collected in supdrvTscDeltaVerify.

e3ca1fe5aceb4641ff101c920fc09c74754e3e46 54448 24-Feb-2015 vboxsync

SUPDrv: Register a power manage notification callback so we can cancel the invariant TSC frequency refinement timer.

27fcebf3d224cda980acb78bc44349da8cde9d37 54447 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Use a interval timer as solaris cannot restart one-shot timers from the callback. This is a better idea anyway as I get ticks I can use to record the refinement history in the u64CpuHz members of CPU entries 1+ :-)

e413b055bbccf1f99a47bcf7ef49846ca02781a1 54409 24-Feb-2015 vboxsync

SUPDrvGip.cpp: Use RTMpOnPair.

81c6115ff3bb02e166ee8f762d30c4ba5e3db08a 54402 23-Feb-2015 vboxsync

Eliminated supdrvTscDeltaApply. corrected explanation in supdrvGipSyncAndInvariantTimer.

476493afbafe452ee52b3b3b2bb77e07e5e56285 54395 23-Feb-2015 vboxsync

IPRT, HostDriver, VMMR0: MP notifications fixes for TSC-delta measurements, scheduling of notification callback taken care by the API consumer instead of IPRT.

587418a577479193ac71bcccad5f32788d004f3b 54392 23-Feb-2015 vboxsync

XXX

ea0f9836d9efcee2e0cabf403a61d6310939c310 54387 23-Feb-2015 vboxsync

SUPDrvGip.cpp: Start the TSC measurement by testing for zero delta. We do alternate TSC reads on the two CPUs and check that the TSC value is ever increasing.

874970279c503ed890db044712b8e5eaa6f6f82a 54379 23-Feb-2015 vboxsync

SUPDrvGip.cpp: Fixed warnings and build break.

43029b4f936dd14e6b09b1ad3af5020b50881350 54377 23-Feb-2015 vboxsync

SUPDrvGip.cpp: todo wrt host suspend during invariant tsc frequency refinement.

d3bc5de36454b477aee7a8a77a6cba37c7099d43 54376 23-Feb-2015 vboxsync

done.

d5dbc72216583ef566ba070ac5613e0bca155f82 54375 23-Feb-2015 vboxsync

SUPDrvGip.cpp: Replaced idTscDeltaInitiator+RTThreadSleep(1) with a mutex semaphore. Allocate the SUPDRVGIPTSCDELTARGS structure (stack might be swappable, also don't waste it). Remove old sync code.

b9e571577d16e627a7cf7bf11e43e7dbaaac549d 54371 23-Feb-2015 vboxsync

SUPDrvGip.cpp: Enabled new tsc-delta measurement sync code w/ timeout checks.

357175321a45346fc98b70f7644399f412ee9c3e 54366 23-Feb-2015 vboxsync

Must check for timeout in the first loop iteration.

ddcb64df779903f563ad28b5b018bcf94ba22a56 54365 23-Feb-2015 vboxsync

SUPDrvGip.cpp: The TSC-delta thread must clear the work mask even if the CPU got a delta value already or the timer callback will keep it busy for ever (not entirely sure where the darn race is, though). New TSC-delta synchronization code with timeout handling (disable).

6f34d825e07e8dcd535b37d7685ab62220a23add 54357 22-Feb-2015 vboxsync

SUPDrvGip.cpp: First part of the less noisy tsc-delta-measurment synchronization w/ timeout revamp.

8689d10cc9774b5c64bbfcf02b8ae32e4c321aa6 54355 22-Feb-2015 vboxsync

docs.

1e03057d35a3aede4efe2580ee277c0a9802fbf0 54354 22-Feb-2015 vboxsync

nit

54ddecd74894d3a29fd83ae727844894fef707be 54353 22-Feb-2015 vboxsync

gee

87c5113417e917cdf64545d4f8e0a27047cea783 54352 22-Feb-2015 vboxsync

SUPDrv,TM: Overhauled the CPU/TSC frequency a little, making it possible to run it early and skpping the 200 ms variant for the invariant tsc by executing the refinement timer several times.

dc45a8f3e936581748c248e00ce572cfe3ea331e 54345 20-Feb-2015 vboxsync

Cleaning up the 2nd algo.

c9c755c35cd95c006f7ecdb07f2fa8d64686ae3d 54342 20-Feb-2015 vboxsync

SUPDrvGip.cpp: First part of multiple tsc delta algorithm reorg.

9a59b271202449cf51ec3ac13b8ef1b4b9810850 54339 20-Feb-2015 vboxsync

SUPDrv,VMM: Added SUPR0TscDeltaMeasureBySetIndex to SUPDrv (bumping version req) so that VMMR0.cpp can, if necessary, trigger a delta measurement prior to doing RC and HM stuff. Also, made the context hook set the return-to-ring3 force flag if we're rescheduled on a CPU with an TSC delta needing measuring. This is probably code that will almost never get called...

a3bfe717fb4cf4a2335a2673e38022f0b05187be 54334 20-Feb-2015 vboxsync

SUPDrvGip.cpp: We can skip the determin-async-tsc test on invariant tsc CPUs now.

ece539e847eaf73e9a1910b562d998dc0afc5580 54329 20-Feb-2015 vboxsync

SUPDrvGip.cpp: Reordered the code, missed a bit.

50671c30431539dd7d6ff6a5f2ceb6c9f9f471b2 54328 20-Feb-2015 vboxsync

SUPDrvGip.cpp: Reordered the code.

9888fffcfbe2d41dce14a1249b12cb88cc9b149f 54327 20-Feb-2015 vboxsync

SUPDrv: Split out the GIP related code into SUPDrvGip.cpp.