Bug 702826 - GNU time reports incorrect maximum RSS
Summary: GNU time reports incorrect maximum RSS
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: time
Version: 14
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL: http://lists.gnu.org/archive/html/bug...
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-07 14:07 UTC by Michael Chapman
Modified: 2011-05-25 02:53 UTC (History)
1 user (show)

(edit)
Clone Of:
: 703865 (view as bug list)
(edit)
Last Closed: 2011-05-19 04:58:46 UTC


Attachments (Terms of Use)
Do not incorrectly convert ru_maxrss (520 bytes, patch)
2011-05-07 14:09 UTC, Michael Chapman
no flags Details | Diff

Description Michael Chapman 2011-05-07 14:07:30 UTC
Description of problem:

GNU time can print out the maximum RSS usage of its subprocess. The ru_maxrss value returned by the wait4 syscall is in units of kilobytes, but GNU time incorrectly treats this as a number of pages, multiplying the value by 4 before displaying it.

Version-Release number of selected component (if applicable):
time-1.7-37.fc12.i686

How reproducible: Always

Steps to Reproduce:
1. /usr/bin/time -f %M perl -e '"x" x 400 x 1024 x 1024'
  
Actual results: A bit over 1600000, indicating maximum RSS usage of 1.6 GB. This is not even possible on my system as it only has 1 GB of physical RAM.

Expected results: Approximately 400000, since Perl should only be allocating around 400 MB.

Additional info:

Applying strace to the above command, it is clear that time is multiplying the ru_maxrss value returned by wait4:

$ strace -ve wait4 /usr/bin/time -f %M perl -e '"x" x 400 x 1024 x 1024'
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, {ru_utime={0, 146977}, ru_stime={0, 676897}, ru_maxrss=411356, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=102901, ru_majflt=1, ru_nswap=0, ru_inblock=176, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=1, ru_nivcsw=40}) = 7459
--- {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7459, si_status=0, si_utime=14, si_stime=68} (Child exited) ---
1645424

According to the getrusage(2) manpage:

  ru_maxrss (since Linux 2.6.32)
     This is the maximum resident set size used (in kilobytes). [...]

I've attached a simple patch that simply skips the "pages to kilobytes" conversion for this field.

Comment 1 Michael Chapman 2011-05-07 14:09:53 UTC
Created attachment 497533 [details]
Do not incorrectly convert ru_maxrss

Comment 2 Petr Pisar 2011-05-11 12:52:21 UTC
All Fedoras affected (time-1.7).

Comment 3 Petr Pisar 2011-05-11 13:44:39 UTC
Thank you for the report, fixed time version will be pushed into Fedoras soon.

Comment 4 Petr Pisar 2011-05-11 16:16:56 UTC
Fixed in time-1.7-39.fc16 for F16.

Comment 5 Fedora Update System 2011-05-11 16:27:09 UTC
time-1.7-39.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/time-1.7-39.fc15

Comment 6 Fedora Update System 2011-05-11 16:28:01 UTC
time-1.7-38.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/time-1.7-38.fc14

Comment 7 Fedora Update System 2011-05-11 16:28:16 UTC
time-1.7-38.fc13 has been submitted as an update for Fedora 13.
https://admin.fedoraproject.org/updates/time-1.7-38.fc13

Comment 8 Fedora Update System 2011-05-13 23:02:07 UTC
Package time-1.7-38.fc14:
* should fix your issue,
* was pushed to the Fedora 14 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing time-1.7-38.fc14'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/time-1.7-38.fc14
then log in and leave karma (feedback).

Comment 9 Fedora Update System 2011-05-19 04:58:41 UTC
time-1.7-39.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 10 Fedora Update System 2011-05-25 02:28:19 UTC
time-1.7-38.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 11 Fedora Update System 2011-05-25 02:53:48 UTC
time-1.7-38.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.