|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] xen/swiotlb: don't initialize swiotlb twice on arm64
On Wed, Jun 05, 2019 at 04:24:06PM +0200, Juergen Gross wrote:
> On 05.06.19 16:13, Konrad Rzeszutek Wilk wrote:
> > On Tue, Jun 04, 2019 at 03:41:40PM -0400, Boris Ostrovsky wrote:
> > > 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 <stefanos@xxxxxxxxxx>
> > > > > > > >
> > > > > > > > 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 <stefanos@xxxxxxxxxx>
> > > > > > > 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.ostrovsky@xxxxxxxxxx>
> >
> > Pushed in devel/for-linus-5.2 and will eventually move it to stable and
> > push to Linus next-week.
> >
> > Are there any other patches I should pick up?
> >
>
> I think at least the first two patches from my series:
>
> https://patchew.org/Xen/20190529090407.1225-1-jgross@xxxxxxxx/
>
> are ready to go in.
#2 patch says:
"> To be symmetric with setting the flag only after having made the
region
> contiguous, and to avoid (perhaps just theoretical) races, wouldn't
it be
> better to clear the flag before calling
xen_destroy_contiguous_region()?
> Even better would be a TestAndClear...() operation.
I like that idea.
"
?
>
>
> Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |