* kvm-86 fails to compile with "'IOMMU_CACHE' undeclared"
@ 2009-05-20 17:48 René Pfeiffer
2009-05-20 20:30 ` Nikola Ciprich
0 siblings, 1 reply; 7+ messages in thread
From: René Pfeiffer @ 2009-05-20 17:48 UTC (permalink / raw)
To: KVM list
[-- Attachment #1: Type: text/plain, Size: 1704 bytes --]
Hello!
I just tried to compile kvm-86 on two test machines and I get the
following error:
[...]
CC [M] /usr/src/build/kvm-86/kvm/kernel/x86/iommu.o
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_iommu_map_pages’:
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: ‘IOMMU_CACHE’ undeclared (first use in this function)
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: (Each undeclared identifier is reported only once
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: for each function it appears in.)
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_assign_device’:
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:155: error: implicit declaration of function ‘iommu_domain_has_cap’
/usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:156: error: ‘IOMMU_CAP_CACHE_COHERENCY’ undeclared (first use in this function)
make[4]: *** [/usr/src/build/kvm-86/kvm/kernel/x86/iommu.o] Error 1
make[3]: *** [/usr/src/build/kvm-86/kvm/kernel/x86] Error 2
make[2]: *** [_module_/usr/src/build/kvm-86/kvm/kernel] Error 2
make[1]: *** [all] Error 2
make: *** [kvm-kmod] Error 2
Both machines run Debian Lenny with a custom kernel (2.6.29.1 and
2.6.29.3). One machine is Intel-based (Core2Duo), one is AMD-based. Both
compiled earlier versions of kvm just fine. configure was run without
options.
Best,
René.
--
)\._.,--....,'``. fL Let GNU/Linux work for you while you take a nap.
/, _.. \ _\ (`._ ,. R. Pfeiffer <lynx at luchs.at> + http://web.luchs.at/
`._.-(,_..'--(,_..'`-.;.' - System administration + Consulting + Teaching -
Got mail delivery problems? http://web.luchs.at/information/blockedmail.php
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: kvm-86 fails to compile with "'IOMMU_CACHE' undeclared"
2009-05-20 17:48 kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" René Pfeiffer
@ 2009-05-20 20:30 ` Nikola Ciprich
2009-05-20 20:45 ` Nikola Ciprich
2009-05-22 7:51 ` kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" René Pfeiffer
0 siblings, 2 replies; 7+ messages in thread
From: Nikola Ciprich @ 2009-05-20 20:30 UTC (permalink / raw)
To: René Pfeiffer; +Cc: KVM list, nikola.ciprich
Hi Rene,
as a workaround, You can disable
AMD IOMMU support (AMD_IOMMU) and
Support for DMA Remapping Devices (EXPERIMENTAL) (DMAR)
in Your host kernel.
I'll post patch to disable KVM IOMMU support for kernels <2.6.30 soon.
BR
nik
On Wed, May 20, 2009 at 07:48:59PM +0200, René Pfeiffer wrote:
> Hello!
>
> I just tried to compile kvm-86 on two test machines and I get the
> following error:
>
> [...]
> CC [M] /usr/src/build/kvm-86/kvm/kernel/x86/iommu.o
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_iommu_map_pages’:
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: ‘IOMMU_CACHE’ undeclared (first use in this function)
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: (Each undeclared identifier is reported only once
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: for each function it appears in.)
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_assign_device’:
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:155: error: implicit declaration of function ‘iommu_domain_has_cap’
> /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:156: error: ‘IOMMU_CAP_CACHE_COHERENCY’ undeclared (first use in this function)
> make[4]: *** [/usr/src/build/kvm-86/kvm/kernel/x86/iommu.o] Error 1
> make[3]: *** [/usr/src/build/kvm-86/kvm/kernel/x86] Error 2
> make[2]: *** [_module_/usr/src/build/kvm-86/kvm/kernel] Error 2
> make[1]: *** [all] Error 2
> make: *** [kvm-kmod] Error 2
>
> Both machines run Debian Lenny with a custom kernel (2.6.29.1 and
> 2.6.29.3). One machine is Intel-based (Core2Duo), one is AMD-based. Both
> compiled earlier versions of kvm just fine. configure was run without
> options.
>
> Best,
> René.
>
> --
> )\._.,--....,'``. fL Let GNU/Linux work for you while you take a nap.
> /, _.. \ _\ (`._ ,. R. Pfeiffer <lynx at luchs.at> + http://web.luchs.at/
> `._.-(,_..'--(,_..'`-.;.' - System administration + Consulting + Teaching -
> Got mail delivery problems? http://web.luchs.at/information/blockedmail.php
--
-------------------------------------
Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava
tel.: +420 596 603 142
fax: +420 596 621 273
mobil: +420 777 093 799
www.linuxbox.cz
mobil servis: +420 737 238 656
email servis: servis@linuxbox.cz
-------------------------------------
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: kvm-86 fails to compile with "'IOMMU_CACHE' undeclared"
2009-05-20 20:30 ` Nikola Ciprich
@ 2009-05-20 20:45 ` Nikola Ciprich
2009-05-21 5:33 ` Chris Wright
2009-05-22 7:51 ` kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" René Pfeiffer
1 sibling, 1 reply; 7+ messages in thread
From: Nikola Ciprich @ 2009-05-20 20:45 UTC (permalink / raw)
To: René Pfeiffer; +Cc: KVM list, nikola.ciprich, Avi Kivity
Hi,
KVM-86 IOMMU uses features available since 2.6.30-rcXX, attached patch
disables its compilation on older kernels. I'm not sure if this is the
best way to disable it, but You can use it as a workaround.
Avi, is this OK? if so, please apply.
nik
diff -Naur kvm-kmod-devel-86/external-module-compat-comm.h kvm-kmod-devel-86-disable-iommu-for-old-kernels/external-module-compat-comm.h
--- kvm-kmod-devel-86/external-module-compat-comm.h 2009-05-20 15:59:56.000000000 +0200
+++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/external-module-compat-comm.h 2009-05-20 22:37:23.632038570 +0200
@@ -791,3 +791,7 @@
}
#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+#undef CONFIG_IOMMU_API
+#endif
diff -Naur kvm-kmod-devel-86/x86/iommu.c kvm-kmod-devel-86-disable-iommu-for-old-kernels/x86/iommu.c
--- kvm-kmod-devel-86/x86/iommu.c 2009-05-20 16:00:00.000000000 +0200
+++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/x86/iommu.c 2009-05-20 22:37:43.840878726 +0200
@@ -1,3 +1,4 @@
+#ifdef CONFIG_IOMMU_API
#ifndef KVM_UNIFDEF_H
#define KVM_UNIFDEF_H
@@ -271,3 +272,4 @@
iommu_domain_free(domain);
return 0;
}
+#endif
On Wed, May 20, 2009 at 10:30:22PM +0200, Nikola Ciprich wrote:
> Hi Rene,
> as a workaround, You can disable
> AMD IOMMU support (AMD_IOMMU) and
> Support for DMA Remapping Devices (EXPERIMENTAL) (DMAR)
> in Your host kernel.
> I'll post patch to disable KVM IOMMU support for kernels <2.6.30 soon.
> BR
> nik
>
> On Wed, May 20, 2009 at 07:48:59PM +0200, René Pfeiffer wrote:
> > Hello!
> >
> > I just tried to compile kvm-86 on two test machines and I get the
> > following error:
> >
> > [...]
> > CC [M] /usr/src/build/kvm-86/kvm/kernel/x86/iommu.o
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_iommu_map_pages’:
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: ‘IOMMU_CACHE’ undeclared (first use in this function)
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: (Each undeclared identifier is reported only once
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:90: error: for each function it appears in.)
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c: In function ‘kvm_assign_device’:
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:155: error: implicit declaration of function ‘iommu_domain_has_cap’
> > /usr/src/build/kvm-86/kvm/kernel/x86/iommu.c:156: error: ‘IOMMU_CAP_CACHE_COHERENCY’ undeclared (first use in this function)
> > make[4]: *** [/usr/src/build/kvm-86/kvm/kernel/x86/iommu.o] Error 1
> > make[3]: *** [/usr/src/build/kvm-86/kvm/kernel/x86] Error 2
> > make[2]: *** [_module_/usr/src/build/kvm-86/kvm/kernel] Error 2
> > make[1]: *** [all] Error 2
> > make: *** [kvm-kmod] Error 2
> >
> > Both machines run Debian Lenny with a custom kernel (2.6.29.1 and
> > 2.6.29.3). One machine is Intel-based (Core2Duo), one is AMD-based. Both
> > compiled earlier versions of kvm just fine. configure was run without
> > options.
> >
> > Best,
> > René.
> >
> > --
> > )\._.,--....,'``. fL Let GNU/Linux work for you while you take a nap.
> > /, _.. \ _\ (`._ ,. R. Pfeiffer <lynx at luchs.at> + http://web.luchs.at/
> > `._.-(,_..'--(,_..'`-.;.' - System administration + Consulting + Teaching -
> > Got mail delivery problems? http://web.luchs.at/information/blockedmail.php
>
>
>
> --
> -------------------------------------
> Nikola CIPRICH
> LinuxBox.cz, s.r.o.
> 28. rijna 168, 709 01 Ostrava
>
> tel.: +420 596 603 142
> fax: +420 596 621 273
> mobil: +420 777 093 799
>
> www.linuxbox.cz
>
> mobil servis: +420 737 238 656
> email servis: servis@linuxbox.cz
> -------------------------------------
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
-------------------------------------
Nikola CIPRICH
LinuxBox.cz, s.r.o.
28. rijna 168, 709 01 Ostrava
tel.: +420 596 603 142
fax: +420 596 621 273
mobil: +420 777 093 799
www.linuxbox.cz
mobil servis: +420 737 238 656
email servis: servis@linuxbox.cz
-------------------------------------
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: kvm-86 fails to compile with "'IOMMU_CACHE' undeclared"
2009-05-20 20:45 ` Nikola Ciprich
@ 2009-05-21 5:33 ` Chris Wright
2009-05-21 6:18 ` [PATCH kvm-kmod] build fix for !#defined IOMMU_CACHE Chris Wright
0 siblings, 1 reply; 7+ messages in thread
From: Chris Wright @ 2009-05-21 5:33 UTC (permalink / raw)
To: Nikola Ciprich; +Cc: René Pfeiffer, KVM list, nikola.ciprich, Avi Kivity
* Nikola Ciprich (extmaillist@linuxbox.cz) wrote:
> diff -Naur kvm-kmod-devel-86/external-module-compat-comm.h kvm-kmod-devel-86-disable-iommu-for-old-kernels/external-module-compat-comm.h
> --- kvm-kmod-devel-86/external-module-compat-comm.h 2009-05-20 15:59:56.000000000 +0200
> +++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/external-module-compat-comm.h 2009-05-20 22:37:23.632038570 +0200
> @@ -791,3 +791,7 @@
> }
>
> #endif
> +
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
> +#undef CONFIG_IOMMU_API
> +#endif
This is too heavy handed. The only thing that's new is newer iommu
code provides a query for cache coherency. You could do something as
simple as:
#ifndef IOMMU_CACHE
#define IOMMU_CACHE (4)
#define IOMMU_CAP_CACHE_COHERENCY 0x1
static inline int kvm_iommu_domain_has_cap(struct iommu_domain *domain,
unsigned long cap)
{
return 0;
}
#else
#define kvm_iommu_domain_has_cap iommu_domain_has_cap
#endif
and add it to the compat_api list in the sync script
> diff -Naur kvm-kmod-devel-86/x86/iommu.c kvm-kmod-devel-86-disable-iommu-for-old-kernels/x86/iommu.c
> --- kvm-kmod-devel-86/x86/iommu.c 2009-05-20 16:00:00.000000000 +0200
> +++ kvm-kmod-devel-86-disable-iommu-for-old-kernels/x86/iommu.c 2009-05-20 22:37:43.840878726 +0200
> @@ -1,3 +1,4 @@
> +#ifdef CONFIG_IOMMU_API
> #ifndef KVM_UNIFDEF_H
> #define KVM_UNIFDEF_H
>
> @@ -271,3 +272,4 @@
> iommu_domain_free(domain);
> return 0;
> }
> +#endif
BTW, just to clarify something...this file isn't part of kvm-kmod repo,
it's a generated file from the 'make sync' process.
thanks,
-chris
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH kvm-kmod] build fix for !#defined IOMMU_CACHE
2009-05-21 5:33 ` Chris Wright
@ 2009-05-21 6:18 ` Chris Wright
2009-05-21 7:46 ` Avi Kivity
0 siblings, 1 reply; 7+ messages in thread
From: Chris Wright @ 2009-05-21 6:18 UTC (permalink / raw)
To: Nikola Ciprich
Cc: Chris Wright, René Pfeiffer, KVM list, nikola.ciprich,
Avi Kivity
This should fix the build for kernels that don't have IOMMU_CACHE,
IOMMU_CAP_CACHE_COHERENCY or iommu_domain_has_cap defined.
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
external-module-compat-comm.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/external-module-compat-comm.h b/external-module-compat-comm.h
index f6975e0..adf45c5 100644
--- a/external-module-compat-comm.h
+++ b/external-module-compat-comm.h
@@ -791,3 +793,16 @@ static inline struct page *compound_head(struct page *page)
}
#endif
+
+#include <linux/iommu.h>
+#ifndef IOMMU_CACHE
+
+#define IOMMU_CACHE (4)
+#define IOMMU_CAP_CACHE_COHERENCY 0x1
+static inline int iommu_domain_has_cap(struct iommu_domain *domain,
+ unsigned long cap)
+{
+ return 0;
+}
+
+#endif
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH kvm-kmod] build fix for !#defined IOMMU_CACHE
2009-05-21 6:18 ` [PATCH kvm-kmod] build fix for !#defined IOMMU_CACHE Chris Wright
@ 2009-05-21 7:46 ` Avi Kivity
0 siblings, 0 replies; 7+ messages in thread
From: Avi Kivity @ 2009-05-21 7:46 UTC (permalink / raw)
To: Chris Wright; +Cc: Nikola Ciprich, René Pfeiffer, KVM list, nikola.ciprich
Chris Wright wrote:
> This should fix the build for kernels that don't have IOMMU_CACHE,
> IOMMU_CAP_CACHE_COHERENCY or iommu_domain_has_cap defined.
>
>
Applied, thanks.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: kvm-86 fails to compile with "'IOMMU_CACHE' undeclared"
2009-05-20 20:30 ` Nikola Ciprich
2009-05-20 20:45 ` Nikola Ciprich
@ 2009-05-22 7:51 ` René Pfeiffer
1 sibling, 0 replies; 7+ messages in thread
From: René Pfeiffer @ 2009-05-22 7:51 UTC (permalink / raw)
To: KVM list; +Cc: nikola.ciprich
[-- Attachment #1: Type: text/plain, Size: 795 bytes --]
On May 20, 2009 at 2230 +0200, Nikola Ciprich appeared and said:
> Hi Rene,
> as a workaround, You can disable
> AMD IOMMU support (AMD_IOMMU) and
> Support for DMA Remapping Devices (EXPERIMENTAL) (DMAR)
> in Your host kernel.
Ok, thanks for the clarification. I wasn't sure what the cause for the
error was. I suspected the kernel, but I didn't check thoroughly. I'll
be moving to 2.6.30 anyway on the test machines.
Thanks for the patch.
Best,
René.
--
)\._.,--....,'``. fL Let GNU/Linux work for you while you take a nap.
/, _.. \ _\ (`._ ,. R. Pfeiffer <lynx at luchs.at> + http://web.luchs.at/
`._.-(,_..'--(,_..'`-.;.' - System administration + Consulting + Teaching -
Got mail delivery problems? http://web.luchs.at/information/blockedmail.php
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-05-22 7:51 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-20 17:48 kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" René Pfeiffer
2009-05-20 20:30 ` Nikola Ciprich
2009-05-20 20:45 ` Nikola Ciprich
2009-05-21 5:33 ` Chris Wright
2009-05-21 6:18 ` [PATCH kvm-kmod] build fix for !#defined IOMMU_CACHE Chris Wright
2009-05-21 7:46 ` Avi Kivity
2009-05-22 7:51 ` kvm-86 fails to compile with "'IOMMU_CACHE' undeclared" René Pfeiffer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).