[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH-REWORKED] Added xen_is_contiguous_region
- To: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>
- From: "Jambunathan K" <kjambunathan@xxxxxxxxx>
- Date: Sat, 14 Apr 2007 10:26:54 +0530
- Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
- Delivery-date: Fri, 13 Apr 2007 21:55:31 -0700
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=dNMXfrVPQ0WBxwW282ThOTmt24TyFkxTgcmHyHUrQwLcu+ZrKJemFcEkXm7IJtUulvne83b62H0MoOrNogDU2b91a1Q8Fkdro9I/CEQgbDz+0/RvTTBpnLW+H1so+eSNnWbQkB9ttVOZf954qlPm6n0gpUShFdQwan+MRoB8OSE=
- List-id: Xen developer discussion <xen-devel.lists.xensource.com>
You can check whether a memory region straddles a page boundary yourself
without needing an external helper function. Also you should have a pretty
good idea whether a piece of memory you allocated will pass the
contiguous_bitmap test:
Agreed.
But I had seen a crash in DomU (with no swiotlb) when we try to pci_map_single
a alloc_skb buffer.
In Xen-3.0.4, alloc_skb in all probability allocs a contig buffer but
it wouldn't
guarantee me the same. With Xen-3.0.5, with bit-width based allocator
we are much
more likely to succeed compared to system-wide functions that cater to least
common denominator.
But anyway — I thought the issue was your DMA limit of 32GB? Why should
page-straddling buffers be a problem at all: your hardware probably supports
scatter-gather DMA, right?
We don't do scatter-gather DMA as yet.
Jambunathan K.
On 4/14/07, Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> wrote:
On 13/4/07 20:56, "Jambunathan K" <kjambunathan@xxxxxxxxx> wrote:
Using the new xen_is_contiguous_region() would enable our driver to fall back
upon it's own pool.
This is my first patch to Xen. If you approve of the patch, I will resubmit
the changes as required by you.
You can check whether a memory region straddles a page boundary yourself
without needing an external helper function. Also you should have a pretty good
idea whether a piece of memory you allocated will pass the contiguous_bitmap
test: if you called pci_alloc_consistent(), or xen_create_contiguous_region(),
then it will; if you simply kmalloc()ed or get_free_pages()ed a region then it
will not. If you are getting buffers passed to you from elsewhere in the
kernel, I guess it depends what kind of device you're talking about, but it's
pretty likely to be the case that if you are passed page-straddling buffers
that you are going to need to use a bounce buffer.
But anyway — I thought the issue was your DMA limit of 32GB? Why should
page-straddling buffers be a problem at all: your hardware probably supports
scatter-gather DMA, right?
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel