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); |