Closed Bug 913244 Opened 12 years ago Closed 12 years ago

Failed xperf tests should upload .etl file

Categories

(Testing :: Talos, defect)

x86
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bugzilla, Assigned: jmaher)

References

Details

Attachments

(2 files, 2 obsolete files)

In cases such as bug 910759, we might see intermittent xperf failures that are triggered by run-time dynamic linking (including delay loading) or other variations in run-time behavior. Providing the .etl file would be beneficial because we could use that to perform further analysis. Once 749421 lands we need to do two things: 1) Ensure that xperf is configured to collect stack traces (this will probably require us to fork off some additional bugs to set all of this up); and 2) Implement uploading of the .etl file that was generated by xperf.
what do we need to do to collect stack traces? we could start working on that now until the upload stuff is ready to use.
All 64-bit Windows machines that run xperf need to have the DisablePagingExecutive registry setting as outlined in https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_Xperf. I'm not sure if this has already been done or not. The other part is just a change in the command line that we use to invoke xperf.
Depends on: 916108
once we have DisablePagingExecutive done, we can adjust our xperf cli and then start the work on MOZ_UPLOAD_FILE from the harness.
since DisablePagingExecutive is already being rolled out, lets figure out the xperf cli that we need. Would it be -a stack: http://msdn.microsoft.com/en-us/library/windows/desktop/hh162973.aspx then we need to sort out the specific details and I could test them on try server.
Specific probes need to be selected for stack trace coverage. I'll make a patch with the changes.
Looks like we already supported this, I just needed to make some additions to the list of probes that we want stacks for.
Attachment #804626 - Flags: review?(jmaher)
Comment on attachment 804626 [details] [diff] [review] stackwalk config change Review of attachment 804626 [details] [diff] [review]: ----------------------------------------------------------------- umm, this was too easy. Let me push this to try and see if it all works out well.
Attachment #804626 - Flags: review?(jmaher) → review+
tested on try server, all is well: https://hg.mozilla.org/build/talos/rev/ebb3e09205f5 next steps are to do the MOZ_UPLOAD_FILE work (which is only available on cedar right now).
Blocks: 917342
We want to upload a test.etl file (which is a summary etl of the user and kernel traces captured). it was mentioned that making a .zip file would compress this well. As it stands, I am testing uploading a .etl file from Try server via the blobber toolchain. Once that is finalized, I can post a patch to review and roll out.
saw this working on try server.
Assignee: nobody → jmaher
Status: NEW → ASSIGNED
Attachment #8333841 - Flags: review?(jhammel)
Comment on attachment 8333841 [details] [diff] [review] upload xperf .etl files to blobber (1.0) Review of attachment 8333841 [details] [diff] [review]: ----------------------------------------------------------------- So this patch confuses me. I don't understand how it is supposed to solve the bug. So r-, although I could just be missing the obvious ::: talos/ttest.py @@ +366,4 @@ > if test_config['setup']: > # Generate bcontroller.yml for xperf > utils.GenerateTalosConfig(command_args, browser_config, test_config) > + setup = talosProcess.talosProcess(['python'] + test_config['setup'].split(), env=os.environ.copy()) This is already the default in http://hg.mozilla.org/build/talos/file/55fd35f46f08/talos/talosProcess.py#l18 (unless the environment is changing before this function call? if so, please add a comment). @@ +390,4 @@ > if test_config['cleanup']: > #HACK: add the pid to support xperf where we require the pid in post processing > utils.GenerateTalosConfig(command_args, browser_config, test_config, pid=self.pid) > + cleanup = talosProcess.talosProcess(['python'] + test_config['cleanup'].split(), env=os.environ.copy()) As above ::: talos/xtalos/etlparser.py @@ +394,5 @@ > errorFile.close() > > + mud = os.environ.get('MOZ_UPLOAD_DIR', None) > + if mud: > + mud_filename = os.path.join(mud, etl_filename) So you set a variable and don't use it? I don't understand
Attachment #8333841 - Flags: review?(jhammel) → review-
forgot the os.rename
Attachment #8333841 - Attachment is obsolete: true
Attachment #8333955 - Flags: review?(jhammel)
Comment on attachment 8333955 [details] [diff] [review] upload xperf .etl files to blobber (1.1) Review of attachment 8333955 [details] [diff] [review]: ----------------------------------------------------------------- > > if test_config['setup']: > > # Generate bcontroller.yml for xperf > > utils.GenerateTalosConfig(command_args, > browser_config, test_config) > > + setup = > talosProcess.talosProcess(['python'] + > test_config['setup'].split(), env=os.environ.copy()) > This is already the default in http://hg.mozilla.org/build/talos/fi > le/55fd35f46f08/talos/talosProcess.py#l18 (unless the environment > is changing before this function call? if so, please add a > comment). For the talosProcess instantiation, this still applies.
Attachment #8333955 - Flags: review?(jhammel) → review-
3rd times a charm?
Attachment #8333955 - Attachment is obsolete: true
Attachment #8333971 - Flags: review?(jhammel)
Comment on attachment 8333971 [details] [diff] [review] move .etl file to upload directory if we fail (2.0) Review of attachment 8333971 [details] [diff] [review]: ----------------------------------------------------------------- looks great, thanks!
Attachment #8333971 - Flags: review?(jhammel) → review+
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: