DragonFly BSD
DragonFly commits List (threaded) for 2013-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel -- x86_64: Do not set reserved bits in CR3.


From: Aggelos Economopoulos <aggelos@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 20 May 2013 12:08:00 -0700 (PDT)

commit 5e73d5fc48f6c48d9a638404bfea3e7040601f8e
Author: Aggelos Economopoulos <aggelos@dragonflybsd.org>
Date:   Mon May 20 20:56:07 2013 +0200

    kernel -- x86_64: Do not set reserved bits in CR3.
    
    The x86-64 platform code was setting PG_V, PG_U, and PG_RW bits in the
    CR3 register. While the bits were supposed to cleared, Intel and AMD
    hardware were ignoring them. Other x86-64 implementations, in
    particular the software emulator in Linux's KVM, do check that these
    reserved bits are zero.
    
    Fixes issue running DragonFly x86_64 on KVM hosts without
    two-dimensional (nested) paging.
    
    Tested on a variety of real hardware (AMD FX(tm)-8150, c2q 6600, others)
    and VM configurations (KVM on Intel/AMD hosts, Xen).
    
    Committing-on-behalf-of: Venkatesh Srinivas <vsrinivas@ops101.org>
    Reported-by: aggelos@, c.turner1, others.
    Testing-by: aggelos@, swildner@, mneumann@, ftigeot@, profmakx@, Enjolras
    Bug: 2561

Summary of changes:
 sys/platform/pc64/x86_64/pmap.c       | 1 -
 sys/platform/pc64/x86_64/vm_machdep.c | 1 -
 2 files changed, 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5e73d5fc48f6c48d9a638404bfea3e7040601f8e


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]