WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH 18 of 38] x86: unify pci iommu setup and allow sw

To: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH 18 of 38] x86: unify pci iommu setup and allow swiotlb to compile for 32 bit
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Mon, 17 Nov 2008 16:16:06 +0000
Cc: x86@xxxxxxxxxx, jeremy@xxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, mingo@xxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Delivery-date: Mon, 17 Nov 2008 08:16:35 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20081117124857Z.fujita.tomonori@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <patchbomb.1226603398@xxxxxxxxxxxxxxxxx> <e918eb1b71515e7c2f99.1226603416@xxxxxxxxxxxxxxxxx> <20081117124857Z.fujita.tomonori@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Mon, 2008-11-17 at 12:48 +0900, FUJITA Tomonori wrote:
> On Thu, 13 Nov 2008 11:10:16 -0800
> Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:
> 
> > swiotlb on 32 bit will be used by Xen domain 0 support.
> 
> If you want swiotlb on 32 bit, you need more modifications, I think.

Possibly. It currently "Works For Me(tm)", but I should check it over.

> For example, the following code assumes that the mask needs to be
> 64 bits.

The use of unsigned long for the mask is throughout the API and not
simply limited to swiotlb.c. All the callers of dma_set_seg_boundary
(PCI and SCSI subsys it seems) do not use a value >4G anywhere I can
see. Presumably if something was we would see "warning: overflow in
implicit constant conversion" somewhere along the line. If no value is
set then the default is 0xffffffff which is safe on 32 bit.

I suspect that even with PAE addresses above 4G aren't seen very often
due to pre-existing subsystem specific bounce buffers or other existing
limitations (like network buffers being in lowmem).

Perhaps dma_addr_t should be used though?

Ian.

> 
> static void *
> map_single(struct device *hwdev, char *buffer, size_t size, int dir)
> {
>       unsigned long flags;
>       char *dma_addr;
>       unsigned int nslots, stride, index, wrap;
>       int i;
>       unsigned long start_dma_addr;
>       unsigned long mask;
>       unsigned long offset_slots;
>       unsigned long max_slots;
> 
>       mask = dma_get_seg_boundary(hwdev);
>       start_dma_addr = virt_to_bus(io_tlb_start) & mask;
> 
>       offset_slots = ALIGN(start_dma_addr, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT;
>       max_slots = mask + 1
>                   ? ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT
>                   : 1UL << (BITS_PER_LONG - IO_TLB_SHIFT);
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>