Re: [PATCH -v4] x86: MCE: Re-implement MCE log ring buffer as per-CPU ring buffer

Andi Kleen
2009-06-04T05:56:17Z

> Re-implement MCE log ring buffer as per-CPU ring buffer for better
> scalability. Basic design is as follow:

Looks good. Thanks.

Acked-by: Andi Kleen <ak@linux.intel.com>

>
> Performance test show that the throughput of per-CPU mcelog buffer can
> reach 430k records/s compared with 5.3k records/s for original
> implementation on a 2-core 2.1GHz Core2 machine.

I should add the main reason to add the patch is less that performance
(normally there shouldn't be that many errors, so it doesn't matter too much),
but that it scales to a larger number of CPUs. The old mce log ring had a fixed
sized buffer that was hard to extend and didn't scale on larger systems,
which could cause overflows and other issues.
Also this fixes a long standing known livelock in the old code where
a very high continuous error rate could livelock the reader.

-Andi