Changeset 90471 in vbox
- Timestamp:
- Aug 2, 2021 11:24:07 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 146075
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-locking-1.c
r90463 r90471 65 65 100 | (UINT32_C(50) << VMMDEV_TESTING_LOCKED_WAIT_SHIFT) | VMMDEV_TESTING_LOCKED_POKE 66 66 }, 67 { 68 "Contention 500us/250us poke void", 69 2000 + 16384, 70 500 | (UINT32_C(250) << VMMDEV_TESTING_LOCKED_WAIT_SHIFT) | VMMDEV_TESTING_LOCKED_POKE | VMMDEV_TESTING_LOCKED_BUSY_SUCCESS 71 }, 72 { 73 "Contention 50us/25us poke void", 74 20000 + 4096, 75 50 | (UINT32_C(25) << VMMDEV_TESTING_LOCKED_WAIT_SHIFT) | VMMDEV_TESTING_LOCKED_POKE | VMMDEV_TESTING_LOCKED_BUSY_SUCCESS 76 }, 67 77 }; 68 78 … … 70 80 BS3_DECL(void) Main_rm() 71 81 { 72 uint64_t const cNsPerTest = RT_NS_1 0SEC;82 uint64_t const cNsPerTest = RT_NS_15SEC; 73 83 unsigned i; 84 74 85 Bs3InitAll_rm(); 75 86 Bs3TestInit("bs3-locking-1"); … … 81 92 for (i = 0; i < RT_ELEMENTS(g_aLockingTests); i++) 82 93 { 83 uint64_t const nsStart = Bs3TestNow(); 94 uint64_t const nsStart = Bs3TestNow(); 95 uint64_t cNsElapsed = 0; 96 uint32_t cTotal = 0; 84 97 uint32_t j; 85 98 … … 87 100 ASMOutU32(VMMDEV_TESTING_IOPORT_LOCKED, g_aLockingTests[i].uCtrlWord); 88 101 89 for (j = 0; j < _2M ; j++)102 for (j = 0; j < _2M && cTotal < _1G; j++) 90 103 { 91 uint64_t cNsElapsed;92 104 93 105 /* The inner loop should avoid calling Bs3TestNow too often, while not overshooting the . */ 94 106 unsigned iInner = (unsigned)g_aLockingTests[i].cInnerLoops; 107 cTotal += iInner; 95 108 while (iInner-- > 0) 96 109 ASMInU32(VMMDEV_TESTING_IOPORT_LOCKED); … … 103 116 /* Disable locking. */ 104 117 ASMOutU32(VMMDEV_TESTING_IOPORT_LOCKED, 0); 118 119 Bs3TestValue("Loops", cTotal, VMMDEV_TESTING_UNIT_OCCURRENCES); 120 Bs3TestValue("Elapsed", cNsElapsed, VMMDEV_TESTING_UNIT_NS); 105 121 } 106 122
Note:
See TracChangeset
for help on using the changeset viewer.