ia64: make IOMMU respect the segment boundary limits
PATCH 1/1 ia64: make IOMMU respect the segment boundary limits
This patch is another sequel to my patchset that fixes iommu segment boundary problems, that is, IOMMUs allocate memory areas without considering a low level driver's segment boundary limits:
http://www.mail-archive.com/[email protected]/msg11919.html
This patchset fixes the IA64 IOMMU code.
This assumes that ioc->ibase is on iovp_size boundary. If not, please let me know. I'll fix the patch.
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -mm] ia64: make IOMMU respect the segment boundary limits
This makes IA64's IOMMU implementation not allocate a memory area spanning LLD's segment boundary.
--- arch/ia64/Kconfig | 3 ++ arch/ia64/hp/common/sba_iommu.c | 56 +++++++++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 17 deletions(-)
arch/ia64/Kconfig +3 -0
@@ -611,6 +611,9 @@ config IRQ_PER_CPU bool default y +config IOMMU_HELPER + def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC) + source "arch/ia64/hp/sim/Kconfig" source "arch/ia64/Kconfig.debug"
arch/ia64/hp/common/sba_iommu.c +39 -17
137 lines not on this page · raw message
Signature · 1 line
1.5.3.7
Quoted 5 lines · On Mon, 10 Mar 2008 22:17:20 +0900 FUJITA Tomonori…
This patch is another sequel to my patchset that fixes iommu segment boundary problems, that is, IOMMUs allocate memory areas without considering a low level driver's segment boundary limits:
Please make this easier.
afacit the patches to which you refer are already in mainline, so this is *not* a "-mm" patch. It is needed in mainline, correct?
Quoted 1 line
This patchset fixes the IA64 IOMMU code.
And if it fixes a bug then it is needed in 2.6.25.
Is that correct?
Quoted 2 lines
This assumes that
ioc->ibaseis oniovp_sizeboundary. If not, please let me know. I'll fix the patch.
Who is the person who who knows the answer to this?
Does this mean that the patch wasn't runtime tested? If so, how do you know there is a bug?
Quoted 5 lines
Quoted 1 line
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -mm] ia64: make IOMMU respect the segment boundary limits
This makes IA64's IOMMU implementation not allocate a memory area spanning LLD's segment boundary.
This changelog doesn't actually tell us that this patch fixed a bug.
It should tell us what the bug is, and how it fixed it, please.
Quoted 6 lines
Signed-off-by FUJITA Tomonori <[email protected]>Cc Tony Luck <[email protected]>Cc Andrew Morton <[email protected]>--- arch/ia64/Kconfig | 3 ++ arch/ia64/hp/common/sba_iommu.c | 56 +++++++++++++++++++++++++++------------
Quoted 9 lines · On Mon, 10 Mar 2008 20:33:44 -0700 Andrew Morton <[email protected]>…
Quoted 5 lines · On Mon, 10 Mar 2008 22:17:20 +0900 FUJITA Tomonori…
This patch is another sequel to my patchset that fixes iommu segment boundary problems, that is, IOMMUs allocate memory areas without considering a low level driver's segment boundary limits:
Please make this easier.
Very sorry,
Quoted 2 lines
afacit the patches to which you refer are already in mainline, so this is *not* a "-mm" patch. It is needed in mainline, correct?
It's not needed immediately. Please apply it to -mm.
Quoted 5 lines
Quoted 1 line
This patchset fixes the IA64 IOMMU code.
And if it fixes a bug then it is needed in 2.6.25.
Is that correct?
No, it isn't needed in 2.6.25. Sorry, I shouldn't have used 'fixes'.
IOMMUs allocate memory areas without considering a low level driver's segment boundary limits. Thus low level drivers have a workaround to adjust scatter lists that IOMMUs build. Duplicating such workaround in many LLDs and adjusting scatter lists in LLDs again are not good (because they easily lead to bugs especially after sg chain introduction and not efficient, etc).
I've been modifying some of the IOMMUs to make them respect low level drivers' limits.
Quoted 4 lines
Quoted 2 lines
This assumes that
ioc->ibaseis oniovp_sizeboundary. If not, please let me know. I'll fix the patch.Who is the person who who knows the answer to this?
I expected that someone in IA64 list might konw the answer. I put BUG_ON so we will know the answer eventually even if nobody knows it.
Quoted 2 lines
Does this mean that the patch wasn't runtime tested? If so, how do you know there is a bug?
Sorry, I don't have IA64. So it's not tested. I read the code and I learned that IA64's IOMMU ignores segment boundary limits.
I want the patch to be tested in -mm kernels and hope that it will be merged into 2.6.26.
Quoted 9 lines
Quoted 5 lines
Quoted 1 line
Quoted 1 line
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH -mm] ia64: make IOMMU respect the segment boundary limits
This makes IA64's IOMMU implementation not allocate a memory area spanning LLD's segment boundary.
This changelog doesn't actually tell us that this patch fixed a bug.
It should tell us what the bug is, and how it fixed it, please.
How about the following description?
IA64's IOMMU implementation allocates memory areas spanning LLD's segment boundary limit. It forces low level drivers to have a workaround to adjust scatter lists that the IOMMU builds.
We are in the process of making all the IOMMUs respect the segment boundary limits to remove such work around in LLDs. This patch is for IA64's IOMMU.
Thanks,