• Sean Christopherson's avatar
    KVM: selftests: Provide a global pseudo-RNG instance for all tests · cb6c6914
    Sean Christopherson authored
    Add a global guest_random_state instance, i.e. a pseudo-RNG, so that an
    RNG is available for *all* tests.  This will allow randomizing behavior
    in core library code, e.g. x86 will utilize the pRNG to conditionally
    force emulation of writes from within common guest code.
    
    To allow for deterministic runs, and to be compatible with existing tests,
    allow tests to override the seed used to initialize the pRNG.
    
    Note, the seed *must* be overwritten before a VM is created in order for
    the seed to take effect, though it's perfectly fine for a test to
    initialize multiple VMs with different seeds.
    
    And as evidenced by memstress_guest_code(), it's also a-ok to instantiate
    more RNGs using the global seed (or a modified version of it).  The goal
    of the global RNG is purely to ensure that _a_ source of random numbers is
    available, it doesn't have to be the _only_ RNG.
    
    Link: https://lore.kernel.org/r/20240314185459.2439072-2-seanjc@google.comSigned-off-by: default avatarSean Christopherson <seanjc@google.com>
    cb6c6914
memstress.c 10.2 KB