From: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
To: Ian Munsie <imunsie@au1.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>, mikey <mikey@neuling.org>,
linuxppc-dev@lists.ozlabs.org,
Frederic Barrat <frederic.barrat@fr.ibm.com>,
Huy Nguyen <huyn@mellanox.com>
Subject: Re: [PATCH 1/2] cxl: Fix bug where AFU disable operation had no effect
Date: Thu, 30 Jun 2016 16:19:54 +0200 [thread overview]
Message-ID: <57752A8A.1020501@linux.vnet.ibm.com> (raw)
In-Reply-To: <1467226286-28547-1-git-send-email-imunsie@au.ibm.com>
Hi Ian,
> -static int afu_control(struct cxl_afu *afu, u64 command,
> +static int afu_control(struct cxl_afu *afu, u64 command, u64 clear,
> u64 result, u64 mask, bool enabled)
I'm not a big fan of the new "clear" argument, which forces us to pass
an extra 0 most of the time. Why not always clearing the "action" bits
of the register before applying the command? They are mutually
exclusive, so it should work. I.e. :
+ AFU_Cntl = cxl_p2n_read(afu, CXL_AFU_Cntl_An);
+ AFU_Cntl &= ~(CXL_AFU_Cntl_An_E | CXL_AFU_Cntl_An_RA);
+ AFU_Cntl |= command;
> @@ -595,7 +597,16 @@ static int deactivate_afu_directed(struct cxl_afu *afu)
> cxl_sysfs_afu_m_remove(afu);
> cxl_chardev_afu_remove(afu);
>
> - cxl_ops->afu_reset(afu);
> + if (afu->adapter->native->sl_ops->needs_reset_before_disable) {
> + /*
> + * XXX: We may be able to do away with this entirely - it is
> + * possible that this was only ever needed due to a bug where
> + * the disable operation did not clear the enable bit, however
> + * I will only consider dropping this after more regression
> + * testing on earlier PSL images.
> + */
> + cxl_ops->afu_reset(afu);
> + }
> cxl_afu_disable(afu);
> cxl_psl_purge(afu);
>
> @@ -735,7 +746,16 @@ static int native_attach_process(struct cxl_context *ctx, bool kernel,
>
> static inline int detach_process_native_dedicated(struct cxl_context *ctx)
> {
> - cxl_ops->afu_reset(ctx->afu);
> + if (ctx->afu->adapter->native->sl_ops->needs_reset_before_disable) {
> + /*
> + * XXX: We may be able to do away with this entirely - it is
> + * possible that this was only ever needed due to a bug where
> + * the disable operation did not clear the enable bit, however
> + * I will only consider dropping this after more regression
> + * testing on earlier PSL images.
> + */
> + cxl_ops->afu_reset(ctx->afu);
> + }
For dedicated mode, the CAIA recommends an explicit reset of the AFU
(section 2.1.1).
For directed mode, CAIA says it's AFU-specific. So for xsl, we only
disable the afu and purge the xsl. Are we getting rid of the reset
because it's useless in that environment, or because it times out? If
just because of timeout, would it make sense to switch the order and
disable first, then reset? I don't see any afu-reset on the next activation.
Fred
next prev parent reply other threads:[~2016-06-30 14:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-29 18:51 [PATCH 1/2] cxl: Fix bug where AFU disable operation had no effect Ian Munsie
2016-06-29 18:51 ` [PATCH 2/2] cxl: Workaround XSL bug that does not clear the RA bit after a reset Ian Munsie
2016-06-30 11:05 ` Frederic Barrat
2016-07-11 10:19 ` [2/2] " Michael Ellerman
2016-06-30 14:19 ` Frederic Barrat [this message]
2016-06-30 15:32 ` [PATCH 1/2] cxl: Fix bug where AFU disable operation had no effect Ian Munsie
2016-06-30 15:50 ` Frederic Barrat
2016-06-30 16:45 ` Ian Munsie
2016-06-30 16:50 ` [PATCH v2] " Ian Munsie
2016-07-01 8:09 ` Frederic Barrat
2016-07-11 10:19 ` [v2] " Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57752A8A.1020501@linux.vnet.ibm.com \
--to=fbarrat@linux.vnet.ibm.com \
--cc=frederic.barrat@fr.ibm.com \
--cc=huyn@mellanox.com \
--cc=imunsie@au1.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--cc=mpe@ellerman.id.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).