xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien@xen.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: "Oleksandr Tyshchenko" <olekstysh@gmail.com>,
	xen-devel@lists.xenproject.org,
	"Ian Jackson" <iwj@xenproject.org>,
	"Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>,
	"Paul Durrant" <paul@xen.org>, "Jan Beulich" <jbeulich@suse.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>, "Wei Liu" <wl@xen.org>,
	"Julien Grall" <julien.grall@arm.com>,
	"George Dunlap" <george.dunlap@citrix.com>,
	"Jun Nakajima" <jun.nakajima@intel.com>,
	"Kevin Tian" <kevin.tian@intel.com>, "Tim Deegan" <tim@xen.org>,
	"Daniel De Graaf" <dgdegra@tycho.nsa.gov>,
	"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>,
	"Wei Chen" <Wei.Chen@arm.com>, "Kaly Xin" <Kaly.Xin@arm.com>,
	"Artem Mygaiev" <joculator@gmail.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH V5 00/22] IOREQ feature (+ virtio-mmio) on Arm
Date: Thu, 28 Jan 2021 18:21:05 +0000	[thread overview]
Message-ID: <32349c24-dc9b-8c0a-d98e-3fc39eebb9ec@xen.org> (raw)
In-Reply-To: <9d0e2e0a-4409-ee37-636b-a0403e3571fc@xen.org>



On 28/01/2021 18:16, Julien Grall wrote:
> Hi Andrew,
> 
> On 28/01/2021 18:10, Andrew Cooper wrote:
>> On 28/01/2021 17:44, Julien Grall wrote:
>>>
>>>
>>> On 28/01/2021 17:24, Stefano Stabellini wrote:
>>>> On Thu, 28 Jan 2021, Julien Grall wrote:
>>>>> On 25/01/2021 19:08, Oleksandr Tyshchenko wrote:
>>>>>    > Patch series [8] was rebased on recent "staging branch"
>>>>>> (5e31789 tools/ocaml/libs/xb: Do not crash after xenbus is
>>>>>> unmapped) and
>>>>>> tested on
>>>>>> Renesas Salvator-X board + H3 ES3.0 SoC (Arm64) with virtio-mmio disk
>>>>>> backend [9]
>>>>>> running in driver domain and unmodified Linux Guest running on
>>>>>> existing
>>>>>> virtio-blk driver (frontend). No issues were observed. Guest domain
>>>>>> 'reboot/destroy'
>>>>>> use-cases work properly. Patch series was only build-tested on x86.
>>>>>
>>>>> I have done basic testing with a Linux guest on x86 and I didn't
>>>>> spot any
>>>>> regression.
>>>>>
>>>>> Unfortunately, I don't have a Windows VM in hand, so I can't confirm
>>>>> if there
>>>>> is no regression there. Can anyone give a try?
>>>>>
>>>>> On a separate topic, Andrew expressed on IRC some concern to expose 
>>>>> the
>>>>> bufioreq interface to other arch than x86. I will let him explain
>>>>> his view
>>>>> here.
>>>>>
>>>>> Given that IOREQ will be a tech preview on Arm (this implies the
>>>>> interface is
>>>>> not stable) on Arm, I think we can defer the discussion past the
>>>>> freeze.
>>>>
>>>> Yes, I agree that we can defer the discussion.
>>>>
>>>>
>>>>> For now, I would suggest to check if a Device Model is trying to
>>>>> create an
>>>>> IOREQ server with bufioreq is enabled (see ioreq_server_create()).
>>>>> This would
>>>>> not alleviate Andrew's concern, however it would at allow us to
>>>>> judge whether
>>>>> the buffering concept is going to be used on Arm (I can see some use
>>>>> for the
>>>>> Virtio doorbell).
>>>>>
>>>>> What do others think?
>>>>
>>>> Difficult to say. We don't have any uses today but who knows in the
>>>> future.
>>>
>>> I have some ideas, but Andrew so far objects on using the existing
>>> bufioreq interface for good reasons. It is using guest_cmpxchg() which
>>> is really expensive.
>>
>> Worse.  Patch 5 needs to switch cmpxchg() to guest_cmpxchg() to avoid
>> reintroducing XSA-295, but doesn't.
> 
> The memory is only shared with the emulator (we don't allow the legacy 
> interface on Arm). So why do you think it is re-introducing XSA-295?

Just for clarification, the swithc to guest_cmpxchg() is done as part of 
patch #13.

Cheers,

-- 
Julien Grall


  reply	other threads:[~2021-01-28 18:21 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-25 19:08 [PATCH V5 00/22] IOREQ feature (+ virtio-mmio) on Arm Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 01/22] x86/ioreq: Prepare IOREQ feature for making it common Oleksandr Tyshchenko
2021-01-27 16:48   ` Jan Beulich
2021-01-25 19:08 ` [PATCH V5 02/22] x86/ioreq: Add IOREQ_STATUS_* #define-s and update code for moving Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 03/22] x86/ioreq: Provide out-of-line wrapper for the handle_mmio() Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 04/22] xen/ioreq: Make x86's IOREQ feature common Oleksandr Tyshchenko
2021-01-25 23:13   ` Julien Grall
2021-01-25 23:40     ` Oleksandr
2021-01-27 18:43       ` Julien Grall
2021-01-27 20:22         ` Oleksandr
2021-01-27 20:46           ` Stefano Stabellini
2021-01-28 11:01             ` Oleksandr
2021-01-28 11:21               ` Jan Beulich
2021-01-28 12:49                 ` Oleksandr
2021-01-28 17:13                   ` Stefano Stabellini
2021-01-27 16:58   ` Jan Beulich
2021-01-27 20:14     ` Oleksandr
2021-01-28  8:06       ` Jan Beulich
2021-01-28 11:16         ` Oleksandr
2021-01-28 11:24           ` Jan Beulich
2021-01-25 19:08 ` [PATCH V5 05/22] xen/ioreq: Make x86's hvm_ioreq_needs_completion() common Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 06/22] xen/ioreq: Make x86's hvm_mmio_first(last)_byte() common Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 07/22] xen/ioreq: Make x86's hvm_ioreq_(page/vcpu/server) structs common Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 08/22] xen/ioreq: Move x86's ioreq_server to struct domain Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 09/22] xen/ioreq: Make x86's IOREQ related dm-op handling common Oleksandr Tyshchenko
2021-01-26 13:31   ` Paul Durrant
2021-01-28 10:52   ` Jan Beulich
2021-01-28 12:06     ` Oleksandr
2021-01-28 13:18       ` Jan Beulich
2021-01-28 20:01         ` Oleksandr
2021-01-25 19:08 ` [PATCH V5 10/22] xen/ioreq: Move x86's io_completion/io_req fields to struct vcpu Oleksandr Tyshchenko
2021-01-28 13:41   ` Julien Grall
2021-01-28 13:53     ` Jan Beulich
2021-01-28 14:21       ` Julien Grall
2021-01-28 14:36         ` Jan Beulich
2021-01-28 14:49           ` Andrew Cooper
2021-01-28 14:51           ` Ian Jackson
2021-01-28 14:54             ` Jan Beulich
2021-01-28 16:15               ` Andrew Cooper
2021-01-28 15:01           ` Julien Grall
2021-01-28 14:05     ` Oleksandr
2021-01-25 19:08 ` [PATCH V5 11/22] xen/mm: Make x86's XENMEM_resource_ioreq_server handling common Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 12/22] xen/ioreq: Remove "hvm" prefixes from involved function names Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 13/22] xen/ioreq: Use guest_cmpxchg64() instead of cmpxchg() Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 14/22] arm/ioreq: Introduce arch specific bits for IOREQ/DM features Oleksandr Tyshchenko
2021-01-25 20:19   ` Stefano Stabellini
2021-01-26  9:15   ` Jan Beulich
2021-01-27  9:54     ` Oleksandr
2021-01-27 10:15       ` Jan Beulich
2021-01-27 17:01     ` Julien Grall
2021-01-27 17:04       ` Jan Beulich
2021-01-27 18:33   ` Julien Grall
2021-01-27 19:20     ` Oleksandr
2021-01-28  9:40       ` Julien Grall
2021-01-28 11:33         ` Oleksandr
2021-01-28 13:39           ` Oleksandr
2021-01-28 14:29             ` Oleksandr
2021-01-28 14:41               ` Julien Grall
2021-01-28 14:52                 ` Oleksandr
2021-01-28 15:08                   ` Julien Grall
2021-01-28 17:50                     ` Oleksandr
2021-01-25 19:08 ` [PATCH V5 15/22] xen/arm: Call vcpu_ioreq_handle_completion() in check_for_vcpu_work() Oleksandr Tyshchenko
2021-01-27 14:49   ` Julien Grall
2021-01-27 15:56     ` Oleksandr
2021-01-27 20:34       ` Stefano Stabellini
2021-01-25 19:08 ` [PATCH V5 16/22] xen/mm: Handle properly reference in set_foreign_p2m_entry() on Arm Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 17/22] xen/ioreq: Introduce domain_has_ioreq_server() Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 18/22] xen/dm: Introduce xendevicemodel_set_irq_level DM op Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 19/22] xen/arm: io: Abstract sign-extension Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 20/22] xen/arm: io: Harden sign extension check Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 21/22] xen/ioreq: Make x86's send_invalidate_req() common Oleksandr Tyshchenko
2021-01-25 19:08 ` [PATCH V5 22/22] xen/arm: Add mapcache invalidation handling Oleksandr Tyshchenko
2021-01-28  9:55   ` Julien Grall
2021-01-28 13:12     ` Oleksandr
2021-01-27 16:43 ` [PATCH V5 00/22] IOREQ feature (+ virtio-mmio) on Arm Julien Grall
2021-01-27 16:50   ` Oleksandr
2021-01-27 17:33     ` Julien Grall
2021-01-27 17:37       ` Oleksandr
2021-01-27 17:42         ` Julien Grall
2021-01-27 17:45           ` Oleksandr
2021-01-28 14:37             ` Oleksandr
2021-01-28 15:14               ` Julien Grall
2021-01-28 17:55                 ` Oleksandr
2021-01-28 16:11 ` Julien Grall
2021-01-28 17:24   ` Stefano Stabellini
2021-01-28 17:44     ` Julien Grall
2021-01-28 18:10       ` Andrew Cooper
2021-01-28 18:16         ` Julien Grall
2021-01-28 18:21           ` Julien Grall [this message]
2021-01-28 20:10           ` Andrew Cooper
2021-01-28 21:19             ` Julien Grall
2021-01-28 19:44         ` Oleksandr
2021-01-29  1:15           ` Oleksandr
     [not found] <161160798888.13183.15031685460985886988@c667a6b167f6>
2021-01-25 20:56 ` Stefano Stabellini
2021-01-25 23:20   ` Julien Grall
2021-01-26  0:14     ` Oleksandr
2021-01-27 10:13       ` Oleksandr
2021-01-27 10:51         ` Jan Beulich
2021-01-27 11:15           ` Oleksandr
2021-01-27 11:22             ` Jan Beulich
2021-01-27 11:29               ` Oleksandr
2021-01-27 15:29           ` Julien Grall
2021-01-27 15:46             ` Jan Beulich

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=32349c24-dc9b-8c0a-d98e-3fc39eebb9ec@xen.org \
    --to=julien@xen.org \
    --cc=Kaly.Xin@arm.com \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=Wei.Chen@arm.com \
    --cc=alex.bennee@linaro.org \
    --cc=andrew.cooper3@citrix.com \
    --cc=bertrand.marquis@arm.com \
    --cc=dgdegra@tycho.nsa.gov \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=joculator@gmail.com \
    --cc=julien.grall@arm.com \
    --cc=jun.nakajima@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=oleksandr_tyshchenko@epam.com \
    --cc=olekstysh@gmail.com \
    --cc=paul@xen.org \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=tim@xen.org \
    --cc=wl@xen.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 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).