Changeset 72637 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jun 21, 2018 11:34:44 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123141
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevATA.cpp
r72589 r72637 298 298 * Lower is more agressive. */ 299 299 uint8_t cBusyStatusHackR3Rate; 300 /** Defines the R Z yield rate by number of status requests before returning301 * to ring-3 and yielding there.Lower is more agressive. */300 /** Defines the R0/RC yield rate by a mask (power of 2 minus one). 301 * Lower is more agressive. */ 302 302 uint8_t cBusyStatusHackRZRate; 303 303 … … 4528 4528 * especially on SMP systems where we don't gain much by 4529 4529 * yielding the CPU to someone else. */ 4530 if ( ++s->cBusyStatusHackRZ >= s->cBusyStatusHackRZRate)4530 if ((s->cBusyStatusHackRZ++ & s->cBusyStatusHackRZRate) == 1) 4531 4531 { 4532 s->cBusyStatusHackRZ = 0;4533 4532 s->cBusyStatusHackR3 = 0; /* Forces a yield. */ 4534 4533 return VINF_IOM_R3_IOPORT_READ; … … 6534 6533 { 6535 6534 pIf->cBusyStatusHackR3Rate = 1; 6536 pIf->cBusyStatusHackRZRate = 8;6535 pIf->cBusyStatusHackRZRate = 7; 6537 6536 } 6538 6537 else if (cCpus <= 2) 6539 6538 { 6540 6539 pIf->cBusyStatusHackR3Rate = 3; 6541 pIf->cBusyStatusHackRZRate = 20;6540 pIf->cBusyStatusHackRZRate = 15; 6542 6541 } 6543 6542 else if (cCpus <= 4) 6544 6543 { 6545 6544 pIf->cBusyStatusHackR3Rate = 15; 6546 pIf->cBusyStatusHackRZRate = 3 2;6545 pIf->cBusyStatusHackRZRate = 31; 6547 6546 } 6548 6547 else 6549 6548 { 6550 6549 pIf->cBusyStatusHackR3Rate = 127; 6551 pIf->cBusyStatusHackRZRate = 12 8;6550 pIf->cBusyStatusHackRZRate = 127; 6552 6551 } 6553 6552
Note:
See TracChangeset
for help on using the changeset viewer.