From: Jan Beulich <jbeulich@suse.com>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: julien@xen.org, sstabellini@kernel.org,
oleksandr_tyshchenko@epam.com, volodymyr_babchuk@epam.com,
Artem_Mygaiev@epam.com, roger.pau@citrix.com,
bertrand.marquis@arm.com, rahul.singh@arm.com,
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 11/11] xen/arm: Process pending vPCI map/unmap operations
Date: Mon, 27 Sep 2021 10:06:16 +0200 [thread overview]
Message-ID: <7bb451e0-9a99-e2b4-a2be-0377de38c0be@suse.com> (raw)
In-Reply-To: <20210923125438.234162-12-andr2000@gmail.com>
+ Paul (retaining full context for this reason)
On 23.09.2021 14:54, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>
> vPCI may map and unmap PCI device memory (BARs) being passed through which
> may take a lot of time. For this those operations may be deferred to be
> performed later, so that they can be safely preempted.
> Run the corresponding vPCI code while switching a vCPU.
>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>
> ---
> Since v1:
> - Moved the check for pending vpci work from the common IOREQ code
> to hvm_do_resume on x86
While perhaps obvious for Arm folks, I'd like to see the reason for this
spelled out in the description.
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -549,6 +549,12 @@ void hvm_do_resume(struct vcpu *v)
> if ( !vcpu_ioreq_handle_completion(v) )
> return;
>
> + if ( has_vpci(v->domain) && vpci_process_pending(v) )
> + {
> + raise_softirq(SCHEDULE_SOFTIRQ);
> + return;
> + }
Note that you're altering behavior here: Originally this was done ...
> @@ -212,19 +210,12 @@ static bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
>
> bool vcpu_ioreq_handle_completion(struct vcpu *v)
> {
> - struct domain *d = v->domain;
> struct vcpu_io *vio = &v->io;
> struct ioreq_server *s;
> struct ioreq_vcpu *sv;
> enum vio_completion completion;
> bool res = true;
>
> - if ( has_vpci(d) && vpci_process_pending(v) )
> - {
> - raise_softirq(SCHEDULE_SOFTIRQ);
> - return false;
> - }
... first thing. And I think it wants (perhaps even needs) to remain
that way; otherwise you'll need to explain why not, and why the change
is correct / safe.
Jan
next prev parent reply other threads:[~2021-09-27 8:06 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-23 12:54 [PATCH v2 00/11] PCI devices passthrough on Arm, part 2 Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 01/11] xen/arm: Fix dev_is_dt macro definition Oleksandr Andrushchenko
2021-09-24 23:39 ` Stefano Stabellini
2021-09-28 7:31 ` Michal Orzel
2021-09-23 12:54 ` [PATCH v2 02/11] xen/arm: Add new device type for PCI Oleksandr Andrushchenko
2021-09-24 23:45 ` Stefano Stabellini
2021-09-27 7:41 ` Jan Beulich
2021-09-27 8:18 ` Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 03/11] xen/arm: Introduce pci_find_host_bridge_node helper Oleksandr Andrushchenko
2021-09-24 23:48 ` Stefano Stabellini
2021-09-23 12:54 ` [PATCH v2 04/11] xen/device-tree: Make dt_find_node_by_phandle global Oleksandr Andrushchenko
2021-09-24 23:51 ` Stefano Stabellini
2021-09-23 12:54 ` [PATCH v2 05/11] xen/arm: Mark device as PCI while creating one Oleksandr Andrushchenko
2021-09-24 23:54 ` Stefano Stabellini
2021-09-27 7:13 ` Oleksandr Andrushchenko
2021-09-27 7:45 ` Jan Beulich
2021-09-27 8:45 ` Oleksandr Andrushchenko
2021-09-27 9:19 ` Jan Beulich
2021-09-27 9:35 ` Oleksandr Andrushchenko
2021-09-27 10:00 ` Jan Beulich
2021-09-27 10:04 ` Oleksandr Andrushchenko
2021-09-27 10:26 ` Jan Beulich
2021-09-28 8:09 ` Oleksandr Andrushchenko
2021-09-28 8:26 ` Jan Beulich
2021-09-28 8:29 ` Oleksandr Andrushchenko
2021-09-28 8:39 ` Jan Beulich
2021-09-28 8:54 ` Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 06/11] xen/domain: Call pci_release_devices() when releasing domain resources Oleksandr Andrushchenko
2021-09-24 23:57 ` Stefano Stabellini
2021-09-23 12:54 ` [PATCH v2 07/11] libxl: Allow removing PCI devices for all types of domains Oleksandr Andrushchenko
2021-09-25 0:00 ` Stefano Stabellini
2021-09-27 7:17 ` Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 08/11] libxl: Only map legacy PCI IRQs if they are supported Oleksandr Andrushchenko
2021-09-25 0:06 ` Stefano Stabellini
2021-09-27 13:02 ` Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 09/11] xen/arm: Setup MMIO range trap handlers for hardware domain Oleksandr Andrushchenko
2021-09-25 0:18 ` Stefano Stabellini
2021-09-27 8:47 ` Oleksandr Andrushchenko
2021-09-23 12:54 ` [PATCH v2 10/11] xen/arm: Do not map PCI ECAM and MMIO space to Domain-0's p2m Oleksandr Andrushchenko
2021-09-25 0:44 ` Stefano Stabellini
2021-09-27 12:44 ` Oleksandr Andrushchenko
2021-09-28 4:00 ` Stefano Stabellini
2021-09-28 4:51 ` Oleksandr Andrushchenko
2021-09-28 14:39 ` Oleksandr Andrushchenko
2021-09-28 16:11 ` Stefano Stabellini
2021-09-23 12:54 ` [PATCH v2 11/11] xen/arm: Process pending vPCI map/unmap operations Oleksandr Andrushchenko
2021-09-25 1:20 ` Stefano Stabellini
2021-09-27 8:06 ` Jan Beulich [this message]
2021-09-27 8:39 ` Oleksandr Andrushchenko
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=7bb451e0-9a99-e2b4-a2be-0377de38c0be@suse.com \
--to=jbeulich@suse.com \
--cc=Artem_Mygaiev@epam.com \
--cc=andr2000@gmail.com \
--cc=bertrand.marquis@arm.com \
--cc=julien@xen.org \
--cc=oleksandr_andrushchenko@epam.com \
--cc=oleksandr_tyshchenko@epam.com \
--cc=rahul.singh@arm.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=volodymyr_babchuk@epam.com \
--cc=xen-devel@lists.xenproject.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).