On 09/18/2007 06:46 PM, Ingo Molnar wrote:I just got a bug report today: https://bugzilla.redhat.com/show_bug.cgi?id=295071 ================================================== Description of problem: The CFS scheduler does not seem to implement sched_yield correctly. If one program loops with a sched_yield and another program prints out timing information in a loop. You will see that if both are taskset to the same core that the timing stats will be twice as long as when they are on different cores. This problem was not in 2.6.21-1.3194 but showed up in 2.6.22.4-65 and continues in the newest released kernel 2.6.22.5-76. Version-Release number of selected component (if applicable): 2.6.22.4-65 through 2.6.22.5-76 How reproducible: Very Steps to Reproduce: compile task1 int main() { while (1) { sched_yield(); } return 0; } and compile task2 #include <stdio.h> #include <sys/time.h> int main() { while (1) { int i; struct timeval t0,t1; double usec; gettimeofday(&t0, 0); for (i = 0; i < 100000000; ++i) ; gettimeofday(&t1, 0); usec = (t1.tv_sec * 1e6 + t1.tv_usec) - (t0.tv_sec * 1e6 + t0.tv_usec); printf ("%8.0f\n", usec); } return 0; } Then run: "taskset -c 0 ./task1" "taskset -c 0 ./task2" You will see that both tasks use 50% of the CPU. Then kill task2 and run: "taskset -c 1 ./task2" Now task2 will run twice as fast verifying that it is not some anomaly with the way top calculates CPU usage with sched_yield. Actual results: Tasks with sched_yield do not yield like they are suppose to. Expected results: The sched_yield task's CPU usage should go to near 0% when another task is on the same CPU. -
| David Miller | [GIT]: Networking |
| Fred . | Please add ZFS support (from GPL sources) |
| Pavel Roskin | [PATCH 2.6.25] module: allow ndiswrapper to use GPL-only symbols |
| David Howells | [PATCH 02/52] CRED: Give in_group_p() a cred pointer |
git: | |
| Dmitry Torokhov | Garbage in .git directories??? |
| Dan Farina | backup or mirror a repository |
| Sergei Organov | Newbie: report of first experience with git-rebase. |
| Richard Quirk | git-cherry-pick no longer detecting moved files in 1.5.3.4 |
| Kevin | uvm_mapent_alloc: out of static map entries on 4.3 i386 |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Douglas A. Tutty | how get colour mutt when ssh from OBSD? |
| Brandon Lee | DELL PERC 5iR slow performance |
| Hubert Feyrer | Compressed vnd handling tested successfully |
| Jaromir Dolecek | Arch-specific maxproc limit? |
| YAMAMOTO Takashi | scheduler_wait_hook |
| David Laight | Re: Integrating securelevel and kauth(9) |
