Browse Source

page-vary: Build set_preferred_target_page_bits as common code

Use target_info->page_bits_vary to merge
set_preferred_target_page_bits_common into
set_preferred_target_page_bits in page-vary-common.c.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20260217095106.598486-5-richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
master
Richard Henderson 6 months ago
committed by Philippe Mathieu-Daudé
parent
commit
79674d07d4
  1. 1
      include/exec/page-vary.h
  2. 29
      page-vary-common.c
  3. 10
      page-vary-target.c

1
include/exec/page-vary.h

@ -41,7 +41,6 @@ typedef struct {
} TargetPageBits; } TargetPageBits;
#ifdef IN_PAGE_VARY #ifdef IN_PAGE_VARY
bool set_preferred_target_page_bits_common(int bits);
void finalize_target_page_bits_common(int min); void finalize_target_page_bits_common(int min);
#endif #endif

29
page-vary-common.c

@ -20,25 +20,32 @@
#define IN_PAGE_VARY 1 #define IN_PAGE_VARY 1
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "qemu/target-info-impl.h"
#include "exec/page-vary.h" #include "exec/page-vary.h"
/* WARNING: This file must *not* be complied with -flto. */ /* WARNING: This file must *not* be complied with -flto. */
TargetPageBits target_page; TargetPageBits target_page;
bool set_preferred_target_page_bits_common(int bits) bool set_preferred_target_page_bits(int bits)
{ {
/* const TargetInfo *ti = target_info();
* The target page size is the lowest common denominator for all
* the CPUs in the system, so we can only make it smaller, never assert(bits >= TARGET_PAGE_BITS_MIN);
* larger. And we can't make it smaller once we've committed to if (ti->page_bits_vary) {
* a particular size.
*/ /*
if (target_page.bits == 0 || target_page.bits > bits) { * The target page size is the lowest common denominator for all
if (target_page.decided) { * the CPUs in the system, so we can only make it smaller, never
return false; * larger. And we can't make it smaller once we've committed to
* a particular size.
*/
if (target_page.bits == 0 || target_page.bits > bits) {
if (target_page.decided) {
return false;
}
target_page.bits = bits;
} }
target_page.bits = bits;
} }
return true; return true;
} }

10
page-vary-target.c

@ -39,16 +39,6 @@ int migration_legacy_page_bits(void)
} }
#endif #endif
bool set_preferred_target_page_bits(int bits)
{
assert(bits >= TARGET_PAGE_BITS_MIN);
#ifdef TARGET_PAGE_BITS_VARY
return set_preferred_target_page_bits_common(bits);
#else
return true;
#endif
}
void finalize_target_page_bits(void) void finalize_target_page_bits(void)
{ {
#ifndef TARGET_PAGE_BITS_VARY #ifndef TARGET_PAGE_BITS_VARY

Loading…
Cancel
Save