Source-Changes archive

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

CVS commit: [netbsd-5-1] src



Module Name:    src
Committed By:   bouyer
Date:           Sat Mar 17 18:46:30 UTC 2012

Modified Files:
        src/doc [netbsd-5-1]: HACKS
        src/sys/arch/sparc64/conf [netbsd-5-1]: Makefile.sparc64 files.sparc64
        src/sys/arch/sparc64/sparc64 [netbsd-5-1]: locore.s

Log Message:
Pull up following revision(s) (requested by nakayama in ticket #1736):
        sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
        doc/HACKS: revision 1.123
        sys/arch/sparc64/conf/files.sparc64: revision 1.138
        sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case.  So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.


To generate a diff of this commit:
cvs rdiff -u -r1.110.2.2 -r1.110.2.2.6.1 src/doc/HACKS
cvs rdiff -u -r1.67.4.1 -r1.67.4.1.2.1 \
    src/sys/arch/sparc64/conf/Makefile.sparc64
cvs rdiff -u -r1.118.20.1 -r1.118.20.1.2.1 \
    src/sys/arch/sparc64/conf/files.sparc64
cvs rdiff -u -r1.286.2.2 -r1.286.2.2.2.1 \
    src/sys/arch/sparc64/sparc64/locore.s

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index