Dwarf Fortress Bug Tracker - Dwarf Fortress | ||||||||||||||||||||
View Issue Details | ||||||||||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | |||||||||||||||
0002130 | Dwarf Fortress | Technical -- Sound | public | 2010-06-02 08:02 | 2012-02-20 17:36 | |||||||||||||||
Reporter | oliver | |||||||||||||||||||
Assigned To | Footkerchief | |||||||||||||||||||
Priority | normal | Severity | minor | Reproducibility | always | |||||||||||||||
Status | resolved | Resolution | unable to reproduce | |||||||||||||||||
Platform | x86_64 | OS | Ubuntu Linux, 64-bit | OS Version | 9.10 | |||||||||||||||
Product Version | 0.31.04 | |||||||||||||||||||
Target Version | Fixed in Version | |||||||||||||||||||
Summary | 0002130: SOUND:YES consumes excessive CPU (runaway thread?) | |||||||||||||||||||
Description | If I start DF with [SOUND:YES], it uses one-and-a-bit cores worth of CPU while just sitting at the title screen: $ vmstat 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 4 0 0 84100 411228 1744428 0 0 32 23 340 729 24 4 72 1 6 0 0 79752 411248 1748784 0 0 57 206 1153 6454 57 21 21 0 5 0 0 79256 411260 1749384 0 0 66 11 1444 4185 61 15 23 0 3 0 0 78884 411280 1749700 0 0 22 168 1539 4203 63 15 22 0 If I set [SOUND:NO], it uses much less CPU: $ vmstat 5 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 0 0 97308 411700 1758352 0 0 32 23 340 733 24 4 71 1 2 0 0 96572 411716 1758932 0 0 58 182 1168 2557 28 1 70 1 0 0 0 96200 411728 1759296 0 0 22 12 1100 2544 29 1 69 1 1 0 0 188952 411748 1666528 0 0 19 14 1114 2597 28 1 70 1 This is a dual-core system. It seems like there's a runaway sound thread taking all the CPU it can, i.e. about one core's worth. | |||||||||||||||||||
Steps To Reproduce | ||||||||||||||||||||
Additional Information | Startup with SOUND:YES reports: ... Sound devices available: ALSA Software OSS Software PulseAudio Software Wave File Writer Picking ALSA Software. If your desired device was missing, make sure you have the appropriate 32-bit libraries installed. If you wanted a different device, configure ~/.openalrc appropriately. Perfect OpenAL context attributes GET Loading bindings from data/init/interface.txt ... Here's a thread dump of the case with SOUND:YES while it's chewing CPU. top says it's LWP 5630 (thread 2) that's the culprit - that thread is at 95% CPU or so, while the main thread is at 30% or so: (gdb) thread apply all bt Thread 5 (Thread 0xf4d8ab70 (LWP 5627)): #0 0xf772a430 in __kernel_vsyscall () #1 0xf7039e96 in nanosleep () from /lib32/libc.so.6 #2 0xf76cbf47 in SDL_Delay () from /usr/lib32/libSDL-1.2.so.0 #3 0xf76cbf94 in ?? () from /usr/lib32/libSDL-1.2.so.0 #4 0xf767ea6e in ?? () from /usr/lib32/libSDL-1.2.so.0 #5 0xf76c8d2d in ?? () from /usr/lib32/libSDL-1.2.so.0 #6 0xf6f8d80e in start_thread () from /lib32/libpthread.so.0 #7 0xf7070b4e in clone () from /lib32/libc.so.6 Thread 4 (Thread 0xf4589b70 (LWP 5628)): #0 0xf772a430 in __kernel_vsyscall () #1 0xf6f94355 in sem_wait@@GLIBC_2.1 () from /lib32/libpthread.so.0 #2 0xf76c8e18 in SDL_SemWait () from /usr/lib32/libSDL-1.2.so.0 #3 0xf7243395 in enablerst::async_loop() () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #4 0xf724384d in call_loop(void*) () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #5 0xf767ea6e in ?? () from /usr/lib32/libSDL-1.2.so.0 #6 0xf76c8d2d in ?? () from /usr/lib32/libSDL-1.2.so.0 #7 0xf6f8d80e in start_thread () from /lib32/libpthread.so.0 #8 0xf7070b4e in clone () from /lib32/libc.so.6 Thread 3 (Thread 0xefbaeb70 (LWP 5629)): #0 0xf772a430 in __kernel_vsyscall () #1 0xf7062ed6 in poll () from /lib32/libc.so.6 #2 0xf3cdccc2 in ?? () from /usr/lib32/libpulse.so.0 #3 0xf3cc9e09 in pa_mainloop_poll () from /usr/lib32/libpulse.so.0 #4 0xf3ccbc23 in pa_mainloop_iterate () from /usr/lib32/libpulse.so.0 #5 0xf3ccbcf4 in pa_mainloop_run () from /usr/lib32/libpulse.so.0 #6 0xf3cdcbc3 in ?? () from /usr/lib32/libpulse.so.0 #7 0xf3c24ac2 in ?? () from /usr/lib32/libpulsecommon-0.9.19.so #8 0xf6f8d80e in start_thread () from /lib32/libpthread.so.0 #9 0xf7070b4e in clone () from /lib32/libc.so.6 Thread 2 (Thread 0xef3adb70 (LWP 5630)): #0 0xf772a430 in __kernel_vsyscall () #1 0xf7062ed6 in poll () from /lib32/libc.so.6 #2 0xf6f0ae15 in ?? () from /usr/lib32/libasound.so.2 #3 0xf6f0afe3 in snd_pcm_wait () from /usr/lib32/libasound.so.2 #4 0xf6f0b17b in ?? () from /usr/lib32/libasound.so.2 #5 0xf6f4fe7a in ?? () from /usr/lib32/libasound.so.2 #6 0xf6f059bc in snd_pcm_writei () from /usr/lib32/libasound.so.2 #7 0xf69261db in ?? () from /usr/lib32/libopenal.so.1 #8 0xf6921492 in ?? () from /usr/lib32/libopenal.so.1 #9 0xf6f8d80e in start_thread () from /lib32/libpthread.so.0 #10 0xf7070b4e in clone () from /lib32/libc.so.6 Thread 1 (Thread 0xf4f62740 (LWP 5626)): #0 0xf772a430 in __kernel_vsyscall () #1 0xf7039e96 in nanosleep () from /lib32/libc.so.6 #2 0xf76cbf47 in SDL_Delay () from /usr/lib32/libSDL-1.2.so.0 #3 0xf7245488 in enablerst::do_frame() () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #4 0xf7245659 in enablerst::eventLoop_SDL() () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #5 0xf72462c0 in enablerst::loop(std::string) () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #6 0xf7246b02 in main () from /home/oliver/df_31_04/df_linux/libs/libgraphics.so #7 0xf6fb8b56 in __libc_start_main () from /lib32/libc.so.6 #8 0x0804dec1 in ?? () | |||||||||||||||||||
Tags | SDL-only | |||||||||||||||||||
Relationships |
| |||||||||||||||||||
Attached Files | ||||||||||||||||||||
Issue History | ||||||||||||||||||||
Date Modified | Username | Field | Change | |||||||||||||||||
2010-06-02 08:02 | oliver | New Issue | ||||||||||||||||||
2010-06-21 11:33 | Footkerchief | Additional Information Updated | bug_revision_view_page.php?rev_id=3390#r3390 | |||||||||||||||||
2010-06-21 11:38 | Footkerchief | Tag Attached: SDL-only | ||||||||||||||||||
2010-06-25 21:45 | Footkerchief | Relationship added | related to 0002421 | |||||||||||||||||
2010-06-29 07:38 | Footkerchief | Category | Technical => Technical -- General | |||||||||||||||||
2010-07-10 21:12 | oliver | Note Added: 0009909 | ||||||||||||||||||
2010-07-11 10:35 | Footkerchief | Relationship added | related to 0002520 | |||||||||||||||||
2010-07-12 22:16 | Box | Note Added: 0010099 | ||||||||||||||||||
2010-07-18 02:04 | Footkerchief | Relationship added | related to 0002616 | |||||||||||||||||
2010-07-18 02:05 | Footkerchief | Category | Technical -- General => Technical -- Sound | |||||||||||||||||
2012-02-20 17:36 | Footkerchief | Note Added: 0020304 | ||||||||||||||||||
2012-02-20 17:36 | Footkerchief | Status | new => resolved | |||||||||||||||||
2012-02-20 17:36 | Footkerchief | Resolution | open => unable to reproduce | |||||||||||||||||
2012-02-20 17:36 | Footkerchief | Assigned To | => Footkerchief |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|