record-btrace: add bts buffer size configuration option
authorMarkus Metzger <markus.t.metzger@intel.com>
Thu, 28 Nov 2013 15:39:12 +0000 (16:39 +0100)
committerMarkus Metzger <markus.t.metzger@intel.com>
Mon, 9 Feb 2015 08:42:28 +0000 (09:42 +0100)
commitd33501a51f46193387ff2d101752a9a878202f82
treefbe786f422bb7045cc2c626314076e41ad3a346b
parentf4abbc168227003a4836dd1a5dd558f40be96372
record-btrace: add bts buffer size configuration option

Allow the size of the branch trace ring buffer to be defined by the
user.  The specified buffer size will be used when BTS tracing is
enabled for new threads.

The obtained buffer size may differ from the requested size.  The
actual buffer size for the current thread is shown in the "info record"
command.

Bigger buffers mean longer traces, but also longer processing time.

2015-02-09  Markus Metzger  <markus.t.metzger@intel.com>

* btrace.c (parse_xml_btrace_conf_bts): Add size.
(btrace_conf_bts_attributes): New.
(btrace_conf_children): Add attributes.
* common/btrace-common.h (btrace_config_bts): New.
(btrace_config)<bts>: New.
(btrace_config): Update comment.
* nat/linux-btrace.c (linux_enable_btrace, linux_enable_bts):
Use config.
* features/btrace-conf.dtd: Increment version.  Add size
attribute to bts element.
* record-btrace.c (set_record_btrace_bts_cmdlist,
show_record_btrace_bts_cmdlist): New.
(record_btrace_adjust_size, record_btrace_print_bts_conf,
record_btrace_print_conf, cmd_set_record_btrace_bts,
cmd_show_record_btrace_bts): New.
(record_btrace_info): Call record_btrace_print_conf.
(_initialize_record_btrace): Add commands.
* remote.c: Add PACKET_Qbtrace_conf_bts_size enum.
(remote_protocol_features): Add Qbtrace-conf:bts:size packet.
(btrace_sync_conf): Synchronize bts size.
(_initialize_remote): Add Qbtrace-conf:bts:size packet.
* NEWS: Announce new commands and new packets.

doc/
* gdb.texinfo (Branch Trace Configuration Format): Add size.
(Process Record and Replay): Describe new set|show commands.
(General Query Packets): Describe Qbtrace-conf:bts:size packet.

testsuite/
* gdb.btrace/buffer-size: New.

gdbserver/
* linux-low.c (linux_low_btrace_conf): Print size.
* server.c (handle_btrace_conf_general_set): New.
(hanle_general_set): Call handle_btrace_conf_general_set.
(handle_query): Report Qbtrace-conf:bts:size as supported.
15 files changed:
gdb/ChangeLog
gdb/NEWS
gdb/btrace.c
gdb/common/btrace-common.h
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/features/btrace-conf.dtd
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/gdbserver/server.c
gdb/nat/linux-btrace.c
gdb/record-btrace.c
gdb/remote.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.btrace/buffer-size.exp [new file with mode: 0644]