Hi Nick,
Here are the results of the comparisons I said I would do.
no-hyperthreading:http://developer.osdl.org/markw/dbt2-pgsql/282/- metric 2288.43- baseline
hyperthreading:http://developer.osdl.org/markw/dbt2-pgsql/278/- metric 1944.42- 15% throughput decrease
hyperthreading w/ Ingo's C1 patch:http://developer.osdl.org/markw/dbt2-pgsql/277/- metric 1978.39- 13.5% throughput
decrease
hyperthreading w/ Nick's w26 patch:http://developer.osdl.org/markw/dbt2-pgsql/274/- metric 1955.91- 14.5% throughput
decrease
It looks like there is some marginal benefit to your or Ingo's patches
with a workload like DBT-2. I probably don't understand enough about
hyperthreading, but I wonder if there's something PostgreSQL can do to
take advantage of hyperthreading
Anyway, each link has pointers to readprofile and annotated oprofile
assembly output (if you find that useful.) I haven't done enough tests
to have an idea of the error margin, but I wouldn't be surprised if it's
at least 1%.
Let me know if there's anything else you'd like me to try.
Thanks,
Mark