[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


 


Rackspace

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