Hi, sorry for the delayed reply, I suck at prioritizing things.
Re: Thomas Munro > OK let me CC Christoph and ask the question this way: hypothetically, > if RHEL users' PostgreSQL packages became automatically faster than > Debian users' packages because of default -march choice in the > toolchain, what would the Debian project think about that, and what > should we do about it? The options discussed so far were: > > 1. Consider a community apt repo that is identical to the one except > targeting the higher microarch levels, that users can point a machine > to if they want to. There are sub-variations of that: Don't use -march in Debian for strict baseline compatiblity, but use -march=something in apt.postgresql.org; bump to -march=x86-64-v2 for the server build (but not libpq and psql) saying that PG servers need better hardware; ... I'd rather want to avoid adding yet another axis to the matrix we target on apt.postgresql.org, it's already complex enough. So ideally there should be only one server-build. Or if we decide it's worth to have several, extension builds should still be compatible with either. > 2. Various ideas for shipping multiple versions of the code at a > higher granularity than we're doing to day (a callback for a single > instruction! the opposite extreme being the whole executable + > libraries), probably using some of techniques mentioned at > https://wiki.debian.org/InstructionSelection. I don't have enough experience with that to say anything about the trade-offs, or if the online instruction selectors themselves add too much overhead. Not to mention that testing things against all instruction variants is probably next to impossible in practice. > I would guess that 1 is about 100x easier but I haven't looked into it. Are there any numbers about what kind of speedup we could expect? If the online selection isn't feasible/worthwhile, I'd be willing to bump the baseline for the server packages. There are already packages doing that, and there's even infrastructure in the "isa-support" package that lets packages declare a dependency on CPU features. Or Debian might just bump the baseline. PostgreSQL asking for it might just be the reason we wanted to hear to make it happen. Christoph