Re: do we want to kill VM_RESERVED or not? [was Re: 2.6.5-rc1-aa3]

From: Andrea Arcangeli
Date: Sun Mar 21 2004 - 07:16:15 EST


On Sun, Mar 21, 2004 at 01:00:05PM +0100, Andrea Arcangeli wrote:
> On Sun, Mar 21, 2004 at 12:49:39PM +0100, Andrea Arcangeli wrote:
> > the additional hardness you could remove the BUG_ON on in memory.c at line
>
> I now discovered that WARN_ON exists too, so probably the best is to
> simply change that to a WARN_ON (or to a printk). If one will ever do a
> pagetable walk again, one has to change that to a BUG_ON by that time.
> Kernel will work stable regardless of that condition triggering.
>
> --- x/mm/memory.c.~1~ 2004-03-20 22:12:43.000000000 +0100
> +++ x/mm/memory.c 2004-03-21 12:59:05.331923016 +0100
> @@ -1429,7 +1429,7 @@ retry:
> * real anonymous pages, they're "device" reserved pages instead.
> */
> reserved = !!(vma->vm_flags & VM_RESERVED);
> - BUG_ON(reserved == pageable);
> + WARN_ON(reserved == pageable);
>
> /*
> * Should we do an early C-O-W break?

and here the vmware proper fix:

--- vmmon-only/linux/driver.c.~1~ 2004-03-21 13:07:02.869326296 +0100
+++ vmmon-only/linux/driver.c 2004-03-21 13:07:28.320457136 +0100
@@ -1083,6 +1083,7 @@ static int LinuxDriverMmap(struct file *
}
/* Clear VM_IO, otherwise SuSE's kernels refuse to do get_user_pages */
vma->vm_flags &= ~VM_IO;
+ vma->vm_flags |= VM_RESERVED;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 3)
vma->vm_file = filp;
filp->f_count++;


You should apply both (though just applying one of the two will fix it).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/