Closed Bug 395819 Opened 17 years ago Closed 17 years ago

organize and update the config files in buildbot-configs/testing/talos/perfmaster

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: anodelman, Assigned: bhearsum)

References

Details

Attachments

(1 file, 6 obsolete files)

Right now we are depending on an ad hoc file name system to differentiate between different types of config files (per platforms, per machine, per talos version).  This is already confusing and will only get worse as we add more different types of machine configurations.

We need to standardize upon a directory structure/filename structure so that we can tell which config is being applied to which machine.
Blocks: 386081
Blocks: 393044
How does this sound:
configs/$PLATFORM/$PAGELOADER/file
where $PLATFORM is 'mac', 'linux', or 'win32' and $PAGELOADER is 'js' or 'chrome'.
So, it would end up like this:
configs/linux/js/config.py
configs/linux/js/sample.config
configs/win32/chrome/config.py
configs/win32/chrome/sample.config
etc.

We also need a place to store scripts that are transferred to the slaves. I propose that we have a slave-scripts/ subdirectory for those.
This is a good start. I'm worried about having differing config files for differently-purposed machines. I guess we could skip the download step for those slave instances, and store a local copy on the talos box. Or spin off a branched config dir, like, configs/win32-trunk-nocairo/ but that could get messy.

we'll likely get into the same issue with slave-scripts and the different platforms.

Maybe an extra midlevel directory to keep track of purpose/platform:

configs/trunk/linux
configs/trunk/win32
...

it's getting deep, but that's consistent with the mozconfig layout in build and the unittest machines.
I knew I was forgetting something (branch/trunk). We do need to keep a distinction between the pageloaders somewhere since the configuration will be different for the two. We could do it one of two ways:
configs/$TREE-$PAGELOADER/$PLATFORM/config.py
etc.
or
configs/$TREE/$PLATFORM/$PAGELOADER-config.py
etc.

Where $TREE could be "1.9" or "1.8". (I think it's important to use numbers rather than names. The slaves report to the graph server with numbers. Also, when we have a 1.9.1 or 2.0 using trunk/branch could get confusing.)
$PLATFORM is linux/mac/win32 and $PAGELOADER is js/chrome.

As for the slave scripts, I don't see that directory getting very big...maybe it's enough to have a subdirectory per platform?

As for things like nocairo...are we planning to put them into CVS? My impression was that they would be relatively short term. Either way, if we want them in CVS we could create a subdirectory of $PLATFORM that describes the purpose. The configs without a subdirectory would be the "default", on-check-in configs.
So, it could look like this:
configs/$TREE/$PLATFORM/$PAGELOADER-config.py
configs/$TREE/$PLATFORM/$PAGELOADER-sample.config
configs/$TREE/$PLATFORM/$PURPOSE/$PAGELOADER-config.py
configs/$TREE/$PLATFORM/$PURPOSE/$PAGELOADER-sample.config
I added "and update" to the title. As part of the organization patch we should merge in the latest changes from the talos tree.
Assignee: nobody → bhearsum
Summary: organize the config files in buildbot-configs/testing/talos/perfmaster/configs → organize and update the config files in buildbot-configs/testing/talos/perfmaster/configs
Status: NEW → ASSIGNED
Are we going to be checking in more experimental style configs?  Say like the ones I've been using to test different amount of cycles through the web page set?  I would assume that these could just live on the buildbot master, but was wondering if that kind of config is being considered for this scheme.
Also - how much pain are we creating for ourselves when the master config file changes?  Or is that just inevitable?
(In reply to comment #5)
> Are we going to be checking in more experimental style configs?  Say like the
> ones I've been using to test different amount of cycles through the web page
> set?

Unless the config is being used on a Talos slave that will be in use for awhile (I don't know what the definition of "awhile" is yet), I don't think there's much point in checking them in. Experimental configs change so much that it's a pain to keep them up to date in CVS. Once something gets to a "stable" state (read: not going to change all the time) it should be checked in.

> I would assume that these could just live on the buildbot master, but was
> wondering if that kind of config is being considered for this scheme.

I think we should have a separate buildmaster for temporary/one-off things (like we do for baselining). The main 'perfmaster' _should_ be kept in line with CVS as much as possible. I think it's a good rule that when something is ready to move to perfmaster it is ready to be checked-in.

(In reply to comment #6)
> Also - how much pain are we creating for ourselves when the master config file
> changes?  Or is that just inevitable?

There's one reference to each config file in the master.cfg. Anytime these files paths/names change the master.cfg needs to be updated. It's a pretty painless thing, actually.
Depends on: 396232
This patch does a few things:
1) Adds the new builders that were moved to perfmaster last week.
2) Makes all builders automatically update themselves to the latest talos on every perf run.
3) Makes all builders use relative paths for filenames
4) Increases the Buildbot timeout for the perf run to 11000 (Talos timeout (10000) + 1000)
5) Removes all existing config.pys and sample.configs and replaces them with two new ones, sample.config.js and sample.config.pageloader that are used with the js framecycler and pageloader respectively.

I want to test this quite a bit before commiting it, some builders (qm-pxp* in paticular) may need a bit of massaging to come to terms with the update.

This shouldn't be commited until both the testing is done and the patch in bug 396232 is committed.
Attachment #281481 - Flags: review?(rcampbell)
Attachment #281481 - Flags: review?(anodelman)
Attached file generate-tpcomponent.py (obsolete) (deleted) —
I couldn't add generate-tpcomponent.py into that patch (cvsdo won't add directories for some reason...) so here it is. It needs to be put in scripts/generate-tpcomponent.py for things to work properly.

This is the same script as the one in bug 396095
Attachment #281487 - Flags: review?(anodelman)
Attached patch same as before, doesn't touch qm-pxp* machines (obsolete) (deleted) — Splinter Review
This version doesn't touch the qm-pxp* machines at all and leaves in the config files (sample.config.win32 and config-win32-pxp.py) that they use.
Attachment #281481 - Attachment is obsolete: true
Attachment #281498 - Flags: review?(rcampbell)
Attachment #281498 - Flags: review?(anodelman)
Attachment #281481 - Flags: review?(rcampbell)
Attachment #281481 - Flags: review?(anodelman)
I should note that this new patch makes me a lot less worried about breaking things when we update perfmaster since all of the machines it affects aren't really considered "production" (ie. they are on MozillaTest/graphs-stage)
Comment on attachment 281498 [details] [diff] [review]
same as before, doesn't touch qm-pxp* machines

only nit is that the s() method for adding buildsteps to factories has been deprecated.
Attachment #281498 - Flags: review?(rcampbell) → review+
Comment on attachment 281487 [details]
generate-tpcomponent.py

I r+ed this in bug 396095, so I consider this one obsolete (I guess).
Attachment #281487 - Attachment is obsolete: true
Attachment #281487 - Flags: review?(anodelman)
Comment on attachment 281498 [details] [diff] [review]
same as before, doesn't touch qm-pxp* machines

Looks like you removed the unix_counters:

+    win_counters : ['Working Set', 'Private Bytes', '% Processor Time']
+    unix_counters : []

You need to have the unix counters present so that the config file will work on mac/linux - the code is written in such a way to ensure that it won't be used on windows machines.

This is for both sample.config.js and sample.config.pageloader
Attachment #281498 - Flags: review?(anodelman) → review-
I removed the s() method of adding BuildSteps in the this version. Additionally, I noticed that I could removed one of the BuildFactorys due to the configuration files being the same. I also removed buildbot.process.step usage from master.cfg and perfrunner.py as it is also deprecated.

I ran this through checkconfig.py and it passed.
Attachment #281498 - Attachment is obsolete: true
Attachment #281517 - Flags: review?(rcampbell)
Attachment #281517 - Flags: review?(anodelman)
Comment on attachment 281517 [details] [diff] [review]
functionally the same as before, avoids deprecated things

Same as comment 15.
Attachment #281517 - Flags: review?(anodelman) → review-
Attachment #281517 - Attachment is obsolete: true
Attachment #281519 - Flags: review?(rcampbell)
Attachment #281519 - Flags: review?(anodelman)
Attachment #281517 - Flags: review?(rcampbell)
Attachment #281519 - Attachment is patch: true
Attachment #281519 - Attachment mime type: application/octet-stream → text/plain
Attached patch same as before, but the right patch (obsolete) (deleted) — Splinter Review
I swear, this one is right.
Attachment #281519 - Attachment is obsolete: true
Attachment #281524 - Flags: review?(rcampbell)
Attachment #281524 - Flags: review?(anodelman)
Attachment #281519 - Flags: review?(rcampbell)
Attachment #281519 - Flags: review?(anodelman)
Comment on attachment 281524 [details] [diff] [review]
same as before, but the right patch

The config files look correct now.
Attachment #281524 - Flags: review?(anodelman) → review+
Depends on: 396955
Depends on: 396986
This patch removes all of the unused scripts and files and supports auto-update Talos. These exact configurations are being used on perfmaster right now. All of the builders are green.
Attachment #281524 - Attachment is obsolete: true
Attachment #282133 - Flags: review?(rcampbell)
Attachment #282133 - Flags: review?(anodelman)
Attachment #281524 - Flags: review?(rcampbell)
Comment on attachment 282133 [details] [diff] [review]
auto-update perfmaster configs, final

The configs look correct to me, and the data collected on graphs-stage.m.o is within normal ranges.
Attachment #282133 - Flags: review?(anodelman) → review+
Comment on attachment 282133 [details] [diff] [review]
auto-update perfmaster configs, final

unecessary trailing commas in lines 72, 83, 94, ...

otherwise it looks fine. 1700 lines is a long patch to review. Hope this is tested.
Attachment #282133 - Flags: review?(rcampbell) → review+
These configs are exactly what's been running on perfmaster since Monday morning.
Summary: organize and update the config files in buildbot-configs/testing/talos/perfmaster/configs → organize and update the config files in buildbot-configs/testing/talos/perfmaster
Checking in master.cfg;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/master.cfg,v  <--  master.cfg
new revision: 1.6; previous revision: 1.5
done
Checking in perfrunner.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/perfrunner.py,v  <--  perfrunner.py
new revision: 1.4; previous revision: 1.3
done
Removing mountdmg.exp;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/mountdmg.exp,v  <--  mountdmg.exp
new revision: delete; previous revision: 1.1
done
Removing configs/config-linux.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/config-linux.py,v  <--  config-linux.py
new revision: delete; previous revision: 1.2
done
Removing configs/config-mac.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/config-mac.py,v  <--  config-mac.py
new revision: delete; previous revision: 1.1
done
Removing configs/config-new-pl.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/config-new-pl.py,v  <--  config-new-pl.py
new revision: delete; previous revision: 1.1
done
Removing configs/config-win32.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/config-win32.py,v  <--  config-win32.py
new revision: delete; previous revision: 1.1
done
Removing configs/hdiutil-expect.ex;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/hdiutil-expect.ex,v  <--  hdiutil-expect.ex
new revision: delete; previous revision: 1.1
done
Removing configs/mountdmg.sh;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/mountdmg.sh,v  <--  mountdmg.sh
new revision: delete; previous revision: 1.1
done
RCS file: /cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.js,v
done
Checking in configs/sample.config.js;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.js,v  <--  sample.config.js
initial revision: 1.1
done
Removing configs/sample.config.linux;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.linux,v  <--  sample.config.linux
new revision: delete; previous revision: 1.2
done
Removing configs/sample.config.mac;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.mac,v  <--  sample.config.mac
new revision: delete; previous revision: 1.1
done
Removing configs/sample.config.newpl.linux;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.newpl.linux,v  <--  sample.config.newpl.linux
new revision: delete; previous revision: 1.1
done
Removing configs/sample.config.newpl.win32;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.newpl.win32,v  <--  sample.config.newpl.win32
new revision: delete; previous revision: 1.2
done
RCS file: /cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.pageloader,v
done
Checking in configs/sample.config.pageloader;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/configs/sample.config.pageloader,v  <--  sample.config.pageloader
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/scripts/generate-tpcomponent.py,v
done
Checking in scripts/generate-tpcomponent.py;
/cvsroot/mozilla/tools/buildbot-configs/testing/talos/perfmaster/scripts/generate-tpcomponent.py,v  <--  generate-tpcomponent.py
initial revision: 1.1
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Mass move of Core:Testing bugs to mozilla.org:ReleaseEngineering. Filter on RelEngMassMove to ignore.
Component: Testing → Release Engineering
Product: Core → mozilla.org
QA Contact: testing → release
Version: Trunk → other
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: