[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 12/12] swiotlb-xen: this is PV-only on x86


  • To: Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 13 Sep 2021 09:51:01 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=pr9NsquezdntMofNXZDBaoS0vQXjzZVpzsSAdnW8nHY=; b=VyzSpuFavPXiofaPaQTAm2I0AYATwVHcfIk024mlV44lOH3iOiz5gOAUE2KZCRYF/tljyI7aF7vXmWdzdq+v5z83Bzw+4B75wVKNNaq9bo8dCmQ6swez/UGJeklZFMsorKHHHcIVh6hI1eve1fXhS1b7QScK9XM4p6lWOHT/E4ZiCV70kQQVpp+oAKYb01V6tkwwBmoxdzgs8U4+xzzGVFjtbogiSFL7juDyGUFrJQFG7Qrx+1e2s0tNvwjcD8JUjPnYBgQlCVEqA5AfzRuAEzd3GKzC6GaD0S4uAKFfDnSZ6vJvmQlK70sl2ypIC9pJivu3t0lwpaflIMAy1BuDlA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k1bb3SPEaSiGZXT90apSKba+yGZHwzQ3H6XtkXaaRYppbCwlOxn+TFQCHjYTgtBNsDYdqEBDluIXP3PjRzNFYhw4gbURqaJi+MKfVD1b5m1pyFrcL04hZxB6dRk9m2r33zQxRbLGQr8W7HFeD0xlV6qO2fjux82If7Urybzm18k0CCIkn2eFYaeApPDY+qv2OLifinUrW/tpxYvuvU8EAFYss7zBTvy6lUmNieoBBgDTC3ifu7gmrBBAgz4BFyqP3Xn0FXXwKW2Wyibmb+DrdqzR1xgK/l2X1adfii6+Rz6f2eboa4Ckc05Gi/whzOUzwXAlfhMuM6UKffawLDSDZw==
  • Authentication-results: infradead.org; dkim=none (message not signed) header.d=none;infradead.org; dmarc=none action=none header.from=suse.com;
  • Cc: Juergen Gross <jgross@xxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, lkml <linux-kernel@xxxxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, the arch/x86 maintainers <x86@xxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>
  • Delivery-date: Mon, 13 Sep 2021 07:51:13 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 11.09.2021 01:48, Stefano Stabellini wrote:
> On Wed, 8 Sep 2021, Christoph Hellwig wrote:
>> On Tue, Sep 07, 2021 at 02:13:21PM +0200, Jan Beulich wrote:
>>> The code is unreachable for HVM or PVH, and it also makes little sense
>>> in auto-translated environments. On Arm, with
>>> xen_{create,destroy}_contiguous_region() both being stubs, I have a hard
>>> time seeing what good the Xen specific variant does - the generic one
>>> ought to be fine for all purposes there. Still Arm code explicitly
>>> references symbols here, so the code will continue to be included there.
>>
>> Can the Xen/arm folks look into that?  Getting ARM out of using
>> swiotlb-xen would be a huge step forward cleaning up some DMA APIs.
> 
> On ARM swiotlb-xen is used for a different purpose compared to x86.
> 
> Many ARM SoCs still don't have an IOMMU covering all DMA-mastering
> devices (e.g. Raspberry Pi 4). As a consequence we map Dom0 1:1 (guest
> physical == physical address).
> 
> Now if it was just for Dom0, thanks to the 1:1 mapping, we wouldn't need
> swiotlb-xen. But when we start using PV drivers to share the network or
> disk between Dom0 and DomU we are going to get DomU pages mapped in
> Dom0, we call them "foreign pages".  They are not mapped 1:1. It can
> happen that one of these foreign pages are used for DMA operations
> (e.g. related to the NIC). swiotlb-xen is used to detect these
> situations and translate the guest physical address to physical address
> of foreign pages appropriately.

Thinking about this some more - if Dom0 is 1:1 mapped, why don't you
map foreign pages 1:1 as well then?

>>> Instead of making PCI_XEN's "select" conditional, simply drop it -
>>> SWIOTLB_XEN will be available unconditionally in the PV case anyway, and
>>> is - as explained above - dead code in non-PV environments.
>>>
>>> This in turn allows dropping the stubs for
>>> xen_{create,destroy}_contiguous_region(), the former of which was broken
>>> anyway - it failed to set the DMA handle output.
>>
>> Looks good:
>>
>> Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

Thanks for this and the other reviews.

Jan




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.