|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 8/8] mm: Make sure pages are scrubbed
>>> On 19.05.17 at 17:50, <boris.ostrovsky@xxxxxxxxxx> wrote:
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -114,6 +114,13 @@ config DEVICE_TREE_DEBUG
> logged in the Xen ring buffer.
> If unsure, say N here.
>
> +config SCRUB_DEBUG
> + bool "Page scrubbing test"
> + default DEBUG
> + ---help---
Indentation.
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -170,6 +170,10 @@ boolean_param("bootscrub", opt_bootscrub);
> static unsigned long __initdata opt_bootscrub_chunk = MB(128);
> size_param("bootscrub_chunk", opt_bootscrub_chunk);
>
> +#ifdef CONFIG_SCRUB_DEBUG
> +static bool boot_scrub_done;
It's not all that important as it's debugging code only, but -
__read_mostly?
> +static void check_one_page(struct page_info *pg)
> +{
> +#ifdef CONFIG_SCRUB_DEBUG
> + mfn_t mfn = _mfn(page_to_mfn(pg));
> + uint64_t *ptr;
const
> + unsigned i;
unsigned int
> @@ -2269,7 +2325,8 @@ void scrub_one_page(struct page_info *pg)
>
> #ifndef NDEBUG
> /* Avoid callers relying on allocations returning zeroed pages. */
> - unmap_domain_page(memset(__map_domain_page(pg), 0xc2, PAGE_SIZE));
> + unmap_domain_page(memset(__map_domain_page(pg),
> + SCRUB_BYTE_PATTERN, PAGE_SIZE));
> #else
> /* For a production build, clear_page() is the fastest way to scrub. */
> clear_domain_page(_mfn(page_to_mfn(pg)));
With EXPERT=y SCRUB_DEBUG can also be selected for non-debug
builds, in which case they will be zeroed but check_one_page() will
nevertheless check for the non-zero pattern. IOW I think the
pattern needs to be zero for non-debug builds, at which point the
#if here would probably better check whether the pattern is non-
zero.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |