linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: broonie@kernel.org
To: Vinod Koul <vkoul@kernel.org>
Cc: Dave Jiang <dave.jiang@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: linux-next: manual merge of the dmaengine tree with the dmaengine-fixes tree
Date: Tue, 14 Dec 2021 17:24:37 +0000	[thread overview]
Message-ID: <20211214172437.1552740-1-broonie@kernel.org> (raw)

Hi all,

Today's linux-next merge of the dmaengine tree got a conflict in:

  drivers/dma/idxd/submit.c

between commit:

  8affd8a4b5ce3 ("dmaengine: idxd: fix missed completion on abort path")

from the dmaengine-fixes tree and commit:

  5d78abb6fbc97 ("dmaengine: idxd: rework descriptor free path on failure")

from the dmaengine tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc drivers/dma/idxd/submit.c
index 83452fbbb168b,569815a84e95b..0000000000000
--- a/drivers/dma/idxd/submit.c
+++ b/drivers/dma/idxd/submit.c
@@@ -134,20 -120,32 +125,43 @@@ static void llist_abort_desc(struct idx
  	spin_unlock(&ie->list_lock);
  
  	if (found)
- 		complete_desc(found, IDXD_COMPLETE_ABORT);
+ 		idxd_dma_complete_txd(found, IDXD_COMPLETE_ABORT, false);
 +
 +	/*
- 	 * complete_desc() will return desc to allocator and the desc can be
- 	 * acquired by a different process and the desc->list can be modified.
- 	 * Delete desc from list so the list trasversing does not get corrupted
- 	 * by the other process.
++	 * completing the descriptor will return desc to allocator and
++	 * the desc can be acquired by a different process and the
++	 * desc->list can be modified.  Delete desc from list so the
++	 * list trasversing does not get corrupted by the other process.
 +	 */
 +	list_for_each_entry_safe(d, t, &flist, list) {
 +		list_del_init(&d->list);
- 		complete_desc(d, IDXD_COMPLETE_NORMAL);
++		idxd_dma_complete_txd(d, IDXD_COMPLETE_NORMAL, false);
 +	}
  }
  
+ /*
+  * ENQCMDS typically fail when the WQ is inactive or busy. On host submission, the driver
+  * has better control of number of descriptors being submitted to a shared wq by limiting
+  * the number of driver allocated descriptors to the wq size. However, when the swq is
+  * exported to a guest kernel, it may be shared with multiple guest kernels. This means
+  * the likelihood of getting busy returned on the swq when submitting goes significantly up.
+  * Having a tunable retry mechanism allows the driver to keep trying for a bit before giving
+  * up. The sysfs knob can be tuned by the system administrator.
+  */
+ int idxd_enqcmds(struct idxd_wq *wq, void __iomem *portal, const void *desc)
+ {
+ 	int rc, retries = 0;
+ 
+ 	do {
+ 		rc = enqcmds(portal, desc);
+ 		if (rc == 0)
+ 			break;
+ 		cpu_relax();
+ 	} while (retries++ < wq->enqcmds_retries);
+ 
+ 	return rc;
+ }
+ 
  int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc)
  {
  	struct idxd_device *idxd = wq->idxd;

             reply	other threads:[~2021-12-14 17:24 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-14 17:24 broonie [this message]
2021-12-28  9:09 ` linux-next: manual merge of the dmaengine tree with the dmaengine-fixes tree Geert Uytterhoeven
2021-12-28 14:54   ` Jiang, Dave
2022-01-04 21:41   ` Dave Jiang
2022-01-04 23:04     ` Stephen Rothwell
2022-01-05  7:19       ` Vinod Koul
2022-01-06 23:18         ` Dave Jiang
  -- strict thread matches above, loose matches on Subject: below --
2022-04-12  2:42 Stephen Rothwell
2022-04-12 11:16 ` Vinod Koul
2021-07-15  1:40 Stephen Rothwell
2020-11-19  3:29 Stephen Rothwell
2020-12-14 19:58 ` Stephen Rothwell
2020-12-15  4:33   ` Vinod Koul
2020-07-06  3:56 Stephen Rothwell
2020-07-06  4:23 ` Dave Jiang
2020-07-06  4:41   ` Vinod Koul
2020-07-06  6:03     ` Stephen Rothwell

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=20211214172437.1552740-1-broonie@kernel.org \
    --to=broonie@kernel.org \
    --cc=dave.jiang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=vkoul@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).