public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Pete Zaitcev <zaitcev@redhat.com>
Cc: Manfred Spraul <manfred@colorfullife.com>,
	"David S. Miller" <davem@redhat.com>,
	Russell King <rmk@arm.linux.org.uk>,
	zaitcev@redhat.com, linux-usb-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: Re: SLAB vs. pci_alloc_xxx in usb-uhci patch [RFC: API]
Date: Fri, 09 Mar 2001 11:37:27 -0800	[thread overview]
Message-ID: <069601c0a8d0$6091b680$6800000a@brownell.org> (raw)
In-Reply-To: <001f01c0a5c0$e942d8f0$5517fea9@local> <00d401c0a5c6$f289d200$6800000a@brownell.org> <20010305232053.A16634@flint.arm.linux.org.uk> <15012.27969.175306.527274@pizda.ninka.net> <055e01c0a8b4$8d91dbe0$6800000a@brownell.org> <3AA91B2C.BEB85D8C@colorfullife.com> <060e01c0a8c6$ddbcc1e0$6800000a@brownell.org> <20010309141442.A18207@devserv.devel.redhat.com>

> > > > extern void *
> > > > pci_pool_dma_to_cpu (struct pci_pool *pool, dma_addr_t handle);
> > > 
> > > Do lots of drivers need the reverse mapping? It wasn't on my todo list
> > > yet.
> > 
> > Some hardware (like OHCI) talks to drivers using those dma handles.
> 
> I wonder if it may be feasible to allocate a bunch of contiguous
> pages. Then, whenever the hardware returns a bus address, subtract
> the remembered bus address of the zone start, add the offset to
> the virtual and voila.

That's effectively what the implementation I posted is doing.

Simple math ... as soon as you get the right "logical page",
and that page size could become a per-pool tunable.  Currently
one logical page is PAGE_SIZE; there are some issues to
deal with in terms of not crossing page boundaries.

There can be multiple such pages, known to the pool allocator
and hidden from the device drivers.  I'd expect most USB host
controllers wouldn't allocate more than one or two pages, so
the cost of this function would typically be small.

- Dave



  reply	other threads:[~2001-03-09 19:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-05 22:08 SLAB vs. pci_alloc_xxx in usb-uhci patch Manfred Spraul
2001-03-05 22:52 ` David Brownell
2001-03-05 23:20   ` Russell King
2001-03-06  2:09     ` Alan Cox
2001-03-06  2:29       ` [linux-usb-devel] " David Brownell
2001-03-06  4:53     ` David S. Miller
2001-03-09 16:18       ` SLAB vs. pci_alloc_xxx in usb-uhci patch [RFC: API] David Brownell
     [not found]         ` <3AA91B2C.BEB85D8C@colorfullife.com>
2001-03-09 18:21           ` David S. Miller
2001-03-09 18:35             ` [linux-usb-devel] " Johannes Erdfelt
2001-03-09 19:42               ` David Brownell
2001-03-09 20:07                 ` David S. Miller
2001-03-09 21:14                   ` David Brownell
2001-03-09 22:34                     ` Pete Zaitcev
2001-03-09 18:35             ` Alan Cox
2001-03-09 18:29           ` David Brownell
2001-03-09 19:14             ` Pete Zaitcev
2001-03-09 19:37               ` David Brownell [this message]
2001-03-09 19:04                 ` Gérard Roudier
2001-03-09 22:42                   ` David Brownell
2001-03-09 21:07                     ` Gérard Roudier
2001-03-10  3:11                       ` David Brownell
2001-03-09 20:00               ` David S. Miller
2001-03-09 21:38               ` [linux-usb-devel] " Alan Cox
2001-03-09 20:07             ` David S. Miller

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='069601c0a8d0$6091b680$6800000a@brownell.org' \
    --to=david-b@pacbell.net \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb-devel@lists.sourceforge.net \
    --cc=manfred@colorfullife.com \
    --cc=rmk@arm.linux.org.uk \
    --cc=zaitcev@redhat.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