[PATCH v2] cxl: Prevent adapter reset if an active context exists

Andrew Donnellan andrew.donnellan at au1.ibm.com
Thu Oct 13 14:00:40 AEDT 2016


On 12/10/16 15:17, Vaibhav Jain wrote:
> This patch prevents resetting the cxl adapter via sysfs in presence of
> one or more active cxl_context on it. This protects against an
> unrecoverable error caused by PSL owning a dirty cache line even after
> reset and host tries to touch the same cache line. In case a force reset
> of the card is required irrespective of any active contexts, the int
> value -1 can be stored in the 'reset' sysfs attribute of the card.
>
> The patch introduces a new atomic_t member named contexts_num inside
> struct cxl that holds the number of active context attached to the card
> , which is checked against '0' before proceeding with the reset. To
> prevent against a race condition where a context is activated just after
> reset check is performed, the contexts_num is atomically set to '-1'
> after reset-check to indicate that no more contexts can be activated on
> the card anymore.
>
> Before activating a context we atomically test if contexts_num is
> non-negative and if so, increment its value by one. In case the value of
> contexts_num is negative then it indicates that the card is about to be
> reset and context activation is error-ed out at that point.
>
> Signed-off-by: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>

All the changes look good to me.

Reviewed-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>

> diff --git a/Documentation/ABI/testing/sysfs-class-cxl b/Documentation/ABI/testing/sysfs-class-cxl
> index 4ba0a2a..dae2b38 100644
> --- a/Documentation/ABI/testing/sysfs-class-cxl
> +++ b/Documentation/ABI/testing/sysfs-class-cxl
> @@ -220,8 +220,11 @@ What:           /sys/class/cxl/<card>/reset
>  Date:           October 2014
>  Contact:        linuxppc-dev at lists.ozlabs.org
>  Description:    write only
> -                Writing 1 will issue a PERST to card which may cause the card
> -                to reload the FPGA depending on load_image_on_perst.
> +                Writing 1 will issue a PERST to card provided there are no
> +		contexts active on any one of the card AFUs. This may cause
> +		the card to reload the FPGA depending on load_image_on_perst.
> +		Writing -1 will do a force PERST irrespective of any active
> +		contexts on the card AFUs.

Ugh, spaces vs tabs bites again :(

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com  IBM Australia Limited



More information about the Linuxppc-dev mailing list