On 6/4/19 12:51 PM, Stefano Stabellini wrote:
> On Mon, 3 Jun 2019, Boris Ostrovsky wrote:
>> On 6/3/19 2:25 PM, Stefano Stabellini wrote:
>>> On Tue, 28 May 2019, Boris Ostrovsky wrote:
>>>> On 5/28/19 6:48 PM, Stefano Stabellini wrote:
>>>>> From: Stefano Stabellini <stefa...@xilinx.com>
>>>>>
>>>>> On arm64 swiotlb is often (not always) already initialized by mem_init.
>>>>> We don't want to initialize it twice, which would trigger a second
>>>>> memory allocation. Moreover, the second memory pool is typically made of
>>>>> high pages and ends up replacing the original memory pool of low pages.
>>>>> As a side effect of this change, it is possible to have low pages in
>>>>> swiotlb-xen on arm64.
>>>>>
>>>>> Signed-off-by: Stefano Stabellini <stefa...@xilinx.com>
>>>> Has this been tested on x86?
>>> Yes, I managed to test it using QEMU. There are no effects on x86, as
>>> the check io_tlb_start != 0 returns false.
>> I wonder though whether this is always the case.  When we are called
>> from pci_xen_swiotlb_init_late() for example.
> In that case, pci_xen_swiotlb_init_late() is called by
> pcifront_connect_and_init_dma, which does:
>
>       if (!err && !swiotlb_nr_tbl()) {
>               err = pci_xen_swiotlb_init_late();
>               if (err)
>                       dev_err(&pdev->xdev->dev, "Could not setup SWIOTLB!\n");
>       }
>
> pci_xen_swiotlb_init_late() is only called when swiotlb_nr_tbl() returns
> 0. If swiotlb_nr_tbl() returns 0, certainly the swiotlb has not been
> allocated yet, and the io_tlb_start != 0 check at the beginning of
> xen_swiotlb_init will also fail. The code will take the normal
> route, same as today. In short, there should be no effects on x86.


OK, thanks.

Reviewed-by: Boris Ostrovsky <boris.ostrov...@oracle.com>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to