Re: [PATCHv2 0/6] x86/platform/uv/BAU: UV4 message completion and initialization updates

From: Andrew Banman
Date: Wed Mar 08 2017 - 20:43:44 EST

Hi Ingo and Thomas,

Are these patches acceptable to you? We want to get these upstream as soon as possible, so please send along any more comments you have. If you're annoyed by the format of the emails just let me know and I'll resubmit.

Thank you,


On 2/17/17 4:06 PM, Andrew Banman wrote:
The following patch series adds the necessary functionality to make the BAU
on UV4 operational. The purpose of these patches is to implement the correct
message completion logic on UV4. Also included is a bug fix to add a field
to the INTD payload. This is needed to verify the source of each message.

As of this patch set, the BAU operates without errors and performance tests
show TLB shootdowns take up to 42% less time with the BAU enabled.

The patches are summarized as follows:

(1) Populate a message payload field to verify messages at the destination.
Without this verification, the destination agent triggers a HUB error,
resulting in an NMI.

[PATCH 1/6] x86/platform/uv/BAU: Add uv_bau_version enumerated
[PATCH v2 2/6] x86/platform/uv/BAU: Add payload descriptor qualifier

This bug fix is included at the start of the series to avoid conflicts
in a code path shared by the rest of the series.

(2) Make the wait_completion routine part of the bau_operations interface,
and add a uv4_wait_completion routine to employ new completion logic.

The message completion logic for previous generations relies on software-
defined timeouts that are not implemented on UV4. Without these patches,
the BAU driver on UV4 erroneously identifies a UV2-WAR timeout during
normal operation.

[PATCH 3/6] x86/platform/uv/BAU: Cleanup bau_operations declaration
[PATCH 4/6] x86/platform/uv/BAU: Add status mmr location fields to
[PATCH v2 5/6] x86/platform/uv/BAU: Add wait_completion to
[PATCH v2 6/6] x86/platform/uv/BAU: Implement uv4_wait_completion with

Please see the commit messages for details on the motivation and content of
each patch.

Thank you,

Andrew Banman
HPE, Linux Kernel Engineer