[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CACycT3uRvB2K7LeVpdv+DkGJGjdORMa2uk5T_PYswtddNOjV4A@mail.gmail.com>
Date: Fri, 27 Aug 2021 17:25:02 +0800
From: Yongji Xie <xieyongji@...edance.com>
To: John Garry <john.garry@...wei.com>
Cc: "Michael S. Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>,
Stefan Hajnoczi <stefanha@...hat.com>,
Stefano Garzarella <sgarzare@...hat.com>,
Parav Pandit <parav@...dia.com>,
Christoph Hellwig <hch@...radead.org>,
Christian Brauner <christian.brauner@...onical.com>,
Randy Dunlap <rdunlap@...radead.org>,
Matthew Wilcox <willy@...radead.org>,
Al Viro <viro@...iv.linux.org.uk>,
Jens Axboe <axboe@...nel.dk>, bcrl@...ck.org,
Jonathan Corbet <corbet@....net>,
Mika Penttilä <mika.penttila@...tfour.com>,
Dan Carpenter <dan.carpenter@...cle.com>, joro@...tes.org,
Greg KH <gregkh@...uxfoundation.org>,
He Zhe <zhe.he@...driver.com>,
Liu Xiaodong <xiaodong.liu@...el.com>,
Joe Perches <joe@...ches.com>,
Robin Murphy <robin.murphy@....com>, kvm <kvm@...r.kernel.org>,
netdev@...r.kernel.org,
linux-kernel <linux-kernel@...r.kernel.org>,
virtualization <virtualization@...ts.linux-foundation.org>,
iommu@...ts.linux-foundation.org, songmuchun@...edance.com,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH v11 10/12] vduse: Implement an MMU-based software IOTLB
On Fri, Aug 27, 2021 at 4:53 PM John Garry <john.garry@...wei.com> wrote:
>
> On 18/08/2021 13:06, Xie Yongji wrote:
> > +
> > +static dma_addr_t
> > +vduse_domain_alloc_iova(struct iova_domain *iovad,
> > + unsigned long size, unsigned long limit)
> > +{
> > + unsigned long shift = iova_shift(iovad);
> > + unsigned long iova_len = iova_align(iovad, size) >> shift;
> > + unsigned long iova_pfn;
> > +
> > + /*
> > + * Freeing non-power-of-two-sized allocations back into the IOVA caches
> > + * will come back to bite us badly, so we have to waste a bit of space
> > + * rounding up anything cacheable to make sure that can't happen. The
> > + * order of the unadjusted size will still match upon freeing.
> > + */
> > + if (iova_len < (1 << (IOVA_RANGE_CACHE_MAX_SIZE - 1)))
> > + iova_len = roundup_pow_of_two(iova_len);
>
> Whether it's proper to use this "fast" API or not here, this seems to be
> copied verbatim from dma-iommu.c, which tells me that something should
> be factored out.
>
Agreed.
> Indeed, this rounding up seems a requirement of the rcache, so not sure
> why this is not done there.
>
Me too. I guess it is to let users know that space is wasted.
Thanks,
Yongji
Powered by blists - more mailing lists