From: Ian Campbell <Ian.Campbell@citrix.com>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: jeremy@goop.org, mingo@elte.hu, linux-kernel@vger.kernel.org,
xen-devel@lists.xensource.com, x86@kernel.org
Subject: Re: [PATCH 18 of 38] x86: unify pci iommu setup and allow swiotlb to compile for 32 bit
Date: Wed, 19 Nov 2008 13:48:42 +0000 [thread overview]
Message-ID: <1227102524.8717.37.camel@zakaz.uk.xensource.com> (raw)
In-Reply-To: <20081119112015I.fujita.tomonori@lab.ntt.co.jp>
On Wed, 2008-11-19 at 11:19 +0900, FUJITA Tomonori wrote:
> On Mon, 17 Nov 2008 16:16:06 +0000
> Ian Campbell <Ian.Campbell@citrix.com> wrote:
>
> > > 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.
>
> 32bit is large enough for dma segment boundary mask, I think.
>
> The problem that I talked about in the previous mail:
>
> > max_slots = mask + 1
> > ? ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT
> > : 1UL << (BITS_PER_LONG - IO_TLB_SHIFT);
>
> Since the popular value of the mask is 0xffffffff. So the above code
> (mask + 1 ?) works wrongly if the size of mask is 32bit (well,
> accidentally the result of max_slots is identical though).
Ah, I hadn't spotted this, you are right it probably works but just by
chance. Thanks for pointing it out.
> > 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).
>
> I guess that you talk about the dma_mask (and coherent_dma_mask) in
> struct device. The dma segment boundary mask represents the different
> dma limitation of a device.
I was talking about the segment_boundary_mask in struct
device_dma_parameters which is the source of the "mask" value in the
code you quoted.
> > Perhaps dma_addr_t should be used though?
>
> I think that 'unsigned long' is better for the dma segment boundary
> mask since it represents the hardware limitation. The size of the
> value are not related with kernel configurations at all.
Right, it's just that on occasion we have to cope with slightly larger
values while manipulating things.
Ian.
next prev parent reply other threads:[~2008-11-19 13:49 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-13 19:09 [PATCH 00 of 38] xen: add more Xen dom0 support Jeremy Fitzhardinge
2008-11-13 19:09 ` [PATCH 01 of 38] xen: various whitespace and other formatting cleanups Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 02 of 38] x86: remove unused iommu_nr_pages Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 03 of 38] swiotlb: allow architectures to override swiotlb pool allocation Jeremy Fitzhardinge
2008-11-14 9:01 ` [Xen-devel] [PATCH 03 of 38] swiotlb: allow architectures tooverride " Jan Beulich
2008-11-14 19:33 ` Jeremy Fitzhardinge
2008-11-17 8:04 ` Chris Lalancette
2008-11-17 8:44 ` Keir Fraser
2008-11-17 9:15 ` [Xen-devel] [PATCH 03 of 38] swiotlb: allow architectures tooverrideswiotlb " Jan Beulich
2008-11-13 19:10 ` [PATCH 04 of 38] swiotlb: move some definitions to header Jeremy Fitzhardinge
2008-11-17 3:48 ` FUJITA Tomonori
2008-11-17 11:52 ` Ian Campbell
2008-11-13 19:10 ` [PATCH 05 of 38] swiotlb: allow architectures to override virt<->bus<->virt conversions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 06 of 38] xen: clean up asm-x86/xen/hypervisor.h Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 07 of 38] x86: add io_apic_ops Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 08 of 38] x86: make apic_* operations inline functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 09 of 38] x86: make sure we really have an hpet mapping before using it Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 10 of 38] x86: add handle_irq() to allow interrupt injection Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 11 of 38] x86: define no-op exit_idle() on 32-bit Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 12 of 38] xen/dom0: handle acpi lapic parsing in Xen dom0 Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 13 of 38] x86: unstatic mp_find_ioapic so it can be used elsewhere Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 14 of 38] x86: add mp_find_ioapic_pin Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 15 of 38] x86: unstatic ioapic entry funcs Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 16 of 38] x86: include linux/init.h in asm/numa_64.h Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 17 of 38] x86: add swiotlb allocation functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 18 of 38] x86: unify pci iommu setup and allow swiotlb to compile for 32 bit Jeremy Fitzhardinge
2008-11-17 3:48 ` FUJITA Tomonori
2008-11-17 16:16 ` Ian Campbell
2008-11-19 2:19 ` FUJITA Tomonori
2008-11-19 13:48 ` Ian Campbell [this message]
2008-11-21 14:21 ` Ian Campbell
2008-11-22 1:49 ` FUJITA Tomonori
2008-11-24 11:41 ` Ian Campbell
2008-11-26 2:53 ` FUJITA Tomonori
2008-11-26 9:36 ` Ian Campbell
2008-11-27 3:43 ` FUJITA Tomonori
2008-11-27 17:14 ` Ian Campbell
2008-11-28 6:28 ` FUJITA Tomonori
2008-11-13 19:10 ` [PATCH 19 of 38] x86: add arch specific version of the swiotlb virt<->bus<->virt functions Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 20 of 38] xen dom0: Make hvc_xen console work for dom0 Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 21 of 38] xen dom0: Initialize xenbus " Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 22 of 38] xen dom0: Set up basic IO permissions " Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 23 of 38] xen-dom0: only selectively disable cpu features Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 24 of 38] xen dom0: Add support for the platform_ops hypercall Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 25 of 38] xen mtrr: Add mtrr_ops support for Xen mtrr Jeremy Fitzhardinge
2008-11-13 20:28 ` Mark McLoughlin
2008-11-14 0:35 ` Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 26 of 38] xen: forcibly disable PAT support Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 27 of 38] xen/dom0: use _PAGE_IOMAP in ioremap to do machine mappings Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 28 of 38] paravirt/xen: add pvop for page_is_ram Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 29 of 38] xen: create dummy ioapic mapping Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 30 of 38] xen: implement io_apic_ops Jeremy Fitzhardinge
2008-11-20 8:33 ` Simon Horman
2008-11-20 17:07 ` Jeremy Fitzhardinge
2008-11-20 9:35 ` Ingo Molnar
2008-11-20 17:00 ` Jeremy Fitzhardinge
2008-11-20 19:22 ` Ingo Molnar
2008-11-20 19:29 ` Yinghai Lu
2008-11-20 19:39 ` Jeremy Fitzhardinge
2008-11-20 19:40 ` Yinghai Lu
2008-11-20 19:38 ` Jeremy Fitzhardinge
2008-11-21 1:30 ` H. Peter Anvin
2008-11-20 20:22 ` Eric W. Biederman
2008-11-20 21:32 ` Jeremy Fitzhardinge
2008-11-21 0:58 ` Eric W. Biederman
2008-11-21 1:16 ` Jeremy Fitzhardinge
2008-11-21 4:27 ` Eric W. Biederman
2008-11-24 19:18 ` Jeremy Fitzhardinge
2008-11-24 22:02 ` Eric W. Biederman
2008-11-13 19:10 ` [PATCH 31 of 38] xen: set irq_chip disable Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 32 of 38] xen: use our own eventchannel->irq path Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 33 of 38] xen: pack all irq-related info together Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 34 of 38] xen: remove irq bindcount Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 35 of 38] xen: implement pirq type event channels Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 36 of 38] xen: route hardware irqs via Xen Jeremy Fitzhardinge
2008-11-20 9:31 ` Ingo Molnar
2008-11-20 17:06 ` Jeremy Fitzhardinge
2008-11-21 7:17 ` Simon Horman
2008-11-13 19:10 ` [PATCH 37 of 38] xen: bind pirq to vector and event channel Jeremy Fitzhardinge
2008-11-13 19:10 ` [PATCH 38 of 38] xen: make sure that softirqs get handled at the end of event processing Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1227102524.8717.37.camel@zakaz.uk.xensource.com \
--to=ian.campbell@citrix.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®