Prev: [PATCH 3/4] Checkpatch: prefer usleep_range over usleep
Next: [PATCH 0/4 -tip] delay documentation and checkpatch additions
From: Roedel, Joerg on 29 Jul 2010 05:30 On Thu, Jul 29, 2010 at 05:14:49AM -0400, FUJITA Tomonori wrote: > Well, the reason (nobody has tried) might be that linux/iommu.h > doesn't look something intended for the generic IOMMU-API. Oh, and as an additional note, the reason might also be that people were not aware of its existence :-) -- Joerg Roedel - AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo, Andrew Bowd Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Roedel, Joerg on 29 Jul 2010 05:30 On Thu, Jul 29, 2010 at 05:14:49AM -0400, FUJITA Tomonori wrote: > On Thu, 29 Jul 2010 11:06:08 +0200 > "Roedel, Joerg" <Joerg.Roedel(a)amd.com> wrote: > > I have no clue about the ARM iommus on the omap-platform. From a quick > > look into the header file I see some similarities to the IOMMU-API. I am > > ARM's iommu stuff might be more appropriate as the IOMMU-API than > include/linux/iommu.h Then lets add this functionality to the generic IOMMU-API. > > also very open for discussions about how the IOMMU-API could be extended > > to fit the needs of other platforms. Only because nobody has tried to > > discuss about such an effort is no reason to push the IOMMU-API back. > > Well, the reason (nobody has tried) might be that linux/iommu.h > doesn't look something intended for the generic IOMMU-API. How does it not look like a generic intention? The function names are all generic and do not express that this API should only be used for KVM. If you talk about the design of the API itself, it was designed for the IOMMUs I was aware of at the time writing the API (in fact, the initial design was not my own, it was a generalization of the VT-d interfaces for KVM). In other words it was a bottom-up approach to fit the needs of the time it was written. But its an kernel-only API so we can easily change it and extend it for other users/iommus when the need arises. I think this is the way we should go instead of letting each architecture design their own IOMMU-interfaces. Joerg -- Joerg Roedel - AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo, Andrew Bowd Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: FUJITA Tomonori on 29 Jul 2010 05:50 On Thu, 29 Jul 2010 11:28:21 +0200 "Roedel, Joerg" <Joerg.Roedel(a)amd.com> wrote: > On Thu, Jul 29, 2010 at 05:14:49AM -0400, FUJITA Tomonori wrote: > > Well, the reason (nobody has tried) might be that linux/iommu.h > > doesn't look something intended for the generic IOMMU-API. > > Oh, and as an additional note, the reason might also be that people were > not aware of its existence :-) No. People actually read it and think that it's not intended for generic purposes, i.e., it was designed for VT-d/AMD-IOMMU with KVM: http://lkml.org/lkml/2010/7/28/470 You designed it for what you need at the time. It should have been named appropriately to avoid confusion. Later, when we actually understand what other IOMMUs need, we can evolve the specific API for generic purposes. Then we can rename the API to more generic. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Roedel, Joerg on 29 Jul 2010 06:00 On Thu, Jul 29, 2010 at 05:44:13AM -0400, FUJITA Tomonori wrote: > On Thu, 29 Jul 2010 11:28:21 +0200 > "Roedel, Joerg" <Joerg.Roedel(a)amd.com> wrote: > > > On Thu, Jul 29, 2010 at 05:14:49AM -0400, FUJITA Tomonori wrote: > > > Well, the reason (nobody has tried) might be that linux/iommu.h > > > doesn't look something intended for the generic IOMMU-API. > > > > Oh, and as an additional note, the reason might also be that people were > > not aware of its existence :-) > > No. People actually read it and think that it's not intended for > generic purposes, i.e., it was designed for VT-d/AMD-IOMMU with KVM: > > http://lkml.org/lkml/2010/7/28/470 This states the as-is situation. There is not a single sentence that states why the iommu-api can't be extended to fit their needs. Nobody has ever written me an email about this to discuss this possibility. > You designed it for what you need at the time. It should have been > named appropriately to avoid confusion. Later, when we actually > understand what other IOMMUs need, we can evolve the specific API for > generic purposes. Then we can rename the API to more generic. At the time the iommu-api was written is was generic enough for what we had. So it was designed as an generic API. At this point in time nobody knew what the future requirements would we. So today it turns out that it is not generic enough anymore for latest hardware. The logical consequence is to fix this in the iommu-api. Joerg -- Joerg Roedel - AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo, Andrew Bowd Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Arnd Bergmann on 29 Jul 2010 07:30
On Thursday 29 July 2010, Roedel, Joerg wrote: > > You designed it for what you need at the time. It should have been > > named appropriately to avoid confusion. Later, when we actually > > understand what other IOMMUs need, we can evolve the specific API for > > generic purposes. Then we can rename the API to more generic. > > At the time the iommu-api was written is was generic enough for what we > had. So it was designed as an generic API. At this point in time nobody > knew what the future requirements would we. So today it turns out that > it is not generic enough anymore for latest hardware. The logical > consequence is to fix this in the iommu-api. Well, I think the real question is why we have two APIs that both claim to work with IOMMUs in a generic way and how we could unify the two. The Intel and AMD IOMMU drivers currently register at both the DMA API and the IOMMU API. The first one is used by everything except KVM and the second is only used by KVM. I really think we should not extend the (KVM) IOMMU API further but just use the generic DMA mapping api for KVM and extend it as necessary. It already has the concept of cache coherency and mapping/unmapping that are in the IOMMU API and could be extended to support domains as well, through the use of dma_attrs. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |