From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22903 invoked by alias); 8 Jul 2005 23:35:00 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22862 invoked by uid 22791); 8 Jul 2005 23:34:52 -0000 Received: from rproxy.gmail.com (HELO rproxy.gmail.com) (64.233.170.192) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Fri, 08 Jul 2005 23:34:52 +0000 Received: by rproxy.gmail.com with SMTP id i8so466809rne for ; Fri, 08 Jul 2005 16:34:51 -0700 (PDT) Received: by 10.11.94.39 with SMTP id r39mr25512cwb; Fri, 08 Jul 2005 16:34:51 -0700 (PDT) Received: by 10.11.99.15 with HTTP; Fri, 8 Jul 2005 16:34:51 -0700 (PDT) Message-ID: <7f45d93905070816344ea65a3c@mail.gmail.com> Date: Fri, 08 Jul 2005 23:35:00 -0000 From: Shaun Jackman Reply-To: Shaun Jackman To: gdb-patches@sources.redhat.com Subject: gdb/symfile.c: Transfer rate calculation Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_140_5600805.1120865691149" X-SW-Source: 2005-07/txt/msg00086.txt.bz2 ------=_Part_140_5600805.1120865691149 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-length: 3673 The transfer rate calculation in print_transfer_performance uses a time unit of whole seconds. This gross time unit limits the accuracy of the calculation, since the number of elapsed whole seconds usually has only one significant digit. This patch adds print_transfer_performance_ms which uses a time unit of milliseconds. It leaves the semantics of print_transfer_performance unchanged because gdb/m32r-rom.c and gdb/remote-m32r-sdi.c use it. Cheers, Shaun 2005-07-08 Shaun Jackman * gdb/symfile.c (print_transfer_performance_ms): New function. Use gettimeofday instead of date to obtain microsecond precision.=20 (print_transfer_performance): Call print_transfer_performance_ms. --- ./gdb/symfile.c- 2004-06-24 15:09:34.000000000 -0700 +++ ./gdb/symfile.c 2005-07-08 16:25:05.000000000 -0700 @@ -54,6 +54,7 @@ #include "gdb_string.h" #include "gdb_stat.h" #include +#include #include =20 #ifndef O_BINARY @@ -92,6 +93,9 @@ =20 static void symbol_file_add_main_1 (char *args, int from_tty, int flags); =20 +static void print_transfer_performance_ms (struct ui_file *, + unsigned long, unsigned long, unsigned long); + static void add_symbol_file_command (char *, int); =20 static void add_shared_symbol_files_command (char *, int); @@ -1460,7 +1464,7 @@ { asection *s; bfd *loadfile_bfd; - time_t start_time, end_time; /* Start and end times of download */ + struct timeval start_time, end_time; /* Start and end times of download = */ char *filename; struct cleanup *old_cleanups; char *offptr; @@ -1512,11 +1516,11 @@ bfd_map_over_sections (loadfile_bfd, add_section_size_callback, (void *) &cbdata.total_size); =20 - start_time =3D time (NULL); + gettimeofday(&start_time, NULL); =20 bfd_map_over_sections (loadfile_bfd, load_section_callback, &cbdata); =20 - end_time =3D time (NULL); + gettimeofday(&end_time, NULL); =20 entry =3D bfd_get_start_address (loadfile_bfd); ui_out_text (uiout, "Start address "); @@ -1534,8 +1538,10 @@ file is loaded in. Some targets do (e.g., remote-vx.c) but others don't (or didn't - perhaphs they have all been deleted). */ =20 - print_transfer_performance (gdb_stdout, cbdata.data_count, - cbdata.write_count, end_time - start_time); + print_transfer_performance_ms (gdb_stdout, cbdata.data_count, + cbdata.write_count, + (end_time.tv_sec - start_time.tv_sec)*1000 + + (end_time.tv_usec - start_time.tv_usec)/1000); =20 do_cleanups (old_cleanups); } @@ -1554,8 +1560,8 @@ end_time - start_time, 0); } =20 -void -print_transfer_performance (struct ui_file *stream, +static void +print_transfer_performance_ms (struct ui_file *stream, unsigned long data_count, unsigned long write_count, unsigned long time_count) @@ -1564,8 +1570,8 @@ if (time_count > 0) { ui_out_field_fmt (uiout, "transfer-rate", "%lu", - (data_count * 8) / time_count); - ui_out_text (uiout, " bits/sec"); + 1000 * data_count / time_count); + ui_out_text (uiout, " bytes/sec"); } else { @@ -1581,6 +1587,16 @@ ui_out_text (uiout, ".\n"); } =20 +void +print_transfer_performance (struct ui_file *stream, + unsigned long data_count, + unsigned long write_count, + unsigned long time_count) +{ + print_transfer_performance_ms(stream, data_count, write_count, + 1000*time_count); +} + /* This function allows the addition of incrementally linked object files. It does not modify any state in the target, only in the debugger. */ /* Note: ezannoni 2000-04-13 This function/command used to have a ------=_Part_140_5600805.1120865691149 Content-Type: text/x-patch; name="transfer-rate.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="transfer-rate.diff" Content-length: 4303 MjAwNS0wNy0wOCAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNv bT4KCgkqIGdkYi9zeW1maWxlLmMgKHByaW50X3RyYW5zZmVyX3BlcmZvcm1h bmNlX21zKTogTmV3IGZ1bmN0aW9uLgoJVXNlIGdldHRpbWVvZmRheSBpbnN0 ZWFkIG9mIGRhdGUgdG8gb2J0YWluIG1pY3Jvc2Vjb25kIHByZWNpc2lvbi4g CgkocHJpbnRfdHJhbnNmZXJfcGVyZm9ybWFuY2UpOiBDYWxsIHByaW50X3Ry YW5zZmVyX3BlcmZvcm1hbmNlX21zLgoKLS0tIC4vZ2RiL3N5bWZpbGUuYy0J MjAwNC0wNi0yNCAxNTowOTozNC4wMDAwMDAwMDAgLTA3MDAKKysrIC4vZ2Ri L3N5bWZpbGUuYwkyMDA1LTA3LTA4IDE2OjI1OjA1LjAwMDAwMDAwMCAtMDcw MApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIK ICNpbmNsdWRlICJnZGJfc3RhdC5oIgogI2luY2x1ZGUgPGN0eXBlLmg+Cisj aW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDx0aW1lLmg+CiAKICNp Zm5kZWYgT19CSU5BUlkKQEAgLTkyLDYgKzkzLDkgQEAKIAogc3RhdGljIHZv aWQgc3ltYm9sX2ZpbGVfYWRkX21haW5fMSAoY2hhciAqYXJncywgaW50IGZy b21fdHR5LCBpbnQgZmxhZ3MpOwogCitzdGF0aWMgdm9pZCBwcmludF90cmFu c2Zlcl9wZXJmb3JtYW5jZV9tcyAoc3RydWN0IHVpX2ZpbGUgKiwKKyAgICB1 bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsK Kwogc3RhdGljIHZvaWQgYWRkX3N5bWJvbF9maWxlX2NvbW1hbmQgKGNoYXIg KiwgaW50KTsKIAogc3RhdGljIHZvaWQgYWRkX3NoYXJlZF9zeW1ib2xfZmls ZXNfY29tbWFuZCAoY2hhciAqLCBpbnQpOwpAQCAtMTQ2MCw3ICsxNDY0LDcg QEAKIHsKICAgYXNlY3Rpb24gKnM7CiAgIGJmZCAqbG9hZGZpbGVfYmZkOwot ICB0aW1lX3Qgc3RhcnRfdGltZSwgZW5kX3RpbWU7CS8qIFN0YXJ0IGFuZCBl bmQgdGltZXMgb2YgZG93bmxvYWQgKi8KKyAgc3RydWN0IHRpbWV2YWwgc3Rh cnRfdGltZSwgZW5kX3RpbWU7CS8qIFN0YXJ0IGFuZCBlbmQgdGltZXMgb2Yg ZG93bmxvYWQgKi8KICAgY2hhciAqZmlsZW5hbWU7CiAgIHN0cnVjdCBjbGVh bnVwICpvbGRfY2xlYW51cHM7CiAgIGNoYXIgKm9mZnB0cjsKQEAgLTE1MTIs MTEgKzE1MTYsMTEgQEAKICAgYmZkX21hcF9vdmVyX3NlY3Rpb25zIChsb2Fk ZmlsZV9iZmQsIGFkZF9zZWN0aW9uX3NpemVfY2FsbGJhY2ssCiAJCQkgKHZv aWQgKikgJmNiZGF0YS50b3RhbF9zaXplKTsKIAotICBzdGFydF90aW1lID0g dGltZSAoTlVMTCk7CisgIGdldHRpbWVvZmRheSgmc3RhcnRfdGltZSwgTlVM TCk7CiAKICAgYmZkX21hcF9vdmVyX3NlY3Rpb25zIChsb2FkZmlsZV9iZmQs IGxvYWRfc2VjdGlvbl9jYWxsYmFjaywgJmNiZGF0YSk7CiAKLSAgZW5kX3Rp bWUgPSB0aW1lIChOVUxMKTsKKyAgZ2V0dGltZW9mZGF5KCZlbmRfdGltZSwg TlVMTCk7CiAKICAgZW50cnkgPSBiZmRfZ2V0X3N0YXJ0X2FkZHJlc3MgKGxv YWRmaWxlX2JmZCk7CiAgIHVpX291dF90ZXh0ICh1aW91dCwgIlN0YXJ0IGFk ZHJlc3MgIik7CkBAIC0xNTM0LDggKzE1MzgsMTAgQEAKICAgICAgZmlsZSBp cyBsb2FkZWQgaW4uICBTb21lIHRhcmdldHMgZG8gKGUuZy4sIHJlbW90ZS12 eC5jKSBidXQKICAgICAgb3RoZXJzIGRvbid0IChvciBkaWRuJ3QgLSBwZXJo YXBocyB0aGV5IGhhdmUgYWxsIGJlZW4gZGVsZXRlZCkuICAqLwogCi0gIHBy aW50X3RyYW5zZmVyX3BlcmZvcm1hbmNlIChnZGJfc3Rkb3V0LCBjYmRhdGEu ZGF0YV9jb3VudCwKLQkJCSAgICAgIGNiZGF0YS53cml0ZV9jb3VudCwgZW5k X3RpbWUgLSBzdGFydF90aW1lKTsKKyAgcHJpbnRfdHJhbnNmZXJfcGVyZm9y bWFuY2VfbXMgKGdkYl9zdGRvdXQsIGNiZGF0YS5kYXRhX2NvdW50LAorCQkJ ICAgICAgY2JkYXRhLndyaXRlX2NvdW50LAorCQkJCSAgKGVuZF90aW1lLnR2 X3NlYyAtIHN0YXJ0X3RpbWUudHZfc2VjKSoxMDAwICsKKwkJCQkgIChlbmRf dGltZS50dl91c2VjIC0gc3RhcnRfdGltZS50dl91c2VjKS8xMDAwKTsKIAog ICBkb19jbGVhbnVwcyAob2xkX2NsZWFudXBzKTsKIH0KQEAgLTE1NTQsOCAr MTU2MCw4IEBACiAJCQkgICAgICBlbmRfdGltZSAtIHN0YXJ0X3RpbWUsIDAp OwogfQogCi12b2lkCi1wcmludF90cmFuc2Zlcl9wZXJmb3JtYW5jZSAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwKK3N0YXRpYyB2b2lkCitwcmludF90cmFu c2Zlcl9wZXJmb3JtYW5jZV9tcyAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwK IAkJCSAgICB1bnNpZ25lZCBsb25nIGRhdGFfY291bnQsCiAJCQkgICAgdW5z aWduZWQgbG9uZyB3cml0ZV9jb3VudCwKIAkJCSAgICB1bnNpZ25lZCBsb25n IHRpbWVfY291bnQpCkBAIC0xNTY0LDggKzE1NzAsOCBAQAogICBpZiAodGlt ZV9jb3VudCA+IDApCiAgICAgewogICAgICAgdWlfb3V0X2ZpZWxkX2ZtdCAo dWlvdXQsICJ0cmFuc2Zlci1yYXRlIiwgIiVsdSIsCi0JCQkoZGF0YV9jb3Vu dCAqIDgpIC8gdGltZV9jb3VudCk7Ci0gICAgICB1aV9vdXRfdGV4dCAodWlv dXQsICIgYml0cy9zZWMiKTsKKwkJCTEwMDAgKiBkYXRhX2NvdW50IC8gdGlt ZV9jb3VudCk7CisgICAgICB1aV9vdXRfdGV4dCAodWlvdXQsICIgYnl0ZXMv c2VjIik7CiAgICAgfQogICBlbHNlCiAgICAgewpAQCAtMTU4MSw2ICsxNTg3 LDE2IEBACiAgIHVpX291dF90ZXh0ICh1aW91dCwgIi5cbiIpOwogfQogCit2 b2lkCitwcmludF90cmFuc2Zlcl9wZXJmb3JtYW5jZSAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKwkJCSAgICB1bnNpZ25lZCBsb25nIGRhdGFfY291bnQs CisJCQkgICAgdW5zaWduZWQgbG9uZyB3cml0ZV9jb3VudCwKKwkJCSAgICB1 bnNpZ25lZCBsb25nIHRpbWVfY291bnQpCit7CisgIHByaW50X3RyYW5zZmVy X3BlcmZvcm1hbmNlX21zKHN0cmVhbSwgZGF0YV9jb3VudCwgd3JpdGVfY291 bnQsCisJCQkJMTAwMCp0aW1lX2NvdW50KTsKK30KKwogLyogVGhpcyBmdW5j dGlvbiBhbGxvd3MgdGhlIGFkZGl0aW9uIG9mIGluY3JlbWVudGFsbHkgbGlu a2VkIG9iamVjdCBmaWxlcy4KICAgIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkg c3RhdGUgaW4gdGhlIHRhcmdldCwgb25seSBpbiB0aGUgZGVidWdnZXIuICAq LwogLyogTm90ZTogZXphbm5vbmkgMjAwMC0wNC0xMyBUaGlzIGZ1bmN0aW9u L2NvbW1hbmQgdXNlZCB0byBoYXZlIGEK ------=_Part_140_5600805.1120865691149--