Rev 625 | Rev 1100 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 625 | Rev 787 | ||
|---|---|---|---|
| Line 66... | Line 66... | ||
| 66 | char *symbol; |
66 | char *symbol; |
| 67 | bool deadlock_reported = false; |
67 | bool deadlock_reported = false; |
| 68 | 68 | ||
| 69 | preemption_disable(); |
69 | preemption_disable(); |
| 70 | while (test_and_set(&sl->val)) { |
70 | while (test_and_set(&sl->val)) { |
| 71 | if (i++ > 300000) { |
71 | if (i++ > 300000 && sl!=&printflock) { |
| 72 | printf("cpu%d: looping on spinlock %p:%s, caller=%p", |
72 | printf("cpu%d: looping on spinlock %p:%s, caller=%p", |
| 73 | CPU->id, sl, sl->name, CALLER); |
73 | CPU->id, sl, sl->name, CALLER); |
| 74 | symbol = get_symtab_entry(CALLER); |
74 | symbol = get_symtab_entry(CALLER); |
| 75 | if (symbol) |
75 | if (symbol) |
| 76 | printf("(%s)", symbol); |
76 | printf("(%s)", symbol); |