Re: swapping with MMU Notifiers V2

Andrea Arcangeli
2008-02-11T11:37:46Z

On Mon, Feb 11, 2008 at 10:20:37AM +0200, Avi Kivity wrote:
> Andrea Arcangeli wrote:
>> On Thu, Jan 31, 2008 at 01:58:42PM +0100, Andrea Arcangeli wrote:
>>
>>> It might also be something stale in the buildsystem (perhaps a distcc
>>> of ccache glitch?), I also cleared 1G of ccache just to be sure in
>>>
>>
>> My build problem might have been related to the fact the
>> kvm-userland/kernel/include directory isn't used by the kernel build
>> system while building the external module. I did the kvm modifications
>> to the kvm.git, synching from kvm.git to kvm-userland.git and then
>> building the external module against a third tree that happen to have
>> the kvm_* headers too but slightly different. I thought the
>> kvm-userland/kernel/include directory was used but apparently it isn't
>> anymore because the way it gets priority is a bit fragile.
>>
>
> It is used; for example it supplies headers that don't exist on older
> kernels. The problem is likely more subtle.

See gcc -E for the incorrect include behavior:

# 13
"/home/andrea/kernel/kvm-userspace/kernel/external-module-compat.h"
2
# 1 "/home/andrea/kernel/kvm-userspace/kernel/include/linux/kvm.h" 1
# 11 "/home/andrea/kernel/kvm-userspace/kernel/include/linux/kvm.h"

kvm.h correctly comes from $LINUX sync. But then the first instance of
kvm_host.h comes from $KERNELDIR (because it exists now, it wasn't a
problem with older mainline kernels because kvm_host.h didn't exist
yet there)

# 16 "/home/andrea/kernel/kvm-userspace/kernel/svm.c"
# 1 "include/linux/kvm_host.h" 1
# 10 "include/linux/kvm_host.h"

Any modification to linux/kvm_host.h wouldn't be picked up without my
fix. This isn't enough to solve my troubles with last kvm-userland but
at least the right include files are picked now so there are hopefully
no more subtle build troubles with my patch applied.