From: David Brownell <david-b@pacbell.net>
To: Jens Axboe <axboe@suse.de>
Cc: linux-kernel@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net,
Matthew Dharm <mdharm@one-eyed-alien.net>,
Greg KH <greg@kroah.com>
Subject: Re: [linux-usb-devel] Re: highmem and usb [was "sr: unaligned transfer" in 2.5.2-pre1]
Date: Tue, 01 Jan 2002 21:27:07 -0800 [thread overview]
Message-ID: <06c801c1934e$1fc01a20$6800000a@brownell.org> (raw)
In-Reply-To: <m2vgexzv90.fsf@ppro.localdomain> <20011223112249.B4493@kroah.com> <m23d1trr4w.fsf@pengo.localdomain> <20011230122756.L1821@suse.de> <20011230212700.B652@one-eyed-alien.net> <20011231125157.D1246@suse.de> <20011231145455.C6465@one-eyed-alien.net> <065e01c192fd$fe066e20$6800000a@brownell.org> <20020101233423.I16092@suse.de>
> > Not that I've seen a writeup about highmem (linux/Documentation
> > doesn't seem to have one anyway) but if I infer correctly from that
> > DMA-mapping.txt writeup, URBs don't support it because there's no way
> > to specify buffers as a "struct page *" or an array of "struct
> > scatterlist". That's the only way that document identifies to access
> > "highmem memory".
>
> What kind of mapping does URBs require? A virtual mapping?
Each URB points to one transfer buffer, address plus length, where
the USB device drivers directly read/write those addresses. The
requirement for drivers is that the transfer buffers can be passed to
pci_map_single() calls by the Host Controller Drivers (HCDs). The
device drivers, and URBs, don't expose such mappings, they only
require that they can be created/destroyed.
I'd be inclined to say transfer buffers must not be "virtual" mappings,
but since terminology can differ I'll let you draw your conclusion.
> > > (1) Do the USB HCDs support highmem? I seem to recall they do, but
> > > I'm not certain.
> >
> > If URBs can't describe highmem, the HCD's won't support them per se;
> > you'd have to turn highmem to "lowmem" or whatever it's called, and
> > then let the HCDs manage the lowmem-to-dma_addr_t mappings.
> >
> > Alternatively, in 2.5 we might add "highmem" support to USB. Now that
> > I've looked at it a few minutes, I suspect we must -- just to support
> > block devices (usb-storage) fully. Is there more to it than adding
>
> No, you can always ask to get pages low mem bounced. Highmem is no
> requirement, and if your device really can't support it there's no point
> in attempting to support it.
Standard HC hardware (EHCI, OHCI, UHCI) can use 32bit addresses
for their PCI DMA. EHCI can also, in some implementations, handle 64bit
addresses.
> > page+offset as an alternative way to describe the transfer_buffer?
>
> no
>
> > (And making all the "single" mapping calls in the HCDs use page
> > mappings.)
>
> exactly
So you're saying that pci_map_page() is not necessary? And that
highmem buffers (page+offset, or scatterlist thereof) can be turned
into the form needed by URBs using some other mechanism?
I'd certainly rather that be the case for the moment, for simplicity.
Keep in mind that usb-storage seems to be the only driver that'd
run into that issue.
- Dave
next prev parent reply other threads:[~2002-01-02 5:29 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-23 17:44 "sr: unaligned transfer" in 2.5.2-pre1 Peter Osterlund
2001-12-23 19:22 ` Greg KH
2001-12-30 9:31 ` Peter Osterlund
2001-12-30 11:27 ` Jens Axboe
2001-12-31 5:27 ` Matthew Dharm
2001-12-31 11:51 ` Jens Axboe
2001-12-31 22:54 ` [linux-usb-devel] " Matthew Dharm
2001-12-31 23:59 ` Andre Hedrick
2002-01-01 17:39 ` Jens Axboe
2002-01-01 17:40 ` Jens Axboe
2002-01-01 19:53 ` David Brownell
2002-01-01 22:34 ` Jens Axboe
2002-01-01 23:28 ` Matthew Dharm
2002-01-02 5:40 ` [linux-usb-devel] Re: highmem and usb [was: "sr: unaligned transfer" in 2.5.2-pre1] David Brownell
2002-01-02 9:27 ` [linux-usb-devel] Re: highmem and usb [was:"sr: unalignedtransfer" " Oliver.Neukum
2002-01-02 18:43 ` David Brownell
2002-01-02 9:31 ` [linux-usb-devel] Re: highmem and usb [was: "sr: unaligned transfer" " Jens Axboe
2002-01-02 9:30 ` [linux-usb-devel] Re: "sr: unaligned transfer" in 2.5.2-pre1 Jens Axboe
2002-01-02 5:27 ` David Brownell [this message]
2002-01-02 9:32 ` [linux-usb-devel] Re: highmem and usb [was "sr: unaligned transfer" in 2.5.2-pre1] Jens Axboe
2002-01-02 18:37 ` David Brownell
2002-01-02 18:44 ` Jens Axboe
2002-01-02 18:55 ` David Brownell
2002-01-02 20:23 ` Jens Axboe
2002-01-02 22:32 ` [linux-usb-devel] Re: highmem and usb [was "sr: unalignedtransfer" " Oliver.Neukum
2001-12-24 4:05 ` "sr: unaligned transfer" in 2.5.2-pre1 Bob_Tracy
2001-12-24 7:24 ` Peter Osterlund
2001-12-24 14:13 ` WHICH MACHINE????? Astinus
2001-12-24 15:37 ` Erik Mouw
2001-12-25 15:41 ` Svein Ove Aas
2001-12-26 13:56 ` Erik Mouw
2001-12-24 16:19 ` J.A. Magallon
2001-12-24 22:48 ` "sr: unaligned transfer" in 2.5.2-pre1 Peter Osterlund
2001-12-27 7:13 ` Petr Titera
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='06c801c1934e$1fc01a20$6800000a@brownell.org' \
--to=david-b@pacbell.net \
--cc=axboe@suse.de \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=mdharm@one-eyed-alien.net \
/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