Revision 74ca317c26a3f8543203b61d262c0ab2e30c384e authored by Vivek Goyal on 29 August 2014, 22:18:46 UTC, committed by Linus Torvalds on 29 August 2014, 23:28:16 UTC
Currently new system call kexec_file_load() and all the associated code
compiles if CONFIG_KEXEC=y.  But new syscall also compiles purgatory
code which currently uses gcc option -mcmodel=large.  This option seems
to be available only gcc 4.4 onwards.

Hiding new functionality behind a new config option will not break
existing users of old gcc.  Those who wish to enable new functionality
will require new gcc.  Having said that, I am trying to figure out how
can I move away from using -mcmodel=large but that can take a while.

I think there are other advantages of introducing this new config
option.  As this option will be enabled only on x86_64, other arches
don't have to compile generic kexec code which will never be used.  This
new code selects CRYPTO=y and CRYPTO_SHA256=y.  And all other arches had
to do this for CONFIG_KEXEC.  Now with introduction of new config
option, we can remove crypto dependency from other arches.

Now CONFIG_KEXEC_FILE is available only on x86_64.  So whereever I had
CONFIG_X86_64 defined, I got rid of that.

For CONFIG_KEXEC_FILE, instead of doing select CRYPTO=y, I changed it to
"depends on CRYPTO=y".  This should be safer as "select" is not
recursive.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Tested-by: Shaun Ruffell <sruffell@digium.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent b38af47
Raw File
00README.txt
KVM/MIPS Trap & Emulate Release Notes
=====================================

(1) KVM/MIPS should support MIPS32R2 and beyond. It has been tested on the following platforms:
    Malta Board with FPGA based 34K
    Sigma Designs TangoX board with a 24K based 8654 SoC.
    Malta Board with 74K @ 1GHz

(2) Both Guest kernel and Guest Userspace execute in UM.
    Guest User address space:   0x00000000 -> 0x40000000
    Guest Kernel Unmapped:      0x40000000 -> 0x60000000
    Guest Kernel Mapped:        0x60000000 -> 0x80000000

    Guest Usermode virtual memory is limited to 1GB.

(2) 16K Page Sizes: Both Host Kernel and Guest Kernel should have the same page size, currently at least 16K.
    Note that due to cache aliasing issues, 4K page sizes are NOT supported.

(3) No HugeTLB Support
    Both the host kernel and Guest kernel should have the page size set to 16K.
    This will be implemented in a future release.

(4) KVM/MIPS does not have support for SMP Guests
    Linux-3.7-rc2 based SMP guest hangs due to the following code sequence in the generated TLB handlers:
	LL/TLBP/SC.  Since the TLBP instruction causes a trap the reservation gets cleared
	when we ERET back to the guest. This causes the guest to hang in an infinite loop.
	This will be fixed in a future release.

(5) Use Host FPU
    Currently KVM/MIPS emulates a 24K CPU without a FPU.
    This will be fixed in a future release
back to top