{'fraction_non_alphanumeric': 0.01592623637887678, 'fraction_numerical': 0.0, 'mean_word_length': 4.97, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Hypervisor Support for Efficient Memory De-duplication

Memory de-duplication removes the memory state redundancy among virtual machines that run on the same physical machine by identifying common memory pages shared by these virtual machines and storing only one copy for each of common memory pages. A standard approach to identifying common memory pages is to hash the content of each memory page, and compare the resulting hash values. In a virtualized server, only the hyper visor is in a position to compute the hash value of every physical memory page on the server, but the memory de-duplication engine is best implemented outside the hyper visor for flexibility and simplicity reasons. A key design issue in the memory de-duplication engine is to minimize the performance impact of these hashing computations on the running VMs. To reduce this impact, memory page hashing should be performed with low overhead and when the CPU is idle. This paper describes why existing hyper visors do not provide adequate support for our memory de-duplication engine, how a new primitive called deferrable aggregate hyper call (DAH) fills the need, and what the resulting performance improvement is.