header generation is too slow
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lsb |
In Progress
|
Medium
|
Unassigned | ||
Mandriva |
In Progress
|
Medium
|
Bug Description
This is an old complaint, but it's gotten worse again since the last round of
progress.
When generating headers (build_env/headers) from the database, a lof of work
happens. At this writing there are 854 distinct headers and 41136 defs files.
For each generated file, the mkheader or mkdatadef script is run, the result is
then passed through two more processes, indent to reformat and
collapse_ifdefs.pl to, well, collapse ifdefs.
At least one popular distribution (Fedora) has made some sort of change so that
the cost of this is very high, the exact reason has not been diagnosed. It
could be a process startup cost, so the 120,000+ processes kicked off just
takes too long, or it could be the cost of establishing a connection to a mysql
database, which happens 40,000 times. In any case, a full regeneration on this
platform (any Fedora since F14) has stretched out to where it's approaching two
hours.
I don't have any great proposals because this work is complex. Is it possible
to arrange a single database connection per file, and generate all the variants
from the collected data? (1 header, plus six versions times seven
architectures of .defs)
It's okay to conclude there's nothing economically sensible we can do about
this, but wanted to record the problem.
Changed in mandriva: | |
importance: | Unknown → Medium |
status: | Unknown → In Progress |