From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"julien@xen.org" <julien@xen.org>,
"sstabellini@kernel.org" <sstabellini@kernel.org>,
Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
Artem Mygaiev <Artem_Mygaiev@epam.com>,
"jbeulich@suse.com" <jbeulich@suse.com>,
Bertrand Marquis <bertrand.marquis@arm.com>,
Rahul Singh <rahul.singh@arm.com>
Subject: Re: [PATCH v3 03/11] vpci/header: Move register assignments from init_bars
Date: Wed, 27 Oct 2021 17:34:49 +0200 [thread overview]
Message-ID: <YXlxmdYdwptakDDK@Air-de-Roger> (raw)
In-Reply-To: <368bf4b5-f9fd-76a6-294e-dbb93a18e73f@epam.com>
On Wed, Oct 27, 2021 at 02:06:40PM +0000, Oleksandr Andrushchenko wrote:
>
>
> On 27.10.21 16:23, Roger Pau Monné wrote:
> > On Wed, Oct 27, 2021 at 11:59:47AM +0000, Oleksandr Andrushchenko wrote:
> >> Hi, Roger!
> >>
> >> On 27.10.21 13:17, Oleksandr Andrushchenko wrote:
> >>> Hi, Roger!
> >>>
> >>> On 13.10.21 16:51, Roger Pau Monné wrote:
> >>>> On Thu, Sep 30, 2021 at 10:52:15AM +0300, Oleksandr Andrushchenko wrote:
> >>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> >>>>>
> >>>>> This is in preparation for dynamic assignment of the vPCI register
> >>>>> handlers depending on the domain: hwdom or guest.
> >>>>> The need for this step is that it is easier to have all related functionality
> >>>>> put at one place. When the subsequent patches add decisions on which
> >>>>> handlers to install, e.g. hwdom or guest handlers, then this is easily
> >>>>> achievable.
> >>>> Won't it be possible to select the handlers to install in init_bars
> >>>> itself?
> >>> It is possible
> >>>> Splitting it like that means you need to iterate over the numbers of
> >>>> BARs twice (one in add_bar_handlers and one in init_bars), which makes
> >>>> it more likely to introduce errors or divergences.
> >>>>
> >>>> Decoupling the filling of vpci_bar data with setting the handlers
> >>>> seems slightly confusing.
> >>> Ok, I won't introduce add_bar_handlers, thus rendering this patch useless.
> >>> I'll drop it and re-work the upcoming patches with this respect
> >> On the other hand after thinking a bit more.
> >> What actually init_bars do?
> >> 1. Runs once per each pdev (__init?)
> >> 2. Sizes the BARs and detects their type, sets up pdev->vpci->header BAR values
> >> 3. Adds register handlers.
> >>
> >> For DomU we only need 3), so we can setup guest handlers.
> > I think you assume that there will always be a hardware domain with
> > vPCI enabled that will get the device assigned and thus init_bars will
> > be executed prior to assigning to a domU.
> Yes, this is the current assumption...
> >
> > But what about dom0less,
> it was decided to put dom0less out of scope for now
> > or when using a classic PV dom0?
> I thought that vPCI is only used for PVH Dom0 and it is enough for now
> (yes, this is a weak argument, but we do not want PCI passthrough on Arm
> to become a never ending game... since 2015...)
I understand that not everything will be supported, that's perfectly
fine, but we should aim to not make supporting those use cases
harder in the future.
> > In that case
> > the device won't get assigned to a hardware domain with vPCI support,
> > so the vpci structure won't be allocated or filled,
> Yes, this is true. But because of the 3 functionflities of the init_bars is
> doing it might still need some dis-aggregation, e.g. BAR sizing
> is not needed and might not be possible while assigning to a DomU.
> So, I think that init_bars will need to be split in any case.
I understand that BAR sizing will not be needed if the structure is
pre-initialized, but I also cannot see why it would be impossible, at
least on x86.
> > and hence
> > init_bars would have to be executed when assigning to a domU.
> Please see above: not sure init_bars can exist in its form to achieve that.
> One of the steps this patch is doing is we split init_bars into
> a) register assignment
> b) all the reset: initial pdev's header initialization, sizing etc.
>
> The same is true for MSI/MSI-X. When we add support for MSI/MSI-X on Arm
> you will see the same: we need to split [1] (this is WIP).
>
> So, I am still convinced that we need add_bar_handlers in some form.
I'm fine to split it if there's a hard requirement, but I'm afraid so
far I'm not convinced it's required. Maybe if you could elaborate on
why BAR sizing might not be possible when assigning to domU I could be
convinced.
Another option might be to just modify init_bars to have slightly
different paths for dom0 vs domU.
Thanks, Roger.
next prev parent reply other threads:[~2021-10-27 15:35 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 7:52 [PATCH v3 00/11] PCI devices passthrough on Arm, part 3 Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 01/11] vpci: Make vpci registers removal a dedicated function Oleksandr Andrushchenko
2021-10-13 11:11 ` Roger Pau Monné
2021-10-27 9:12 ` Oleksandr Andrushchenko
2021-10-27 9:24 ` Roger Pau Monné
2021-10-27 9:41 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 02/11] vpci: Add hooks for PCI device assign/de-assign Oleksandr Andrushchenko
2021-09-30 8:21 ` Jan Beulich
2021-09-30 8:45 ` Oleksandr Andrushchenko
2021-09-30 9:06 ` Jan Beulich
2021-09-30 9:21 ` Oleksandr Andrushchenko
2021-09-30 10:14 ` Jan Beulich
2021-09-30 10:30 ` Oleksandr Andrushchenko
2021-10-13 11:29 ` Roger Pau Monné
2021-10-13 12:47 ` Jan Beulich
2021-10-27 9:53 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 03/11] vpci/header: Move register assignments from init_bars Oleksandr Andrushchenko
2021-10-13 13:51 ` Roger Pau Monné
2021-10-15 6:04 ` Jan Beulich
2021-10-25 14:28 ` Roger Pau Monné
2021-10-27 10:17 ` Oleksandr Andrushchenko
2021-10-27 11:59 ` Oleksandr Andrushchenko
2021-10-27 13:23 ` Roger Pau Monné
2021-10-27 14:06 ` Oleksandr Andrushchenko
2021-10-27 15:34 ` Roger Pau Monné [this message]
2021-09-30 7:52 ` [PATCH v3 04/11] vpci/header: Add and remove register handlers dynamically Oleksandr Andrushchenko
2021-10-01 13:26 ` Jan Beulich
2021-10-04 5:58 ` Oleksandr Andrushchenko
2021-10-07 7:22 ` Jan Beulich
2021-10-13 15:38 ` Roger Pau Monné
2021-10-15 6:09 ` Jan Beulich
2021-10-25 15:48 ` Roger Pau Monné
2021-11-01 9:18 ` Oleksandr Andrushchenko
2021-11-02 10:03 ` Roger Pau Monné
2021-11-02 10:29 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 05/11] vpci/header: Implement guest BAR register handlers Oleksandr Andrushchenko
2021-10-01 13:31 ` Jan Beulich
2021-10-26 7:50 ` Roger Pau Monné
2021-10-26 8:09 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 06/11] vpci/header: Handle p2m range sets per BAR Oleksandr Andrushchenko
2021-10-25 11:51 ` Oleksandr Andrushchenko
2021-10-26 9:40 ` Roger Pau Monné
2021-11-02 11:13 ` Jan Beulich
2021-10-26 9:08 ` Roger Pau Monné
2021-11-02 10:34 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 07/11] vpci/header: program p2m with guest BAR view Oleksandr Andrushchenko
2021-10-01 13:38 ` Jan Beulich
2021-10-04 6:26 ` Oleksandr Andrushchenko
2021-10-26 10:35 ` Roger Pau Monné
2021-11-02 10:43 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 08/11] vpci/header: Emulate PCI_COMMAND register for guests Oleksandr Andrushchenko
2021-10-26 10:52 ` Roger Pau Monné
2021-11-02 10:48 ` Oleksandr Andrushchenko
2021-11-02 11:19 ` Jan Beulich
2021-11-02 11:50 ` Roger Pau Monné
2021-11-02 13:54 ` Jan Beulich
2021-11-02 14:10 ` Oleksandr Andrushchenko
2021-11-03 8:53 ` Oleksandr Andrushchenko
2021-11-03 9:11 ` Jan Beulich
2021-11-03 9:18 ` Oleksandr Andrushchenko
2021-11-03 9:24 ` Jan Beulich
2021-11-03 9:30 ` Oleksandr Andrushchenko
2021-11-03 9:49 ` Jan Beulich
2021-11-03 10:24 ` Oleksandr Andrushchenko
2021-11-03 10:34 ` Jan Beulich
2021-11-03 10:36 ` Oleksandr Andrushchenko
2021-11-03 11:01 ` Roger Pau Monné
2021-11-03 11:02 ` Oleksandr Andrushchenko
2021-11-03 11:26 ` Roger Pau Monné
2021-11-03 11:34 ` Oleksandr Andrushchenko
2021-11-03 9:39 ` Roger Pau Monné
2021-11-03 9:50 ` Oleksandr Andrushchenko
2021-11-02 14:17 ` Julien Grall
2021-09-30 7:52 ` [PATCH v3 09/11] vpci/header: Reset the command register when adding devices Oleksandr Andrushchenko
2021-10-26 11:00 ` Roger Pau Monné
2021-11-02 11:11 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 10/11] vpci: Add initial support for virtual PCI bus topology Oleksandr Andrushchenko
2021-09-30 8:51 ` Jan Beulich
2021-09-30 9:34 ` Oleksandr Andrushchenko
2021-09-30 10:23 ` Jan Beulich
2021-09-30 10:26 ` Oleksandr Andrushchenko
2021-10-26 11:33 ` Roger Pau Monné
2021-11-03 6:34 ` Oleksandr Andrushchenko
2021-11-03 8:41 ` Jan Beulich
2021-11-03 8:57 ` Oleksandr Andrushchenko
2021-11-03 8:52 ` Roger Pau Monné
2021-11-03 8:59 ` Oleksandr Andrushchenko
2021-09-30 7:52 ` [PATCH v3 11/11] xen/arm: Translate virtual PCI bus topology for guests Oleksandr Andrushchenko
2021-09-30 8:53 ` Jan Beulich
2021-09-30 9:35 ` Oleksandr Andrushchenko
2021-09-30 10:25 ` Jan Beulich
2021-09-30 16:57 ` Oleksandr Andrushchenko
2021-10-01 7:42 ` Jan Beulich
2021-10-01 7:57 ` Oleksandr Andrushchenko
2021-10-01 8:12 ` Jan Beulich
2021-10-18 18:32 ` Julien Grall
2021-10-26 13:30 ` Roger Pau Monné
2021-10-26 13:57 ` 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=YXlxmdYdwptakDDK@Air-de-Roger \
--to=roger.pau@citrix.com \
--cc=Artem_Mygaiev@epam.com \
--cc=Oleksandr_Andrushchenko@epam.com \
--cc=Oleksandr_Tyshchenko@epam.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=bertrand.marquis@arm.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=rahul.singh@arm.com \
--cc=sstabellini@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.