From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v8 02/13] vpci: use per-domain PCI lock to protect vpci structure
Date: Mon, 24 Jul 2023 00:07:48 +0000 [thread overview]
Message-ID: <87fs5edve5.fsf@epam.com> (raw)
In-Reply-To: <ZLk7wh39Cc3GdIuB@MacBook-Air-de-Roger.local>
Hi Roger,
Roger Pau Monné <roger.pau@citrix.com> writes:
> On Thu, Jul 20, 2023 at 03:27:29PM +0200, Jan Beulich wrote:
>> On 20.07.2023 13:20, Roger Pau Monné wrote:
>> > On Thu, Jul 20, 2023 at 12:32:31AM +0000, Volodymyr Babchuk wrote:
>> >> @@ -447,8 +476,16 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
>> >>
>> >> /*
>> >> * Find the PCI dev matching the address, which for hwdom also requires
>> >> - * consulting DomXEN. Passthrough everything that's not trapped.
>> >> + * consulting DomXEN. Passthrough everything that's not trapped.
>> >> + * If this is hwdom, we need to hold locks for both domain in case if
>> >> + * modify_bars is called()
>> >
>> > Typo: the () wants to be at the end of modify_bars().
>> >
>> >> */
>> >> + read_lock(&d->pci_lock);
>> >> +
>> >> + /* dom_xen->pci_lock always should be taken second to prevent deadlock */
>> >> + if ( is_hardware_domain(d) )
>> >> + read_lock(&dom_xen->pci_lock);
>> >
>> > For modify_bars() we also want the locks to be in write mode (at least
>> > the hw one), so that the position of the BARs can't be changed while
>> > modify_bars() is iterating over them.
>>
>> Isn't changing of the BARs happening under the vpci lock?
>
> It is.
>
>> Or else I guess
>> I haven't understood the description correctly: My reading so far was
>> that it is only the presence (allocation status / pointer validity) that
>> is protected by this new lock.
>
> Hm, I see, yes. I guess it was a previous patch version that also
> took care of the modify_bars() issue by taking the lock in exclusive
> mode here.
>
> We can always do that later, so forget about that comment (for now).
Are you sure? I'd rather rework the code to use write lock in the
modify_bars(). This is why we began all this journey in the first place.
--
WBR, Volodymyr
next prev parent reply other threads:[~2023-07-24 0:08 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-20 0:32 [PATCH v8 00/13] PCI devices passthrough on Arm, part 3 Volodymyr Babchuk
2023-07-20 0:32 ` [PATCH v8 02/13] vpci: use per-domain PCI lock to protect vpci structure Volodymyr Babchuk
2023-07-20 11:20 ` Roger Pau Monné
2023-07-20 13:27 ` Jan Beulich
2023-07-20 13:50 ` Roger Pau Monné
2023-07-24 0:07 ` Volodymyr Babchuk [this message]
2023-07-24 7:59 ` Roger Pau Monné
2023-07-20 15:53 ` Jan Beulich
2023-07-26 1:17 ` Volodymyr Babchuk
2023-07-26 6:39 ` Jan Beulich
2023-07-26 9:35 ` Roger Pau Monné
2023-07-27 0:56 ` Volodymyr Babchuk
2023-07-27 7:41 ` Jan Beulich
2023-07-27 10:31 ` Volodymyr Babchuk
2023-07-27 11:37 ` Jan Beulich
2023-07-27 15:13 ` Volodymyr Babchuk
2023-07-27 12:42 ` Roger Pau Monné
2023-07-27 12:56 ` Jan Beulich
2023-07-27 14:43 ` Roger Pau Monné
2023-07-28 0:21 ` Volodymyr Babchuk
2023-07-28 13:55 ` Roger Pau Monné
2023-07-20 16:03 ` Jan Beulich
2023-07-20 16:14 ` Roger Pau Monné
2023-07-21 6:02 ` Jan Beulich
2023-07-21 7:43 ` Roger Pau Monné
2023-07-21 8:48 ` Jan Beulich
2023-07-20 16:09 ` Jan Beulich
2023-07-20 0:32 ` [PATCH v8 01/13] pci: introduce per-domain PCI rwlock Volodymyr Babchuk
2023-07-20 9:45 ` Roger Pau Monné
2023-07-20 22:57 ` Volodymyr Babchuk
2023-07-20 15:40 ` Jan Beulich
2023-07-20 23:37 ` Volodymyr Babchuk
2023-07-20 0:32 ` [PATCH v8 03/13] vpci: restrict unhandled read/write operations for guests Volodymyr Babchuk
2023-07-20 11:32 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 04/13] vpci: add hooks for PCI device assign/de-assign Volodymyr Babchuk
2023-07-20 12:36 ` Roger Pau Monné
2023-07-26 1:38 ` Volodymyr Babchuk
2023-07-26 8:42 ` Roger Pau Monné
2023-07-24 9:41 ` Jan Beulich
2023-07-20 0:32 ` [PATCH v8 07/13] vpci/header: handle p2m range sets per BAR Volodymyr Babchuk
2023-07-21 11:49 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 06/13] rangeset: add RANGESETF_no_print flag Volodymyr Babchuk
2023-07-20 0:32 ` [PATCH v8 05/13] vpci/header: implement guest BAR register handlers Volodymyr Babchuk
2023-07-20 16:01 ` Roger Pau Monné
2023-07-21 10:36 ` Rahul Singh
2023-07-21 10:50 ` Jan Beulich
2023-07-21 11:52 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 08/13] vpci/header: program p2m with guest BAR view Volodymyr Babchuk
2023-07-21 13:05 ` Roger Pau Monné
2023-07-24 10:30 ` Jan Beulich
2023-07-24 10:43 ` Jan Beulich
2023-07-24 13:16 ` Roger Pau Monné
2023-07-24 13:31 ` Jan Beulich
2023-07-24 13:42 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 11/13] vpci: add initial support for virtual PCI bus topology Volodymyr Babchuk
2023-07-20 6:50 ` Jan Beulich
2023-07-21 0:43 ` Volodymyr Babchuk
2023-07-21 13:53 ` Roger Pau Monné
2023-07-21 14:00 ` Roger Pau Monné
2023-07-26 21:35 ` Stewart Hildebrand
2023-07-20 0:32 ` [PATCH v8 10/13] vpci/header: reset the command register when adding devices Volodymyr Babchuk
2023-07-21 13:37 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 09/13] vpci/header: emulate PCI_COMMAND register for guests Volodymyr Babchuk
2023-07-21 13:32 ` Roger Pau Monné
2023-07-21 13:40 ` Roger Pau Monné
2023-07-24 11:06 ` Jan Beulich
2023-07-24 11:03 ` Jan Beulich
2023-07-20 0:32 ` [PATCH v8 12/13] xen/arm: translate virtual PCI bus topology " Volodymyr Babchuk
2023-07-20 6:54 ` Jan Beulich
2023-07-21 14:09 ` Roger Pau Monné
2023-07-24 8:02 ` Roger Pau Monné
2023-07-20 0:32 ` [PATCH v8 13/13] xen/arm: account IO handlers for emulated PCI MSI-X Volodymyr Babchuk
2023-07-20 0:41 ` [PATCH v8 00/13] PCI devices passthrough on Arm, part 3 Volodymyr Babchuk
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=87fs5edve5.fsf@epam.com \
--to=volodymyr_babchuk@epam.com \
--cc=Oleksandr_Andrushchenko@epam.com \
--cc=jbeulich@suse.com \
--cc=roger.pau@citrix.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 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.