From: Thomas Falcon <tlfalcon@linux.ibm.com>
To: Juliet Kim <julietk@linux.vnet.ibm.com>, netdev@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH net] ibmvnic: Fall back to 16 H_SEND_SUB_CRQ_INDIRECT entries with old FW
Date: Tue, 28 Apr 2020 10:35:09 -0500 [thread overview]
Message-ID: <8617ba73-8a05-51c4-e52b-164687cecf07@linux.ibm.com> (raw)
In-Reply-To: <20200427173343.16626-1-julietk@linux.vnet.ibm.com>
On 4/27/20 12:33 PM, Juliet Kim wrote:
> The maximum entries for H_SEND_SUB_CRQ_INDIRECT has increased on
> some platforms from 16 to 128. If Live Partition Mobility is used
> to migrate a running OS image from a newer source platform to an
> older target platform, then H_SEND_SUB_CRQ_INDIRECT will fail with
> H_PARAMETER if 128 entries are queued.
>
> Fix this by falling back to 16 entries if H_PARAMETER is returned
> from the hcall().
Thanks for the submission, but I am having a hard time believing that
this is what is happening since the driver does not support sending
multiple frames per hypervisor call at this time. Even if it were the
case, this approach would omit frame data needed by the VF, so the
second attempt may still fail. Are there system logs available that show
the driver is attempting to send transmissions with greater than 16
descriptors?
Thanks,
Tom
>
> Signed-off-by: Juliet Kim <julietk@linux.vnet.ibm.com>
> ---
> drivers/net/ethernet/ibm/ibmvnic.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
> index 4bd33245bad6..b66c2f26a427 100644
> --- a/drivers/net/ethernet/ibm/ibmvnic.c
> +++ b/drivers/net/ethernet/ibm/ibmvnic.c
> @@ -1656,6 +1656,17 @@ static netdev_tx_t ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev)
> lpar_rc = send_subcrq_indirect(adapter, handle_array[queue_num],
> (u64)tx_buff->indir_dma,
> (u64)num_entries);
> +
> + /* Old firmware accepts max 16 num_entries */
> + if (lpar_rc == H_PARAMETER && num_entries > 16) {
> + tx_crq.v1.n_crq_elem = 16;
> + tx_buff->num_entries = 16;
> + lpar_rc = send_subcrq_indirect(adapter,
> + handle_array[queue_num],
> + (u64)tx_buff->indir_dma,
> + 16);
> + }
> +
> dma_unmap_single(dev, tx_buff->indir_dma,
> sizeof(tx_buff->indir_arr), DMA_TO_DEVICE);
> } else {
next prev parent reply other threads:[~2020-04-28 15:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-27 17:33 [PATCH net] ibmvnic: Fall back to 16 H_SEND_SUB_CRQ_INDIRECT entries with old FW Juliet Kim
2020-04-28 15:35 ` Thomas Falcon [this message]
2020-04-28 22:29 ` Juliet Kim
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=8617ba73-8a05-51c4-e52b-164687cecf07@linux.ibm.com \
--to=tlfalcon@linux.ibm.com \
--cc=julietk@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=netdev@vger.kernel.org \
/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).