From: Zach Pfeffer <zpfeffer@codeaurora.org>
To: Joerg Roedel <joro@8bytes.org>
Cc: Andi Kleen <andi@firstfloor.org>,
Daniel Walker <dwalker@codeaurora.org>,
Randy Dunlap <randy.dunlap@oracle.com>,
mel@csn.ul.ie, linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC 3/3] mm: iommu: The Virtual Contiguous Memory Manager
Date: Mon, 12 Jul 2010 22:27:52 -0700 [thread overview]
Message-ID: <4C3BF958.8020304@codeaurora.org> (raw)
In-Reply-To: <20100710145400.GB10080@8bytes.org>
Joerg Roedel wrote:
> On Thu, Jul 01, 2010 at 03:00:17PM -0700, Zach Pfeffer wrote:
>> Additionally, the current IOMMU interface does not allow users to
>> associate one page table with multiple IOMMUs [...]
>
> Thats not true. Multiple IOMMUs are completly handled by the IOMMU
> drivers. In the case of the IOMMU-API backend drivers this also includes
> the ability to use page-tables on multiple IOMMUs.
Yeah. I see that now.
>
>> Since the particular topology is run-time configurable all of these
>> use-cases and more can be expressed without pushing the topology into
>> the low-level IOMMU driver.
>
> The IOMMU driver has to know about the topology anyway because it needs
> to know which IOMMU it needs to program for a particular device.
Perhaps, but why not create a VCM which can be shared across all
mappers in the system? Why bury it in a device driver and make all
IOMMU device drivers managed their own virtual spaces? Practically
this would entail a minor refactor to the fledging IOMMU interface;
adding associate and activate ops.
>
>> Already, there are ~20 different IOMMU map implementations in the
>> kernel. Had the Linux kernel had the VCMM, many of those
>> implementations could have leveraged the mapping and topology
>> management of a VCMM, while focusing on a few key hardware specific
>> functions (map this physical address, program the page table base
>> register).
>
> I partially agree here. All the IOMMU implementations in the Linux
> kernel have a lot of functionality in common where code could be
> shared. Work to share code has been done in the past by Fujita Tomonori
> but there are more places to work on. I am just not sure if a new
> front-end API is the right way to do this.
I don't really think its a new front end API. Its just an API that
allows easier mapping manipulation than the current APIs.
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
WARNING: multiple messages have this Message-ID (diff)
From: Zach Pfeffer <zpfeffer@codeaurora.org>
To: Joerg Roedel <joro@8bytes.org>
Cc: Andi Kleen <andi@firstfloor.org>,
Daniel Walker <dwalker@codeaurora.org>,
Randy Dunlap <randy.dunlap@oracle.com>,
mel@csn.ul.ie, linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC 3/3] mm: iommu: The Virtual Contiguous Memory Manager
Date: Mon, 12 Jul 2010 22:27:52 -0700 [thread overview]
Message-ID: <4C3BF958.8020304@codeaurora.org> (raw)
In-Reply-To: <20100710145400.GB10080@8bytes.org>
Joerg Roedel wrote:
> On Thu, Jul 01, 2010 at 03:00:17PM -0700, Zach Pfeffer wrote:
>> Additionally, the current IOMMU interface does not allow users to
>> associate one page table with multiple IOMMUs [...]
>
> Thats not true. Multiple IOMMUs are completly handled by the IOMMU
> drivers. In the case of the IOMMU-API backend drivers this also includes
> the ability to use page-tables on multiple IOMMUs.
Yeah. I see that now.
>
>> Since the particular topology is run-time configurable all of these
>> use-cases and more can be expressed without pushing the topology into
>> the low-level IOMMU driver.
>
> The IOMMU driver has to know about the topology anyway because it needs
> to know which IOMMU it needs to program for a particular device.
Perhaps, but why not create a VCM which can be shared across all
mappers in the system? Why bury it in a device driver and make all
IOMMU device drivers managed their own virtual spaces? Practically
this would entail a minor refactor to the fledging IOMMU interface;
adding associate and activate ops.
>
>> Already, there are ~20 different IOMMU map implementations in the
>> kernel. Had the Linux kernel had the VCMM, many of those
>> implementations could have leveraged the mapping and topology
>> management of a VCMM, while focusing on a few key hardware specific
>> functions (map this physical address, program the page table base
>> register).
>
> I partially agree here. All the IOMMU implementations in the Linux
> kernel have a lot of functionality in common where code could be
> shared. Work to share code has been done in the past by Fujita Tomonori
> but there are more places to work on. I am just not sure if a new
> front-end API is the right way to do this.
I don't really think its a new front end API. Its just an API that
allows easier mapping manipulation than the current APIs.
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
--
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-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: zpfeffer@codeaurora.org (Zach Pfeffer)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 3/3] mm: iommu: The Virtual Contiguous Memory Manager
Date: Mon, 12 Jul 2010 22:27:52 -0700 [thread overview]
Message-ID: <4C3BF958.8020304@codeaurora.org> (raw)
In-Reply-To: <20100710145400.GB10080@8bytes.org>
Joerg Roedel wrote:
> On Thu, Jul 01, 2010 at 03:00:17PM -0700, Zach Pfeffer wrote:
>> Additionally, the current IOMMU interface does not allow users to
>> associate one page table with multiple IOMMUs [...]
>
> Thats not true. Multiple IOMMUs are completly handled by the IOMMU
> drivers. In the case of the IOMMU-API backend drivers this also includes
> the ability to use page-tables on multiple IOMMUs.
Yeah. I see that now.
>
>> Since the particular topology is run-time configurable all of these
>> use-cases and more can be expressed without pushing the topology into
>> the low-level IOMMU driver.
>
> The IOMMU driver has to know about the topology anyway because it needs
> to know which IOMMU it needs to program for a particular device.
Perhaps, but why not create a VCM which can be shared across all
mappers in the system? Why bury it in a device driver and make all
IOMMU device drivers managed their own virtual spaces? Practically
this would entail a minor refactor to the fledging IOMMU interface;
adding associate and activate ops.
>
>> Already, there are ~20 different IOMMU map implementations in the
>> kernel. Had the Linux kernel had the VCMM, many of those
>> implementations could have leveraged the mapping and topology
>> management of a VCMM, while focusing on a few key hardware specific
>> functions (map this physical address, program the page table base
>> register).
>
> I partially agree here. All the IOMMU implementations in the Linux
> kernel have a lot of functionality in common where code could be
> shared. Work to share code has been done in the past by Fujita Tomonori
> but there are more places to work on. I am just not sure if a new
> front-end API is the right way to do this.
I don't really think its a new front end API. Its just an API that
allows easier mapping manipulation than the current APIs.
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
next prev parent reply other threads:[~2010-07-13 5:27 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-30 5:55 [RFC 1/3] mm: iommu: An API to unify IOMMU, CPU and device memory management Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-06-30 5:55 ` [RFC 2/3] mm: iommu: A physical allocator for the VCMM Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-06-30 5:55 ` [RFC 3/3] mm: iommu: The Virtual Contiguous Memory Manager Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-06-30 5:55 ` Zach Pfeffer
2010-07-01 17:17 ` Randy Dunlap
2010-07-01 17:17 ` Randy Dunlap
2010-07-01 17:17 ` Randy Dunlap
2010-07-01 18:02 ` Andi Kleen
2010-07-01 18:02 ` Andi Kleen
2010-07-01 18:02 ` Andi Kleen
2010-07-01 19:28 ` Daniel Walker
2010-07-01 19:28 ` Daniel Walker
2010-07-01 19:28 ` Daniel Walker
2010-07-01 19:38 ` Andi Kleen
2010-07-01 19:38 ` Andi Kleen
2010-07-01 19:38 ` Andi Kleen
2010-07-01 19:42 ` Daniel Walker
2010-07-01 19:42 ` Daniel Walker
2010-07-01 19:42 ` Daniel Walker
2010-07-01 22:15 ` Hari Kanigeri
2010-07-01 22:15 ` Hari Kanigeri
2010-07-01 22:15 ` Hari Kanigeri
2010-07-02 7:09 ` Zach Pfeffer
2010-07-02 7:09 ` Zach Pfeffer
2010-07-02 7:09 ` Zach Pfeffer
2010-07-10 14:36 ` Joerg Roedel
2010-07-10 14:36 ` Joerg Roedel
2010-07-10 14:36 ` Joerg Roedel
2010-07-13 5:21 ` Zach Pfeffer
2010-07-13 5:21 ` Zach Pfeffer
2010-07-13 5:21 ` Zach Pfeffer
2010-07-14 19:34 ` Joerg Roedel
2010-07-14 19:34 ` Joerg Roedel
2010-07-14 19:34 ` Joerg Roedel
2010-07-15 1:18 ` Zach Pfeffer
2010-07-15 1:18 ` Zach Pfeffer
2010-07-15 1:18 ` Zach Pfeffer
2010-07-01 22:00 ` Zach Pfeffer
2010-07-01 22:00 ` Zach Pfeffer
2010-07-01 22:00 ` Zach Pfeffer
2010-07-01 22:05 ` Daniel Walker
2010-07-01 22:05 ` Daniel Walker
2010-07-01 22:05 ` Daniel Walker
2010-07-02 7:33 ` Zach Pfeffer
2010-07-02 7:33 ` Zach Pfeffer
2010-07-02 7:33 ` Zach Pfeffer
2010-07-10 14:56 ` Joerg Roedel
2010-07-10 14:56 ` Joerg Roedel
2010-07-10 14:56 ` Joerg Roedel
2010-07-13 5:46 ` Zach Pfeffer
2010-07-13 5:46 ` Zach Pfeffer
2010-07-13 5:46 ` Zach Pfeffer
2010-07-13 5:59 ` FUJITA Tomonori
2010-07-13 5:59 ` FUJITA Tomonori
2010-07-13 5:59 ` FUJITA Tomonori
2010-07-13 8:20 ` Alan Cox
2010-07-13 8:20 ` Alan Cox
2010-07-13 8:20 ` Alan Cox
2010-07-13 8:30 ` FUJITA Tomonori
2010-07-13 8:30 ` FUJITA Tomonori
2010-07-13 8:30 ` FUJITA Tomonori
2010-07-13 8:42 ` Alan Cox
2010-07-13 8:42 ` Alan Cox
2010-07-13 8:42 ` Alan Cox
2010-07-13 8:45 ` FUJITA Tomonori
2010-07-13 8:45 ` FUJITA Tomonori
2010-07-13 8:45 ` FUJITA Tomonori
2010-07-13 9:02 ` Russell King - ARM Linux
2010-07-13 9:02 ` Russell King - ARM Linux
2010-07-13 9:02 ` Russell King - ARM Linux
2010-07-14 1:59 ` FUJITA Tomonori
2010-07-14 1:59 ` FUJITA Tomonori
2010-07-14 1:59 ` FUJITA Tomonori
2010-07-22 3:50 ` Zach Pfeffer
2010-07-22 3:50 ` Zach Pfeffer
2010-07-22 3:50 ` Zach Pfeffer
2010-07-22 4:47 ` FUJITA Tomonori
2010-07-22 4:47 ` FUJITA Tomonori
2010-07-22 4:47 ` FUJITA Tomonori
2010-07-22 16:33 ` Zach Pfeffer
2010-07-22 16:33 ` Zach Pfeffer
2010-07-22 16:33 ` Zach Pfeffer
2010-07-22 7:51 ` Russell King - ARM Linux
2010-07-22 7:51 ` Russell King - ARM Linux
2010-07-22 7:51 ` Russell King - ARM Linux
2010-07-22 16:13 ` Zach Pfeffer
2010-07-22 16:13 ` Zach Pfeffer
2010-07-22 16:13 ` Zach Pfeffer
2010-07-13 12:06 ` Zach Pfeffer
2010-07-13 12:06 ` Zach Pfeffer
2010-07-13 12:06 ` Zach Pfeffer
2010-07-01 22:51 ` Hari Kanigeri
2010-07-01 22:51 ` Hari Kanigeri
2010-07-01 22:51 ` Hari Kanigeri
2010-07-02 7:29 ` Zach Pfeffer
2010-07-02 7:29 ` Zach Pfeffer
2010-07-01 23:00 ` Andi Kleen
2010-07-01 23:00 ` Andi Kleen
2010-07-01 23:00 ` Andi Kleen
2010-07-02 6:17 ` Zach Pfeffer
2010-07-02 6:17 ` Zach Pfeffer
2010-07-02 6:17 ` Zach Pfeffer
2010-07-02 8:22 ` Andi Kleen
2010-07-02 8:22 ` Andi Kleen
2010-07-02 8:22 ` Andi Kleen
2010-07-02 18:42 ` Zach Pfeffer
2010-07-02 18:42 ` Zach Pfeffer
2010-07-02 18:42 ` Zach Pfeffer
2010-07-10 15:11 ` Joerg Roedel
2010-07-10 15:11 ` Joerg Roedel
2010-07-10 15:11 ` Joerg Roedel
2010-07-13 5:52 ` Zach Pfeffer
2010-07-13 5:52 ` Zach Pfeffer
2010-07-13 5:52 ` Zach Pfeffer
2010-07-03 6:36 ` Zach Pfeffer
2010-07-03 6:36 ` Zach Pfeffer
2010-07-10 14:54 ` Joerg Roedel
2010-07-10 14:54 ` Joerg Roedel
2010-07-10 14:54 ` Joerg Roedel
2010-07-13 5:27 ` Zach Pfeffer [this message]
2010-07-13 5:27 ` Zach Pfeffer
2010-07-13 5:27 ` Zach Pfeffer
2010-07-01 20:59 ` Paul Walmsley
2010-07-01 20:59 ` Paul Walmsley
2010-07-01 20:59 ` Paul Walmsley
2010-07-01 21:48 ` Randy Dunlap
2010-07-01 21:48 ` Randy Dunlap
2010-07-01 21:48 ` Randy Dunlap
2010-06-30 23:40 ` [RFC 1/3] mm: iommu: An API to unify IOMMU, CPU and device memory management Randy Dunlap
2010-06-30 23:40 ` Randy Dunlap
2010-06-30 23:40 ` Randy Dunlap
2010-07-01 7:16 ` Zach Pfeffer
2010-07-01 7:16 ` Zach Pfeffer
2010-07-01 7:16 ` Zach Pfeffer
2010-07-02 7:00 ` Paul Mundt
2010-07-02 7:00 ` Paul Mundt
2010-07-02 7:00 ` Paul Mundt
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=4C3BF958.8020304@codeaurora.org \
--to=zpfeffer@codeaurora.org \
--cc=andi@firstfloor.org \
--cc=dwalker@codeaurora.org \
--cc=joro@8bytes.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-omap@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=randy.dunlap@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.