This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: performance of multithreading gets gradually worse under gdb


>>>>> "Markus" == Markus Alber <markus@hyperion-imrt.org> writes:

Markus> See the attached file. It shows a similar behaviour, although it only
Markus> allocates 8kB per iteration.
Markus> You have to wait some time before this happens.

Thanks.

I changed 1<<24 to 1<<15, to spare my underpowered machine, and ran gdb
under massif.

This part is interesting:

->20.78% (2,954,016B) 0x8253683: regcache_xmalloc_1 (regcache.c:232)
| ->20.78% (2,954,016B) 0x8253F85: get_thread_arch_regcache (regcache.c:463)
|   ->20.78% (2,954,016B) 0x82540B5: get_thread_regcache (regcache.c:488)
|     ->20.78% (2,954,016B) 0x81D1579: i386_linux_resume (i386-linux-nat.c:861)
|     | ->20.78% (2,954,016B) 0x81D7D32: linux_nat_resume (linux-nat.c:1983)


I debugged gdb a little and it does indeed seem to be leaking here.

I don't understand why registers_changed_ptid unconditionally clears
current_regcache.  I suspect that may be the source of the problem.

Perhaps someone who knows this code better could take a look.

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]