lkml.org 
[lkml]   [2002]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: File corruption when running VMware.
    On Sat, Apr 27, 2002 at 01:01:34AM +0200, Andrea Arcangeli wrote:
    > On Fri, Apr 26, 2002 at 05:30:37PM +0200, Petr Vandrovec wrote:
    > > On 24 Apr 02 at 2:01, Rik van Riel wrote:
    > > > On Wed, 24 Apr 2002, Hong-Gunn Chew wrote:
    > > >
    > > > > I have a repeatable problem when running VMware workstation 3.00 and
    > > > > 3.01. The cause is still unknown, and could be VMware itself, the
    > > > > hardware or the kernel.
    > > >
    > > > If you can reproduce it without VMware or with only the
    > > > open source part of VMware (ie without any of the binary
    > > > only parts) we might have a chance of debugging it.
    > >
    > > Hi again,
    > > one of 2.4.x kernel images available in SuSE's 8.0 has patched&enabled
    > > support for page tables in high memory, and this quickly revealed
    > > incompatibility between VMware's vmmon page table handling and
    > > ptes above directly mapped range.
    > >
    > > So if you have >890MB of RAM and your kernel is compiled with support
    > > for pte in high memory, please stop using VMware, or reconfigure your
    > > kernel to not use pte in high memory (4GB config without pte-in-highmem
    > > is OK). Using pte-in-highmem with vmmon will cause kernel oopses and/or
    >
    > passing to the kernel mem=850M in lilo at boot will be enough.

    I downloaded your latest driver from your site (vmware-ws-any-update16
    package) and I adjusted it this way:

    --- vmware-ws-any-update16/vmmon-only/linux/hostif.c.~1~ Sun Mar 31 20:44:35 2002
    +++ vmware-ws-any-update16/vmmon-only/linux/hostif.c Sat Apr 27 01:12:50 2002
    @@ -176,7 +176,7 @@
    unsigned long pagenr;
    pgd_t *pgd;
    pmd_t *pmd;
    - pte_t *pte;
    + pte_t *ptep, pte;

    pgd = pgd_offset(current->mm, addr);
    if (pgd_none(*pgd))
    @@ -184,10 +184,12 @@
    pmd = pmd_offset(pgd, addr);
    if (pmd_none(*pmd))
    return 0;
    - pte = pte_offset(pmd, addr);
    - if (!pte_present(*pte))
    + ptep = pte_offset_atomic(pmd, addr);
    + pte = *ptep;
    + pte_kunmap(ptep);
    + if (!pte_present(pte))
    return 0;
    - pagenr = pte_pagenr(*pte);
    + pagenr = pte_pagenr(pte);
    return pagenr;
    #else
    int pdoffset = PFN_2_PDOFF(ppn);
    --- vmware-ws-any-update16/vmnet-only/vmnetInt.h.~1~ Sat Mar 23 04:27:54 2002
    +++ vmware-ws-any-update16/vmnet-only/vmnetInt.h Sat Apr 27 01:16:43 2002
    @@ -96,10 +96,8 @@
    #endif


    -#ifndef KERNEL_2_5_5
    -# define pte_offset_map(_dir, _address) pte_offset(_dir, _address)
    -# define pte_unmap(_pte)
    -#endif
    +# define pte_offset_map(_dir, _address) pte_offset_atomic(_dir, _address)
    +# define pte_unmap(_pte) pte_kunmap(_pte);


    #ifndef KERNEL_2_4_8

    I'm running the patched driver right now with vmware 3.0 workstataion
    on my main desktop with 1G using 2.4.19-pre7 as kernel (pte-highmem
    enabled of course). If I'll find any instability of the host OS I'll let
    you know, so far it looks solid.

    Hope this helps,

    Andrea
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:25    [W:3.968 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site