From: Kanoj Sarcar <kanoj@google.engr.sgi.com>
To: Roman Zippel <roman@augan.com>
Cc: "Stephen C. Tweedie" <sct@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.rutgers.edu,
rmk@arm.linux.org.uk, nico@cam.org, davem@redhat.com,
davidm@hpl.hp.com, alan@lxorguk.ukuu.org.uk
Subject: Re: pte_pagenr/MAP_NR deleted in pre6
Date: Wed, 16 Aug 2000 10:13:21 -0700 (PDT) [thread overview]
Message-ID: <200008161713.KAA54085@google.engr.sgi.com> (raw)
In-Reply-To: <399A4FE4.FA5C397A@augan.com> from "Roman Zippel" at Aug 16, 2000 10:25:08 AM
>
> Hi,
>
> > Excellent, this will make it _tons_ easier for me to create new zones
> > of mem_map arrays on the fly to allow us to create struct pages for
> > PCI IO-aperture memory (necessary for kiobuf mappings of IO memory).
>
> A related question: do you already have an idea how the driver interface
> for that could look like? I mean, some drivers need a virtual address,
> some need the physical address for dma and some of them might need
> bounce buffers. E.g. I don't know how to get (quickly) from a page
> struct which represents an io mapping to the physical address. Will we
> add some generic funtions for this which can be used by drivers or even
> let the drivers only specify its requirements and the buffer code will
> generate an appropriate io request. I have a few ideas, but I don't know
> if already concrete plans exists.
>
> bye, Roman
>
FWIW, Linus was mildly suggesting I implement page_to_phys, to complement
virt_to_page. I didn't see an immediate need for it, so I just did the
bit I am interested in for now. If you look, most of the mk_pte() definitions
should actually use page_to_phys ...
Of course, I am talking about struct pages that represent memory, not io
devices, I don't think either one of us was thinking about that ...
I also thought about whether page_to_phys would be useful for drivers,
decided against it, since the PCI-DMA apis which are quite a standard
now want to go to the PCI bus addresses, instead of physical addresses.
BTW, I am not sure I understand when you say "some drivers need a virtual
address, some need the physical address for dma and some of them might need
bounce buffers". I believe, the goal should be to pass in either a. struct
page or b. physical address, then the driver makes the PCI-DMA calls to
determine whether it can dma directly into the page (or transparently
get a page which it can dma into, and the PCI-DMA layer handles the
bouncing completely). Passing in virtual addresses into drivers is not
good, if you think about the i386 class machines which can not direct
map the entire memory (hence would need kmap addresses for high pages).
Finally, whether the drivers accept virtual addresses or struct pages,
they should not be trying to interpret their input, rather treat the input
as opaque cookies, to be passed on to the PCI-DMA layer ...
Kanoj
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/
next prev parent reply other threads:[~2000-08-16 17:13 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-08-10 17:18 Kanoj Sarcar
2000-08-11 2:24 ` David S. Miller
2000-08-14 0:34 ` Anton Blanchard
2000-08-11 11:50 ` Roman Zippel
2000-08-11 13:20 ` Russell King
2000-08-11 14:56 ` Roman Zippel
2000-08-12 9:18 ` Bjorn Wesen
2000-08-11 17:21 ` Kanoj Sarcar
2000-08-14 9:29 ` Roman Zippel
2000-08-15 16:19 ` Stephen C. Tweedie
2000-08-16 8:25 ` Roman Zippel
2000-08-16 17:13 ` Kanoj Sarcar [this message]
2000-08-16 18:20 ` Stephen C. Tweedie
2000-08-16 18:24 ` David S. Miller
2000-08-16 19:53 ` Stephen C. Tweedie
2000-08-16 18:47 ` Kanoj Sarcar
2000-08-16 18:39 ` David S. Miller
2000-08-16 19:30 ` Stephen C. Tweedie
2000-08-16 22:22 ` Kanoj Sarcar
2000-08-17 9:11 ` Stephen C. Tweedie
2000-08-17 19:07 ` Kanoj Sarcar
2000-08-17 19:01 ` David S. Miller
2000-08-17 19:19 ` Alan Cox
2000-08-17 19:20 ` David S. Miller
2000-08-17 19:33 ` Alan Cox
2000-08-17 19:36 ` Kanoj Sarcar
2000-09-07 14:31 ` Ralf Baechle
2000-08-17 19:50 ` Kanoj Sarcar
2000-08-17 19:41 ` David S. Miller
2000-09-07 14:26 ` Ralf Baechle
2000-08-17 19:56 ` Alan Cox
2000-08-17 19:24 ` Alan Cox
2000-08-17 19:32 ` Kanoj Sarcar
2000-08-17 19:30 ` David S. Miller
2000-08-17 20:00 ` Kanoj Sarcar
2000-08-16 18:17 ` Stephen C. Tweedie
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=200008161713.KAA54085@google.engr.sgi.com \
--to=kanoj@google.engr.sgi.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davem@redhat.com \
--cc=davidm@hpl.hp.com \
--cc=linux-kernel@vger.rutgers.edu \
--cc=linux-mm@kvack.org \
--cc=nico@cam.org \
--cc=rmk@arm.linux.org.uk \
--cc=roman@augan.com \
--cc=sct@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