* [PATCH 0/3] optimize handling of memory debugging parameters @ 2020-10-26 17:33 Vlastimil Babka 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka ` (2 more replies) 0 siblings, 3 replies; 18+ messages in thread From: Vlastimil Babka @ 2020-10-26 17:33 UTC (permalink / raw) To: Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Vlastimil Babka We currently have several kernel parameters that affect page allocator wrt debugging and hardening, some also with config options: init_on_alloc, init_on_free, page_poison, debug_pagealloc. These options generally have their own static keys, but sometimes a decision for e.g. clearing a page depends on multiple options, and the handling is not as efficient as it could be. This series addresses that by centralizing the decisions into a new init_mem_debugging() function that enables individual static keys, and most paths now rely on a single static key check. Subtle dependency on the order of parameters is also eliminated (Patch 1). The result is more efficient and hopefully also more readable code. Vlastimil Babka (3): mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters mm, page_poison: use static key more efficiently mm, page_alloc: reduce static keys in prep_new_page() drivers/virtio/virtio_balloon.c | 2 +- include/linux/mm.h | 36 ++++----- init/main.c | 2 +- mm/page_alloc.c | 126 ++++++++++++++++++-------------- mm/page_poison.c | 40 ++-------- 5 files changed, 97 insertions(+), 109 deletions(-) -- 2.29.0 ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters 2020-10-26 17:33 [PATCH 0/3] optimize handling of memory debugging parameters Vlastimil Babka @ 2020-10-26 17:33 ` Vlastimil Babka 2020-10-27 9:03 ` David Hildenbrand 2020-10-28 8:31 ` Mike Rapoport 2020-10-26 17:33 ` [PATCH 2/3] mm, page_poison: use static key more efficiently Vlastimil Babka 2020-10-26 17:33 ` [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() Vlastimil Babka 2 siblings, 2 replies; 18+ messages in thread From: Vlastimil Babka @ 2020-10-26 17:33 UTC (permalink / raw) To: Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Vlastimil Babka Enabling page_poison=1 together with init_on_alloc=1 or init_on_free=1 produces a warning in dmesg that page_poison takes precendence. However, as these warnings are printed in early_param handlers for init_on_alloc/free, they are not printed if page_poison is enabled later on the command line (handlers are called in the order of their parameters), or when init_on_alloc/free is always enabled by the respective config option - before the page_poison early param handler is called, it is not considered to be enabled. This is inconsistent. We can remove the dependency on order by making the init_on_* parameters only set a boolean variable, and postponing the evaluation after all early params have been processed. Introduce a new init_mem_debugging() function for that, and move the related debug_pagealloc processing there as well. As a result init_mem_debugging() knows always accurately if init_on_* and/or page_poison options were enabled. Thus we can also optimize want_init_on_alloc() and want_init_on_free(). We don't need to check page_poisoning_enabled() there, we can instead not enable the init_on_* tracepoint at all, if page poisoning is enabled. This results in a simpler and more effective code. Signed-off-by: Vlastimil Babka <vbabka@suse.cz> --- include/linux/mm.h | 20 ++-------- init/main.c | 2 +- mm/page_alloc.c | 94 +++++++++++++++++++++++----------------------- 3 files changed, 50 insertions(+), 66 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index ef360fe70aaf..c6a0adccf2fe 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2865,6 +2865,7 @@ extern int apply_to_existing_page_range(struct mm_struct *mm, unsigned long address, unsigned long size, pte_fn_t fn, void *data); +extern void init_mem_debugging(void); #ifdef CONFIG_PAGE_POISONING extern bool page_poisoning_enabled(void); extern void kernel_poison_pages(struct page *page, int numpages, int enable); @@ -2874,35 +2875,20 @@ static inline void kernel_poison_pages(struct page *page, int numpages, int enable) { } #endif -#ifdef CONFIG_INIT_ON_ALLOC_DEFAULT_ON -DECLARE_STATIC_KEY_TRUE(init_on_alloc); -#else DECLARE_STATIC_KEY_FALSE(init_on_alloc); -#endif static inline bool want_init_on_alloc(gfp_t flags) { - if (static_branch_unlikely(&init_on_alloc) && - !page_poisoning_enabled()) + if (static_branch_unlikely(&init_on_alloc)) return true; return flags & __GFP_ZERO; } -#ifdef CONFIG_INIT_ON_FREE_DEFAULT_ON -DECLARE_STATIC_KEY_TRUE(init_on_free); -#else DECLARE_STATIC_KEY_FALSE(init_on_free); -#endif static inline bool want_init_on_free(void) { - return static_branch_unlikely(&init_on_free) && - !page_poisoning_enabled(); + return static_branch_unlikely(&init_on_free); } -#ifdef CONFIG_DEBUG_PAGEALLOC -extern void init_debug_pagealloc(void); -#else -static inline void init_debug_pagealloc(void) {} -#endif extern bool _debug_pagealloc_enabled_early; DECLARE_STATIC_KEY_FALSE(_debug_pagealloc_enabled); diff --git a/init/main.c b/init/main.c index 130376ec10ba..dca5b9093742 100644 --- a/init/main.c +++ b/init/main.c @@ -815,7 +815,7 @@ static void __init mm_init(void) * bigger than MAX_ORDER unless SPARSEMEM. */ page_ext_init_flatmem(); - init_debug_pagealloc(); + init_mem_debugging(); report_meminit(); mem_init(); kmem_cache_init(); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 23f5066bd4a5..b168c58ef337 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -165,53 +165,26 @@ unsigned long totalcma_pages __read_mostly; int percpu_pagelist_fraction; gfp_t gfp_allowed_mask __read_mostly = GFP_BOOT_MASK; -#ifdef CONFIG_INIT_ON_ALLOC_DEFAULT_ON -DEFINE_STATIC_KEY_TRUE(init_on_alloc); -#else -DEFINE_STATIC_KEY_FALSE(init_on_alloc); -#endif +DEFINE_STATIC_KEY_FALSE_RO(init_on_alloc); EXPORT_SYMBOL(init_on_alloc); -#ifdef CONFIG_INIT_ON_FREE_DEFAULT_ON -DEFINE_STATIC_KEY_TRUE(init_on_free); -#else -DEFINE_STATIC_KEY_FALSE(init_on_free); -#endif +DEFINE_STATIC_KEY_FALSE_RO(init_on_free); EXPORT_SYMBOL(init_on_free); +static bool _init_on_alloc_enabled_early __read_mostly + = IS_ENABLED(CONFIG_INIT_ON_ALLOC_DEFAULT_ON); static int __init early_init_on_alloc(char *buf) { - int ret; - bool bool_result; - ret = kstrtobool(buf, &bool_result); - if (ret) - return ret; - if (bool_result && page_poisoning_enabled()) - pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, will take precedence over init_on_alloc\n"); - if (bool_result) - static_branch_enable(&init_on_alloc); - else - static_branch_disable(&init_on_alloc); - return 0; + return kstrtobool(buf, &_init_on_alloc_enabled_early); } early_param("init_on_alloc", early_init_on_alloc); +static bool _init_on_free_enabled_early __read_mostly + = IS_ENABLED(CONFIG_INIT_ON_FREE_DEFAULT_ON); static int __init early_init_on_free(char *buf) { - int ret; - bool bool_result; - - ret = kstrtobool(buf, &bool_result); - if (ret) - return ret; - if (bool_result && page_poisoning_enabled()) - pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, will take precedence over init_on_free\n"); - if (bool_result) - static_branch_enable(&init_on_free); - else - static_branch_disable(&init_on_free); - return 0; + return kstrtobool(buf, &_init_on_free_enabled_early); } early_param("init_on_free", early_init_on_free); @@ -728,19 +701,6 @@ static int __init early_debug_pagealloc(char *buf) } early_param("debug_pagealloc", early_debug_pagealloc); -void init_debug_pagealloc(void) -{ - if (!debug_pagealloc_enabled()) - return; - - static_branch_enable(&_debug_pagealloc_enabled); - - if (!debug_guardpage_minorder()) - return; - - static_branch_enable(&_debug_guardpage_enabled); -} - static int __init debug_guardpage_minorder_setup(char *buf) { unsigned long res; @@ -792,6 +752,44 @@ static inline void clear_page_guard(struct zone *zone, struct page *page, unsigned int order, int migratetype) {} #endif +/* + * Enable static keys related to various memory debugging and hardening options. + * Some override others, and depend on early params that are evaluated in the + * order of appearance. So we need to first gather the full picture of what was + * enabled, and then make decisions. + */ +void init_mem_debugging() +{ + if (_init_on_alloc_enabled_early) { + if (page_poisoning_enabled()) { + pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, " + "will take precedence over init_on_alloc\n"); + } else { + static_branch_enable(&init_on_alloc); + } + } + if (_init_on_free_enabled_early) { + if (page_poisoning_enabled()) { + pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, " + "will take precedence over init_on_free\n"); + } else { + static_branch_enable(&init_on_free); + } + } + +#ifdef CONFIG_DEBUG_PAGEALLOC + if (!debug_pagealloc_enabled()) + return; + + static_branch_enable(&_debug_pagealloc_enabled); + + if (!debug_guardpage_minorder()) + return; + + static_branch_enable(&_debug_guardpage_enabled); +#endif +} + static inline void set_buddy_order(struct page *page, unsigned int order) { set_page_private(page, order); -- 2.29.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka @ 2020-10-27 9:03 ` David Hildenbrand 2020-10-27 9:58 ` Vlastimil Babka 2020-10-28 8:31 ` Mike Rapoport 1 sibling, 1 reply; 18+ messages in thread From: David Hildenbrand @ 2020-10-27 9:03 UTC (permalink / raw) To: Vlastimil Babka, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 26.10.20 18:33, Vlastimil Babka wrote: > Enabling page_poison=1 together with init_on_alloc=1 or init_on_free=1 produces > a warning in dmesg that page_poison takes precendence. However, as these > warnings are printed in early_param handlers for init_on_alloc/free, they are > not printed if page_poison is enabled later on the command line (handlers are > called in the order of their parameters), or when init_on_alloc/free is always > enabled by the respective config option - before the page_poison early param > handler is called, it is not considered to be enabled. This is inconsistent. > > We can remove the dependency on order by making the init_on_* parameters only > set a boolean variable, and postponing the evaluation after all early params > have been processed. Introduce a new init_mem_debugging() function for that, > and move the related debug_pagealloc processing there as well. init_mem_debugging() is somewhat sub-optimal - init_on_alloc=1 or init_on_free=1 are rather security hardening mechanisms. ... I wondered if this could be the place to initialize any kind of mm parameters in the future. Like init_mem_params() or so. > > As a result init_mem_debugging() knows always accurately if init_on_* and/or > page_poison options were enabled. Thus we can also optimize want_init_on_alloc() > and want_init_on_free(). We don't need to check page_poisoning_enabled() there, > we can instead not enable the init_on_* tracepoint at all, if page poisoning is > enabled. This results in a simpler and more effective code. LGTM Reviewed-by: David Hildenbrand <david@redhat.com> -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters 2020-10-27 9:03 ` David Hildenbrand @ 2020-10-27 9:58 ` Vlastimil Babka 2020-10-27 9:58 ` David Hildenbrand 0 siblings, 1 reply; 18+ messages in thread From: Vlastimil Babka @ 2020-10-27 9:58 UTC (permalink / raw) To: David Hildenbrand, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 10/27/20 10:03 AM, David Hildenbrand wrote: > On 26.10.20 18:33, Vlastimil Babka wrote: >> Enabling page_poison=1 together with init_on_alloc=1 or init_on_free=1 produces >> a warning in dmesg that page_poison takes precendence. However, as these >> warnings are printed in early_param handlers for init_on_alloc/free, they are >> not printed if page_poison is enabled later on the command line (handlers are >> called in the order of their parameters), or when init_on_alloc/free is always >> enabled by the respective config option - before the page_poison early param >> handler is called, it is not considered to be enabled. This is inconsistent. >> >> We can remove the dependency on order by making the init_on_* parameters only >> set a boolean variable, and postponing the evaluation after all early params >> have been processed. Introduce a new init_mem_debugging() function for that, >> and move the related debug_pagealloc processing there as well. > > init_mem_debugging() is somewhat sub-optimal - init_on_alloc=1 or > init_on_free=1 are rather security hardening mechanisms. Well yeah, init_mem_debugging_and_hardening()? > ... I wondered if this could be the place to initialize any kind of mm > parameters in the future. Like init_mem_params() or so. Maybe. In practice you often find out that different things have to be hooked in different points of the init process, and a single function might not be enough. I tried to group stuff that's really inter-related and can be initialized at the same time. >> >> As a result init_mem_debugging() knows always accurately if init_on_* and/or >> page_poison options were enabled. Thus we can also optimize want_init_on_alloc() >> and want_init_on_free(). We don't need to check page_poisoning_enabled() there, >> we can instead not enable the init_on_* tracepoint at all, if page poisoning is >> enabled. This results in a simpler and more effective code. > > LGTM > > Reviewed-by: David Hildenbrand <david@redhat.com> Thanks! ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters 2020-10-27 9:58 ` Vlastimil Babka @ 2020-10-27 9:58 ` David Hildenbrand 0 siblings, 0 replies; 18+ messages in thread From: David Hildenbrand @ 2020-10-27 9:58 UTC (permalink / raw) To: Vlastimil Babka, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 27.10.20 10:58, Vlastimil Babka wrote: > On 10/27/20 10:03 AM, David Hildenbrand wrote: >> On 26.10.20 18:33, Vlastimil Babka wrote: >>> Enabling page_poison=1 together with init_on_alloc=1 or init_on_free=1 produces >>> a warning in dmesg that page_poison takes precendence. However, as these >>> warnings are printed in early_param handlers for init_on_alloc/free, they are >>> not printed if page_poison is enabled later on the command line (handlers are >>> called in the order of their parameters), or when init_on_alloc/free is always >>> enabled by the respective config option - before the page_poison early param >>> handler is called, it is not considered to be enabled. This is inconsistent. >>> >>> We can remove the dependency on order by making the init_on_* parameters only >>> set a boolean variable, and postponing the evaluation after all early params >>> have been processed. Introduce a new init_mem_debugging() function for that, >>> and move the related debug_pagealloc processing there as well. >> >> init_mem_debugging() is somewhat sub-optimal - init_on_alloc=1 or >> init_on_free=1 are rather security hardening mechanisms. > > Well yeah, init_mem_debugging_and_hardening()? Would work for me. -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka 2020-10-27 9:03 ` David Hildenbrand @ 2020-10-28 8:31 ` Mike Rapoport 1 sibling, 0 replies; 18+ messages in thread From: Mike Rapoport @ 2020-10-28 8:31 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrew Morton, linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek On Mon, Oct 26, 2020 at 06:33:56PM +0100, Vlastimil Babka wrote: > Enabling page_poison=1 together with init_on_alloc=1 or init_on_free=1 produces > a warning in dmesg that page_poison takes precendence. However, as these ^ precedence > warnings are printed in early_param handlers for init_on_alloc/free, they are > not printed if page_poison is enabled later on the command line (handlers are > called in the order of their parameters), or when init_on_alloc/free is always > enabled by the respective config option - before the page_poison early param > handler is called, it is not considered to be enabled. This is inconsistent. > > We can remove the dependency on order by making the init_on_* parameters only > set a boolean variable, and postponing the evaluation after all early params > have been processed. Introduce a new init_mem_debugging() function for that, > and move the related debug_pagealloc processing there as well. > > As a result init_mem_debugging() knows always accurately if init_on_* and/or > page_poison options were enabled. Thus we can also optimize want_init_on_alloc() > and want_init_on_free(). We don't need to check page_poisoning_enabled() there, > we can instead not enable the init_on_* tracepoint at all, if page poisoning is > enabled. This results in a simpler and more effective code. > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz> With two more nits below fixed Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> > --- > include/linux/mm.h | 20 ++-------- > init/main.c | 2 +- > mm/page_alloc.c | 94 +++++++++++++++++++++++----------------------- > 3 files changed, 50 insertions(+), 66 deletions(-) > ... > @@ -792,6 +752,44 @@ static inline void clear_page_guard(struct zone *zone, struct page *page, > unsigned int order, int migratetype) {} > #endif > > +/* > + * Enable static keys related to various memory debugging and hardening options. > + * Some override others, and depend on early params that are evaluated in the > + * order of appearance. So we need to first gather the full picture of what was > + * enabled, and then make decisions. > + */ > +void init_mem_debugging() Shouldn't it be init_mem_debug(void)? Or whatever a new name would be :) > +{ > + if (_init_on_alloc_enabled_early) { > + if (page_poisoning_enabled()) { > + pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, " > + "will take precedence over init_on_alloc\n"); > + } else { > + static_branch_enable(&init_on_alloc); > + } > + } > + if (_init_on_free_enabled_early) { > + if (page_poisoning_enabled()) { > + pr_info("mem auto-init: CONFIG_PAGE_POISONING is on, " > + "will take precedence over init_on_free\n"); > + } else { > + static_branch_enable(&init_on_free); > + } > + } I think the braces for the inner ifs are not required. > + > +#ifdef CONFIG_DEBUG_PAGEALLOC > + if (!debug_pagealloc_enabled()) > + return; > + > + static_branch_enable(&_debug_pagealloc_enabled); > + > + if (!debug_guardpage_minorder()) > + return; > + > + static_branch_enable(&_debug_guardpage_enabled); > +#endif > +} > + > static inline void set_buddy_order(struct page *page, unsigned int order) > { > set_page_private(page, order); > -- > 2.29.0 > > -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 2/3] mm, page_poison: use static key more efficiently 2020-10-26 17:33 [PATCH 0/3] optimize handling of memory debugging parameters Vlastimil Babka 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka @ 2020-10-26 17:33 ` Vlastimil Babka 2020-10-27 9:07 ` David Hildenbrand 2020-10-30 16:27 ` Luis Chamberlain 2020-10-26 17:33 ` [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() Vlastimil Babka 2 siblings, 2 replies; 18+ messages in thread From: Vlastimil Babka @ 2020-10-26 17:33 UTC (permalink / raw) To: Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Vlastimil Babka Commit 11c9c7edae06 ("mm/page_poison.c: replace bool variable with static key") changed page_poisoning_enabled() to a static key check. However, the function is not inlined, so each check still involves a function call with overhead not eliminated when page poisoning is disabled. Analogically to how debug_pagealloc is handled, this patch converts page_poisoning_enabled() back to boolean check, and introduces page_poisoning_enabled_static() for fast paths. Both functions are inlined. Also optimize the check that enables page poisoning instead of debug_pagealloc for architectures without proper debug_pagealloc support. Move the check to init_mem_debugging() to enable a single static key instead of having two static branches in page_poisoning_enabled_static(). Signed-off-by: Vlastimil Babka <vbabka@suse.cz> --- drivers/virtio/virtio_balloon.c | 2 +- include/linux/mm.h | 16 ++++++++++++- mm/page_alloc.c | 13 ++++++++++- mm/page_poison.c | 40 +++++---------------------------- 4 files changed, 34 insertions(+), 37 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 481611c09dae..e53faed6ba93 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -1116,7 +1116,7 @@ static int virtballoon_validate(struct virtio_device *vdev) */ if (!want_init_on_free() && (IS_ENABLED(CONFIG_PAGE_POISONING_NO_SANITY) || - !page_poisoning_enabled())) + !page_poisoning_enabled_static())) __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_PAGE_POISON); else if (!virtio_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON)) __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_REPORTING); diff --git a/include/linux/mm.h b/include/linux/mm.h index c6a0adccf2fe..c1d0ed2b8724 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2867,10 +2867,24 @@ extern int apply_to_existing_page_range(struct mm_struct *mm, extern void init_mem_debugging(void); #ifdef CONFIG_PAGE_POISONING -extern bool page_poisoning_enabled(void); extern void kernel_poison_pages(struct page *page, int numpages, int enable); +extern bool _page_poisoning_enabled_early; +DECLARE_STATIC_KEY_FALSE(_page_poisoning_enabled); +static inline bool page_poisoning_enabled(void) +{ + return _page_poisoning_enabled_early; +} +/* + * For use in fast paths after init_mem_debugging() has run, or when a + * false negative result is not harmful when called too early. + */ +static inline bool page_poisoning_enabled_static(void) +{ + return (static_branch_unlikely(&_page_poisoning_enabled)); +} #else static inline bool page_poisoning_enabled(void) { return false; } +static inline bool page_poisoning_enabled_static(void) { return false; } static inline void kernel_poison_pages(struct page *page, int numpages, int enable) { } #endif diff --git a/mm/page_alloc.c b/mm/page_alloc.c index b168c58ef337..2a1be197649d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -777,6 +777,17 @@ void init_mem_debugging() } } +#ifdef CONFIG_PAGE_POISONING + /* + * Page poisoning is debug page alloc for some arches. If + * either of those options are enabled, enable poisoning. + */ + if (page_poisoning_enabled() || + (!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) && + debug_pagealloc_enabled())) + static_branch_enable(&_page_poisoning_enabled); +#endif + #ifdef CONFIG_DEBUG_PAGEALLOC if (!debug_pagealloc_enabled()) return; @@ -2208,7 +2219,7 @@ static inline int check_new_page(struct page *page) static inline bool free_pages_prezeroed(void) { return (IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) && - page_poisoning_enabled()) || want_init_on_free(); + page_poisoning_enabled_static()) || want_init_on_free(); } #ifdef CONFIG_DEBUG_VM diff --git a/mm/page_poison.c b/mm/page_poison.c index ae0482cded87..d1f06b70a779 100644 --- a/mm/page_poison.c +++ b/mm/page_poison.c @@ -8,45 +8,17 @@ #include <linux/ratelimit.h> #include <linux/kasan.h> -static DEFINE_STATIC_KEY_FALSE_RO(want_page_poisoning); +bool _page_poisoning_enabled_early; +EXPORT_SYMBOL(_page_poisoning_enabled_early); +DEFINE_STATIC_KEY_FALSE_RO(_page_poisoning_enabled); +EXPORT_SYMBOL(_page_poisoning_enabled); static int __init early_page_poison_param(char *buf) { - int ret; - bool tmp; - - ret = strtobool(buf, &tmp); - if (ret) - return ret; - - if (tmp) - static_branch_enable(&want_page_poisoning); - else - static_branch_disable(&want_page_poisoning); - - return 0; + return kstrtobool(buf, &_page_poisoning_enabled_early); } early_param("page_poison", early_page_poison_param); -/** - * page_poisoning_enabled - check if page poisoning is enabled - * - * Return true if page poisoning is enabled, or false if not. - */ -bool page_poisoning_enabled(void) -{ - /* - * Assumes that debug_pagealloc_enabled is set before - * memblock_free_all. - * Page poisoning is debug page alloc for some arches. If - * either of those options are enabled, enable poisoning. - */ - return (static_branch_unlikely(&want_page_poisoning) || - (!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) && - debug_pagealloc_enabled())); -} -EXPORT_SYMBOL_GPL(page_poisoning_enabled); - static void poison_page(struct page *page) { void *addr = kmap_atomic(page); @@ -127,7 +99,7 @@ static void unpoison_pages(struct page *page, int n) void kernel_poison_pages(struct page *page, int numpages, int enable) { - if (!page_poisoning_enabled()) + if (!page_poisoning_enabled_static()) return; if (enable) -- 2.29.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 2/3] mm, page_poison: use static key more efficiently 2020-10-26 17:33 ` [PATCH 2/3] mm, page_poison: use static key more efficiently Vlastimil Babka @ 2020-10-27 9:07 ` David Hildenbrand 2020-10-30 16:27 ` Luis Chamberlain 1 sibling, 0 replies; 18+ messages in thread From: David Hildenbrand @ 2020-10-27 9:07 UTC (permalink / raw) To: Vlastimil Babka, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 26.10.20 18:33, Vlastimil Babka wrote: > Commit 11c9c7edae06 ("mm/page_poison.c: replace bool variable with static key") > changed page_poisoning_enabled() to a static key check. However, the function > is not inlined, so each check still involves a function call with overhead not > eliminated when page poisoning is disabled. > > Analogically to how debug_pagealloc is handled, this patch converts > page_poisoning_enabled() back to boolean check, and introduces > page_poisoning_enabled_static() for fast paths. Both functions are inlined. > > Also optimize the check that enables page poisoning instead of debug_pagealloc > for architectures without proper debug_pagealloc support. Move the check to > init_mem_debugging() to enable a single static key instead of having two > static branches in page_poisoning_enabled_static(). > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz> [...] > +/* > + * For use in fast paths after init_mem_debugging() has run, or when a > + * false negative result is not harmful when called too early. > + */ > +static inline bool page_poisoning_enabled_static(void) > +{ > + return (static_branch_unlikely(&_page_poisoning_enabled)); return static_branch_unlikely(&_page_poisoning_enabled); > +} > #else > static inline bool page_poisoning_enabled(void) { return false; } > +static inline bool page_poisoning_enabled_static(void) { return false; } > static inline void kernel_poison_pages(struct page *page, int numpages, > int enable) { } > #endif > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index b168c58ef337..2a1be197649d 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -777,6 +777,17 @@ void init_mem_debugging() > } > } > > +#ifdef CONFIG_PAGE_POISONING > + /* > + * Page poisoning is debug page alloc for some arches. If > + * either of those options are enabled, enable poisoning. > + */ > + if (page_poisoning_enabled() || > + (!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) && > + debug_pagealloc_enabled())) Weird indentation if (page_poisoning_enabled() || (!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) && debug_pagealloc_enabled())) > + static_branch_enable(&_page_poisoning_enabled); > +#endif > + > #ifdef CONFIG_DEBUG_PAGEALLOC > if (!debug_pagealloc_enabled()) > return; > @@ -2208,7 +2219,7 @@ static inline int check_new_page(struct page *page) > static inline bool free_pages_prezeroed(void) > { > return (IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) && > - page_poisoning_enabled()) || want_init_on_free(); > + page_poisoning_enabled_static()) || want_init_on_free(); > } Apart from that LGTM. -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/3] mm, page_poison: use static key more efficiently 2020-10-26 17:33 ` [PATCH 2/3] mm, page_poison: use static key more efficiently Vlastimil Babka 2020-10-27 9:07 ` David Hildenbrand @ 2020-10-30 16:27 ` Luis Chamberlain 2020-10-30 22:56 ` Vlastimil Babka 1 sibling, 1 reply; 18+ messages in thread From: Luis Chamberlain @ 2020-10-30 16:27 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrew Morton, linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, mcgrof On Mon, Oct 26, 2020 at 06:33:57PM +0100, Vlastimil Babka wrote: > Commit 11c9c7edae06 ("mm/page_poison.c: replace bool variable with static key") > changed page_poisoning_enabled() to a static key check. However, the function > is not inlined, so each check still involves a function call with overhead not > eliminated when page poisoning is disabled. > > Analogically to how debug_pagealloc is handled, this patch converts > page_poisoning_enabled() back to boolean check, and introduces > page_poisoning_enabled_static() for fast paths. Both functions are inlined. > > Also optimize the check that enables page poisoning instead of debug_pagealloc > for architectures without proper debug_pagealloc support. Move the check to > init_mem_debugging() to enable a single static key instead of having two > static branches in page_poisoning_enabled_static(). > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz> <sad trombone> This patchset causes a regression x86_64 as a guest. I was able to bisect this on the following linux-next tags: next-20201015 OK next-20201023 OK next-20201026 OK next-20201027 BAD next-20201028 BAD Bisection inside next-20201027 lands me on: "mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters" which is part of this patchset, however, reverting that patch causes a conflict, likely due to a subsequent patch in this series. So I decided to try before the patch set and after and this confirms the bisection. Before this patchset, on patch titled, "mm: forbid splitting special mappings" I see no issue, but after this patch set, on the patch titled "mm, page_alloc: reduce static keys in prep_new_page()" I get a crash. The crash log is attached. </sad trombone> <upbeat trombone> The good news it that this can be easily reproduced in a jiffy if you use kdevops [0] on Debian (the default) on vagrant. [0] https://github.com/mcgrof/kdevops -- Logs begin at Wed 2020-10-28 01:30:20 UTC, end at Wed 2020-10-28 19:16:03 UTC. -- Oct 28 19:13:04 kdevops kernel: Linux version 5.10.0-rc1-next-20201027 (vagrant@kdevops) (gcc (Debian 10.2.0-15) 10.2.0, GNU ld (GNU Binutils for Debian) 2.35.1) #1 SMP Wed Oct 28 15:14:07 UTC 2020 Oct 28 19:13:04 kdevops kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 root=UUID=232d7b2f-c31e-4bbe-bffe-0ac429e4cb18 ro console=tty0 console=tty1 console=ttyS0,38400n8 Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' Oct 28 19:13:04 kdevops kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 Oct 28 19:13:04 kdevops kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format. Oct 28 19:13:04 kdevops kernel: BIOS-provided physical RAM map: Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000000100000-0x00000000bffdafff] usable Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000bffdb000-0x00000000bfffffff] reserved Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000100000000-0x000000023fffffff] usable Oct 28 19:13:04 kdevops kernel: NX (Execute Disable) protection: active Oct 28 19:13:04 kdevops kernel: SMBIOS 2.8 present. Oct 28 19:13:04 kdevops kernel: DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1 04/01/2014 Oct 28 19:13:04 kdevops kernel: Hypervisor detected: KVM Oct 28 19:13:04 kdevops kernel: kvm-clock: Using msrs 4b564d01 and 4b564d00 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 0, msr 2110e2001, primary cpu clock Oct 28 19:13:04 kdevops kernel: kvm-clock: using sched offset of 63760873909837 cycles Oct 28 19:13:04 kdevops kernel: clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns Oct 28 19:13:04 kdevops kernel: tsc: Detected 1992.014 MHz processor Oct 28 19:13:04 kdevops kernel: e820: update [mem 0x00000000-0x00000fff] usable ==> reserved Oct 28 19:13:04 kdevops kernel: e820: remove [mem 0x000a0000-0x000fffff] usable Oct 28 19:13:04 kdevops kernel: last_pfn = 0x240000 max_arch_pfn = 0x400000000 Oct 28 19:13:04 kdevops kernel: MTRR default type: write-back Oct 28 19:13:04 kdevops kernel: MTRR fixed ranges enabled: Oct 28 19:13:04 kdevops kernel: 00000-9FFFF write-back Oct 28 19:13:04 kdevops kernel: A0000-BFFFF uncachable Oct 28 19:13:04 kdevops kernel: C0000-FFFFF write-protect Oct 28 19:13:04 kdevops kernel: MTRR variable ranges enabled: Oct 28 19:13:04 kdevops kernel: 0 base 00C0000000 mask FFC0000000 uncachable Oct 28 19:13:04 kdevops kernel: 1 disabled Oct 28 19:13:04 kdevops kernel: 2 disabled Oct 28 19:13:04 kdevops kernel: 3 disabled Oct 28 19:13:04 kdevops kernel: 4 disabled Oct 28 19:13:04 kdevops kernel: 5 disabled Oct 28 19:13:04 kdevops kernel: 6 disabled Oct 28 19:13:04 kdevops kernel: 7 disabled Oct 28 19:13:04 kdevops kernel: x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT Oct 28 19:13:04 kdevops kernel: last_pfn = 0xbffdb max_arch_pfn = 0x400000000 Oct 28 19:13:04 kdevops kernel: found SMP MP-table at [mem 0x000f5c10-0x000f5c1f] Oct 28 19:13:04 kdevops kernel: Using GB pages for direct mapping Oct 28 19:13:04 kdevops kernel: RAMDISK: [mem 0x2f65b000-0x33b24fff] Oct 28 19:13:04 kdevops kernel: ACPI: Early table checksum verification disabled Oct 28 19:13:04 kdevops kernel: ACPI: RSDP 0x00000000000F5BD0 000014 (v00 BOCHS ) Oct 28 19:13:04 kdevops kernel: ACPI: RSDT 0x00000000BFFE137A 000034 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: FACP 0x00000000BFFE11F6 000074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: DSDT 0x00000000BFFDFCC0 001536 (v01 BOCHS BXPCDSDT 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: FACS 0x00000000BFFDFC80 000040 Oct 28 19:13:04 kdevops kernel: ACPI: APIC 0x00000000BFFE126A 0000B0 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: HPET 0x00000000BFFE131A 000038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: WAET 0x00000000BFFE1352 000028 (v01 BOCHS BXPCWAET 00000001 BXPC 00000001) Oct 28 19:13:04 kdevops kernel: ACPI: Local APIC address 0xfee00000 Oct 28 19:13:04 kdevops kernel: No NUMA configuration found Oct 28 19:13:04 kdevops kernel: Faking a node at [mem 0x0000000000000000-0x000000023fffffff] Oct 28 19:13:04 kdevops kernel: NODE_DATA(0) allocated [mem 0x23fffb000-0x23fffffff] Oct 28 19:13:04 kdevops kernel: Zone ranges: Oct 28 19:13:04 kdevops kernel: DMA [mem 0x0000000000001000-0x0000000000ffffff] Oct 28 19:13:04 kdevops kernel: DMA32 [mem 0x0000000001000000-0x00000000ffffffff] Oct 28 19:13:04 kdevops kernel: Normal [mem 0x0000000100000000-0x000000023fffffff] Oct 28 19:13:04 kdevops kernel: Device empty Oct 28 19:13:04 kdevops kernel: Movable zone start for each node Oct 28 19:13:04 kdevops kernel: Early memory node ranges Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000000001000-0x000000000009efff] Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000000100000-0x00000000bffdafff] Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000100000000-0x000000023fffffff] Oct 28 19:13:04 kdevops kernel: Zeroed struct page in unavailable ranges: 135 pages Oct 28 19:13:04 kdevops kernel: Initmem setup node 0 [mem 0x0000000000001000-0x000000023fffffff] Oct 28 19:13:04 kdevops kernel: On node 0 totalpages: 2097017 Oct 28 19:13:04 kdevops kernel: DMA zone: 64 pages used for memmap Oct 28 19:13:04 kdevops kernel: DMA zone: 21 pages reserved Oct 28 19:13:04 kdevops kernel: DMA zone: 3998 pages, LIFO batch:0 Oct 28 19:13:04 kdevops kernel: DMA32 zone: 12224 pages used for memmap Oct 28 19:13:04 kdevops kernel: DMA32 zone: 782299 pages, LIFO batch:63 Oct 28 19:13:04 kdevops kernel: Normal zone: 20480 pages used for memmap Oct 28 19:13:04 kdevops kernel: Normal zone: 1310720 pages, LIFO batch:63 Oct 28 19:13:04 kdevops kernel: ACPI: PM-Timer IO Port: 0x608 Oct 28 19:13:04 kdevops kernel: ACPI: Local APIC address 0xfee00000 Oct 28 19:13:04 kdevops kernel: ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1]) Oct 28 19:13:04 kdevops kernel: IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23 Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) Oct 28 19:13:04 kdevops kernel: ACPI: IRQ0 used by override. Oct 28 19:13:04 kdevops kernel: ACPI: IRQ5 used by override. Oct 28 19:13:04 kdevops kernel: ACPI: IRQ9 used by override. Oct 28 19:13:04 kdevops kernel: ACPI: IRQ10 used by override. Oct 28 19:13:04 kdevops kernel: ACPI: IRQ11 used by override. Oct 28 19:13:04 kdevops kernel: Using ACPI (MADT) for SMP configuration information Oct 28 19:13:04 kdevops kernel: ACPI: HPET id: 0x8086a201 base: 0xfed00000 Oct 28 19:13:04 kdevops kernel: TSC deadline timer available Oct 28 19:13:04 kdevops kernel: smpboot: Allowing 8 CPUs, 0 hotplug CPUs Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x0009ffff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000effff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x000f0000-0x000fffff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xbffdb000-0xbfffffff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xc0000000-0xfeffbfff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xfeffc000-0xfeffffff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xff000000-0xfffbffff] Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xfffc0000-0xffffffff] Oct 28 19:13:04 kdevops kernel: [mem 0xc0000000-0xfeffbfff] available for PCI devices Oct 28 19:13:04 kdevops kernel: Booting paravirtualized kernel on KVM Oct 28 19:13:04 kdevops kernel: clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns Oct 28 19:13:04 kdevops kernel: setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1 Oct 28 19:13:04 kdevops kernel: percpu: Embedded 55 pages/cpu s185112 r8192 d31976 u262144 Oct 28 19:13:04 kdevops kernel: pcpu-alloc: s185112 r8192 d31976 u262144 alloc=1*2097152 Oct 28 19:13:04 kdevops kernel: pcpu-alloc: [0] 0 1 2 3 4 5 6 7 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 0, msr 237c18580 Oct 28 19:13:04 kdevops kernel: kvm-guest: PV spinlocks disabled, no host support Oct 28 19:13:04 kdevops kernel: Built 1 zonelists, mobility grouping on. Total pages: 2064228 Oct 28 19:13:04 kdevops kernel: Policy zone: Normal Oct 28 19:13:04 kdevops kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 root=UUID=232d7b2f-c31e-4bbe-bffe-0ac429e4cb18 ro console=tty0 console=tty1 console=ttyS0,38400n8 Oct 28 19:13:04 kdevops kernel: Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear) Oct 28 19:13:04 kdevops kernel: Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) Oct 28 19:13:04 kdevops kernel: mem auto-init: stack:off, heap alloc:off, heap free:off Oct 28 19:13:04 kdevops kernel: Memory: 8073336K/8388068K available (12295K kernel code, 1774K rwdata, 3772K rodata, 1628K init, 7424K bss, 314472K reserved, 0K cma-reserved) Oct 28 19:13:04 kdevops kernel: random: get_random_u64 called from __kmem_cache_create+0x2e/0x560 with crng_init=0 Oct 28 19:13:04 kdevops kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1 Oct 28 19:13:04 kdevops kernel: ftrace: allocating 34960 entries in 137 pages Oct 28 19:13:04 kdevops kernel: ftrace: allocated 137 pages with 3 groups Oct 28 19:13:04 kdevops kernel: rcu: Hierarchical RCU implementation. Oct 28 19:13:04 kdevops kernel: rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8. Oct 28 19:13:04 kdevops kernel: Rude variant of Tasks RCU enabled. Oct 28 19:13:04 kdevops kernel: Tracing variant of Tasks RCU enabled. Oct 28 19:13:04 kdevops kernel: rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. Oct 28 19:13:04 kdevops kernel: rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8 Oct 28 19:13:04 kdevops kernel: NR_IRQS: 33024, nr_irqs: 488, preallocated irqs: 16 Oct 28 19:13:04 kdevops kernel: Console: colour VGA+ 80x25 Oct 28 19:13:04 kdevops kernel: printk: console [tty0] enabled Oct 28 19:13:04 kdevops kernel: printk: console [ttyS0] enabled Oct 28 19:13:04 kdevops kernel: ACPI: Core revision 20200925 Oct 28 19:13:04 kdevops kernel: clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns Oct 28 19:13:04 kdevops kernel: APIC: Switch to symmetric I/O mode setup Oct 28 19:13:04 kdevops kernel: x2apic enabled Oct 28 19:13:04 kdevops kernel: Switched APIC routing to physical x2apic. Oct 28 19:13:04 kdevops kernel: ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 Oct 28 19:13:04 kdevops kernel: clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x396d6c2a251, max_idle_ns: 881590442397 ns Oct 28 19:13:04 kdevops kernel: Calibrating delay loop (skipped) preset value.. 3984.02 BogoMIPS (lpj=7968056) Oct 28 19:13:04 kdevops kernel: pid_max: default: 32768 minimum: 301 Oct 28 19:13:04 kdevops kernel: LSM: Security Framework initializing Oct 28 19:13:04 kdevops kernel: Yama: becoming mindful. Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor initialized Oct 28 19:13:04 kdevops kernel: TOMOYO Linux initialized Oct 28 19:13:04 kdevops kernel: Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) Oct 28 19:13:04 kdevops kernel: Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) Oct 28 19:13:04 kdevops kernel: x86/cpu: User Mode Instruction Prevention (UMIP) activated Oct 28 19:13:04 kdevops kernel: Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0 Oct 28 19:13:04 kdevops kernel: Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0 Oct 28 19:13:04 kdevops kernel: Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization Oct 28 19:13:04 kdevops kernel: Spectre V2 : Mitigation: Enhanced IBRS Oct 28 19:13:04 kdevops kernel: Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch Oct 28 19:13:04 kdevops kernel: Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier Oct 28 19:13:04 kdevops kernel: Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp Oct 28 19:13:04 kdevops kernel: SRBDS: Mitigation: TSX disabled Oct 28 19:13:04 kdevops kernel: Freeing SMP alternatives memory: 32K Oct 28 19:13:04 kdevops kernel: smpboot: CPU0: Intel Core Processor (Skylake, IBRS) (family: 0x6, model: 0x5e, stepping: 0x3) Oct 28 19:13:04 kdevops kernel: Performance Events: unsupported p6 CPU model 94 no PMU driver, software events only. Oct 28 19:13:04 kdevops kernel: rcu: Hierarchical SRCU implementation. Oct 28 19:13:04 kdevops kernel: NMI watchdog: Perf NMI watchdog permanently disabled Oct 28 19:13:04 kdevops kernel: smp: Bringing up secondary CPUs ... Oct 28 19:13:04 kdevops kernel: x86: Booting SMP configuration: Oct 28 19:13:04 kdevops kernel: .... node #0, CPUs: #1 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 1, msr 2110e2041, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 1 Converting physical 0 to logical die 1 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 1, msr 237c58580 Oct 28 19:13:04 kdevops kernel: #2 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 2, msr 2110e2081, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 2 Converting physical 0 to logical die 2 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 2, msr 237c98580 Oct 28 19:13:04 kdevops kernel: #3 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 3, msr 2110e20c1, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 3 Converting physical 0 to logical die 3 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 3, msr 237cd8580 Oct 28 19:13:04 kdevops kernel: #4 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 4, msr 2110e2101, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 4 Converting physical 0 to logical die 4 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 4, msr 237d18580 Oct 28 19:13:04 kdevops kernel: #5 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 5, msr 2110e2141, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 5 Converting physical 0 to logical die 5 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 5, msr 237d58580 Oct 28 19:13:04 kdevops kernel: #6 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 6, msr 2110e2181, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 6 Converting physical 0 to logical die 6 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 6, msr 237d98580 Oct 28 19:13:04 kdevops kernel: #7 Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 7, msr 2110e21c1, secondary cpu clock Oct 28 19:13:04 kdevops kernel: smpboot: CPU 7 Converting physical 0 to logical die 7 Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 7, msr 237dd8580 Oct 28 19:13:04 kdevops kernel: smp: Brought up 1 node, 8 CPUs Oct 28 19:13:04 kdevops kernel: smpboot: Max logical packages: 8 Oct 28 19:13:04 kdevops kernel: smpboot: Total of 8 processors activated (31872.22 BogoMIPS) Oct 28 19:13:04 kdevops kernel: devtmpfs: initialized Oct 28 19:13:04 kdevops kernel: x86/mm: Memory block size: 128MB Oct 28 19:13:04 kdevops kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns Oct 28 19:13:04 kdevops kernel: futex hash table entries: 2048 (order: 5, 131072 bytes, linear) Oct 28 19:13:04 kdevops kernel: pinctrl core: initialized pinctrl subsystem Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 16 Oct 28 19:13:04 kdevops kernel: audit: initializing netlink subsys (disabled) Oct 28 19:13:04 kdevops kernel: audit: type=2000 audit(1603912377.860:1): state=initialized audit_enabled=0 res=1 Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'fair_share' Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'bang_bang' Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'step_wise' Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'user_space' Oct 28 19:13:04 kdevops kernel: cpuidle: using governor ladder Oct 28 19:13:04 kdevops kernel: cpuidle: using governor menu Oct 28 19:13:04 kdevops kernel: ACPI: bus type PCI registered Oct 28 19:13:04 kdevops kernel: acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 Oct 28 19:13:04 kdevops kernel: PCI: Using configuration type 1 for base access Oct 28 19:13:04 kdevops kernel: HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages Oct 28 19:13:04 kdevops kernel: HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Module Device) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Processor Device) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(3.0 _SCP Extensions) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Processor Aggregator Device) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-Dell-Video) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) Oct 28 19:13:04 kdevops kernel: ACPI: 1 ACPI AML tables successfully acquired and loaded Oct 28 19:13:04 kdevops kernel: ACPI: Interpreter enabled Oct 28 19:13:04 kdevops kernel: ACPI: (supports S0 S3 S4 S5) Oct 28 19:13:04 kdevops kernel: ACPI: Using IOAPIC for interrupt routing Oct 28 19:13:04 kdevops kernel: PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug Oct 28 19:13:04 kdevops kernel: ACPI: Enabled 2 GPEs in block 00 to 0F Oct 28 19:13:04 kdevops kernel: ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) Oct 28 19:13:04 kdevops kernel: acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI HPX-Type3] Oct 28 19:13:04 kdevops kernel: acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [3] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [4] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [5] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [6] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [7] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [8] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [9] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [10] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [11] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [12] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [13] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [14] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [15] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [16] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [17] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [18] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [19] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [20] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [21] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [22] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [23] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [24] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [25] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [26] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [27] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [28] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [29] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [30] registered Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [31] registered Oct 28 19:13:04 kdevops kernel: PCI host bridge to bus 0000:00 Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0x240000000-0x2bfffffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [bus 00-ff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:00.0: [8086:1237] type 00 class 0x060000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: [8086:7000] type 00 class 0x060100 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: [8086:7010] type 00 class 0x010180 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: reg 0x20: [io 0xc120-0xc12f] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: [8086:7020] type 00 class 0x0c0300 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: reg 0x20: [io 0xc0c0-0xc0df] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: [8086:7113] type 00 class 0x068000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: quirk: [io 0x0600-0x063f] claimed by PIIX4 ACPI Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: quirk: [io 0x0700-0x070f] claimed by PIIX4 SMB Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: [1013:00b8] type 00 class 0x030000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x10: [mem 0xfc000000-0xfdffffff pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x14: [mem 0xfebd8000-0xfebd8fff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x30: [mem 0xfebc0000-0xfebcffff pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: [1af4:1001] type 00 class 0x010000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x10: [io 0xc000-0xc07f] Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x14: [mem 0xfebd9000-0xfebd9fff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x20: [mem 0xfe000000-0xfe003fff 64bit pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: [1af4:1002] type 00 class 0x00ff00 Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: reg 0x10: [io 0xc080-0xc0bf] Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: reg 0x20: [mem 0xfe004000-0xfe007fff 64bit pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:05.0: [8086:25ab] type 00 class 0x088000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:05.0: reg 0x10: [mem 0xfebda000-0xfebda00f] Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: [1af4:1000] type 00 class 0x020000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x10: [io 0xc0e0-0xc0ff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x14: [mem 0xfebdb000-0xfebdbfff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x20: [mem 0xfe008000-0xfe00bfff 64bit pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x30: [mem 0xfeb40000-0xfeb7ffff pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: [1af4:1000] type 00 class 0x020000 Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x10: [io 0xc100-0xc11f] Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x14: [mem 0xfebdc000-0xfebdcfff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x20: [mem 0xfe00c000-0xfe00ffff 64bit pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x30: [mem 0xfeb80000-0xfebbffff pref] Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: [8086:5845] type 00 class 0x010802 Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: reg 0x10: [mem 0xfebd0000-0xfebd1fff 64bit] Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: reg 0x20: [mem 0xfebdd000-0xfebddfff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: [8086:5845] type 00 class 0x010802 Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: reg 0x10: [mem 0xfebd2000-0xfebd3fff 64bit] Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: reg 0x20: [mem 0xfebde000-0xfebdefff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: [8086:5845] type 00 class 0x010802 Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: reg 0x10: [mem 0xfebd4000-0xfebd5fff 64bit] Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: reg 0x20: [mem 0xfebdf000-0xfebdffff] Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: [8086:5845] type 00 class 0x010802 Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: reg 0x10: [mem 0xfebd6000-0xfebd7fff 64bit] Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: reg 0x20: [mem 0xfebe0000-0xfebe0fff] Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKS] (IRQs *9) Oct 28 19:13:04 kdevops kernel: iommu: Default domain type: Translated Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: setting as boot VGA device Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: bridge control possible Oct 28 19:13:04 kdevops kernel: vgaarb: loaded Oct 28 19:13:04 kdevops kernel: pps_core: LinuxPPS API ver. 1 registered Oct 28 19:13:04 kdevops kernel: pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> Oct 28 19:13:04 kdevops kernel: PTP clock support registered Oct 28 19:13:04 kdevops kernel: EDAC MC: Ver: 3.0.0 Oct 28 19:13:04 kdevops kernel: PCI: Using ACPI for IRQ routing Oct 28 19:13:04 kdevops kernel: PCI: pci_cache_line_size set to 64 bytes Oct 28 19:13:04 kdevops kernel: e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff] Oct 28 19:13:04 kdevops kernel: e820: reserve RAM buffer [mem 0xbffdb000-0xbfffffff] Oct 28 19:13:04 kdevops kernel: hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 Oct 28 19:13:04 kdevops kernel: hpet0: 3 comparators, 64-bit 100.000000 MHz counter Oct 28 19:13:04 kdevops kernel: clocksource: Switched to clocksource kvm-clock Oct 28 19:13:04 kdevops kernel: VFS: Disk quotas dquot_6.6.0 Oct 28 19:13:04 kdevops kernel: VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor Filesystem Enabled Oct 28 19:13:04 kdevops kernel: pnp: PnP ACPI init Oct 28 19:13:04 kdevops kernel: pnp 00:00: Plug and Play ACPI device, IDs PNP0501 (active) Oct 28 19:13:04 kdevops kernel: pnp 00:01: Plug and Play ACPI device, IDs PNP0303 (active) Oct 28 19:13:04 kdevops kernel: pnp 00:02: Plug and Play ACPI device, IDs PNP0f13 (active) Oct 28 19:13:04 kdevops kernel: pnp 00:03: [dma 2] Oct 28 19:13:04 kdevops kernel: pnp 00:03: Plug and Play ACPI device, IDs PNP0700 (active) Oct 28 19:13:04 kdevops kernel: pnp 00:04: Plug and Play ACPI device, IDs PNP0b00 (active) Oct 28 19:13:04 kdevops kernel: pnp: PnP ACPI: found 5 devices Oct 28 19:13:04 kdevops kernel: clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 2 Oct 28 19:13:04 kdevops kernel: tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear) Oct 28 19:13:04 kdevops kernel: TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear) Oct 28 19:13:04 kdevops kernel: TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear) Oct 28 19:13:04 kdevops kernel: TCP: Hash tables configured (established 65536 bind 65536) Oct 28 19:13:04 kdevops kernel: UDP hash table entries: 4096 (order: 5, 131072 bytes, linear) Oct 28 19:13:04 kdevops kernel: UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear) Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 1 Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 7 [mem 0xc0000000-0xfebfffff window] Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 8 [mem 0x240000000-0x2bfffffff window] Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: PIIX3: Enabling Passive Release Oct 28 19:13:04 kdevops kernel: pci 0000:00:00.0: Limiting direct PCI/PCI transfers Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: Activating ISA DMA hang workarounds Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKD] enabled at IRQ 11 Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: quirk_usb_early_handoff+0x0/0x700 took 254127 usecs Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] Oct 28 19:13:04 kdevops kernel: PCI: CLS 0 bytes, default 64 Oct 28 19:13:04 kdevops kernel: Unpacking initramfs... Oct 28 19:13:04 kdevops kernel: Freeing initrd memory: 70440K Oct 28 19:13:04 kdevops kernel: PCI-DMA: Using software bounce buffering for IO (SWIOTLB) Oct 28 19:13:04 kdevops kernel: software IO TLB: mapped [mem 0x00000000bbfdb000-0x00000000bffdb000] (64MB) Oct 28 19:13:04 kdevops kernel: clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x396d6c2a251, max_idle_ns: 881590442397 ns Oct 28 19:13:04 kdevops kernel: Initialise system trusted keyrings Oct 28 19:13:04 kdevops kernel: workingset: timestamp_bits=40 max_order=21 bucket_order=0 Oct 28 19:13:04 kdevops kernel: zbud: loaded Oct 28 19:13:04 kdevops kernel: Key type asymmetric registered Oct 28 19:13:04 kdevops kernel: Asymmetric key parser 'x509' registered Oct 28 19:13:04 kdevops kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248) Oct 28 19:13:04 kdevops kernel: io scheduler mq-deadline registered Oct 28 19:13:04 kdevops kernel: shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 Oct 28 19:13:04 kdevops kernel: intel_idle: Please enable MWAIT in BIOS SETUP Oct 28 19:13:04 kdevops kernel: Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled Oct 28 19:13:04 kdevops kernel: 00:00: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A Oct 28 19:13:04 kdevops kernel: Linux agpgart interface v0.103 Oct 28 19:13:04 kdevops kernel: AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de> Oct 28 19:13:04 kdevops kernel: AMD-Vi: AMD IOMMUv2 functionality not available on this system Oct 28 19:13:04 kdevops kernel: i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12 Oct 28 19:13:04 kdevops kernel: serio: i8042 KBD port at 0x60,0x64 irq 1 Oct 28 19:13:04 kdevops kernel: serio: i8042 AUX port at 0x60,0x64 irq 12 Oct 28 19:13:04 kdevops kernel: mousedev: PS/2 mouse device common for all mice Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: RTC can wake from S4 Oct 28 19:13:04 kdevops kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: registered as rtc0 Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: setting system clock to 2020-10-28T19:13:00 UTC (1603912380) Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: alarms up to one day, y3k, 242 bytes nvram, hpet irqs Oct 28 19:13:04 kdevops kernel: intel_pstate: CPU model not supported Oct 28 19:13:04 kdevops kernel: ledtrig-cpu: registered to indicate activity on CPUs Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 10 Oct 28 19:13:04 kdevops kernel: Segment Routing with IPv6 Oct 28 19:13:04 kdevops kernel: mip6: Mobile IPv6 Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 17 Oct 28 19:13:04 kdevops kernel: mpls_gso: MPLS GSO support Oct 28 19:13:04 kdevops kernel: IPI shorthand broadcast: enabled Oct 28 19:13:04 kdevops kernel: sched_clock: Marking stable (1606138559, 98545979)->(1857469343, -152784805) Oct 28 19:13:04 kdevops kernel: registered taskstats version 1 Oct 28 19:13:04 kdevops kernel: Loading compiled-in X.509 certificates Oct 28 19:13:04 kdevops kernel: zswap: loaded using pool lzo/zbud Oct 28 19:13:04 kdevops kernel: kmemleak: Kernel memory leak detector initialized (mem pool available: 15495) Oct 28 19:13:04 kdevops kernel: Key type ._fscrypt registered Oct 28 19:13:04 kdevops kernel: Key type .fscrypt registered Oct 28 19:13:04 kdevops kernel: Key type fscrypt-provisioning registered Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor sha1 policy hashing enabled Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (initmem) memory: 1628K Oct 28 19:13:04 kdevops kernel: Write protecting the kernel read-only data: 18432k Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (text/rodata gap) memory: 2040K Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (rodata/data gap) memory: 324K Oct 28 19:13:04 kdevops kernel: x86/mm: Checked W+X mappings: passed, no W+X pages found. Oct 28 19:13:04 kdevops kernel: Run /init as init process Oct 28 19:13:04 kdevops kernel: with arguments: Oct 28 19:13:04 kdevops kernel: /init Oct 28 19:13:04 kdevops kernel: with environment: Oct 28 19:13:04 kdevops kernel: HOME=/ Oct 28 19:13:04 kdevops kernel: TERM=linux Oct 28 19:13:04 kdevops kernel: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 Oct 28 19:13:04 kdevops kernel: floppy: module verification failed: signature and/or required key missing - tainting kernel Oct 28 19:13:04 kdevops kernel: piix4_smbus 0000:00:01.3: SMBus Host Controller at 0x700, revision 0 Oct 28 19:13:04 kdevops kernel: SCSI subsystem initialized Oct 28 19:13:04 kdevops kernel: ACPI: bus type USB registered Oct 28 19:13:04 kdevops kernel: input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input3 Oct 28 19:13:04 kdevops kernel: usbcore: registered new interface driver usbfs Oct 28 19:13:04 kdevops kernel: input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input2 Oct 28 19:13:04 kdevops kernel: usbcore: registered new interface driver hub Oct 28 19:13:04 kdevops kernel: FDC 0 is a S82078B Oct 28 19:13:04 kdevops kernel: usbcore: registered new device driver usb Oct 28 19:13:04 kdevops kernel: nvme nvme0: pci function 0000:00:08.0 Oct 28 19:13:04 kdevops kernel: libata version 3.00 loaded. Oct 28 19:13:04 kdevops kernel: nvme nvme1: pci function 0000:00:09.0 Oct 28 19:13:04 kdevops kernel: nvme nvme2: pci function 0000:00:0a.0 Oct 28 19:13:04 kdevops kernel: nvme nvme3: pci function 0000:00:0b.0 Oct 28 19:13:04 kdevops kernel: ata_piix 0000:00:01.1: version 2.13 Oct 28 19:13:04 kdevops kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver Oct 28 19:13:04 kdevops kernel: uhci_hcd: USB Universal Host Controller Interface driver Oct 28 19:13:04 kdevops kernel: scsi host0: ata_piix Oct 28 19:13:04 kdevops kernel: scsi host1: ata_piix Oct 28 19:13:04 kdevops kernel: ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc120 irq 14 Oct 28 19:13:04 kdevops kernel: ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc128 irq 15 Oct 28 19:13:04 kdevops kernel: nvme nvme0: 8/0/0 default/read/poll queues Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKA] enabled at IRQ 10 Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKB] enabled at IRQ 10 Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKC] enabled at IRQ 11 Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: UHCI Host Controller Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1 Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: detected 2 ports Oct 28 19:13:04 kdevops kernel: nvme nvme1: 8/0/0 default/read/poll queues Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: irq 11, io base 0x0000c0c0 Oct 28 19:13:04 kdevops kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10 Oct 28 19:13:04 kdevops kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 Oct 28 19:13:04 kdevops kernel: usb usb1: Product: UHCI Host Controller Oct 28 19:13:04 kdevops kernel: nvme nvme3: 8/0/0 default/read/poll queues Oct 28 19:13:04 kdevops kernel: usb usb1: Manufacturer: Linux 5.10.0-rc1-next-20201027 uhci_hcd Oct 28 19:13:04 kdevops kernel: usb usb1: SerialNumber: 0000:00:01.2 Oct 28 19:13:04 kdevops kernel: nvme nvme2: 8/0/0 default/read/poll queues Oct 28 19:13:04 kdevops kernel: hub 1-0:1.0: USB hub found Oct 28 19:13:04 kdevops kernel: hub 1-0:1.0: 2 ports detected Oct 28 19:13:04 kdevops kernel: virtio_blk virtio0: [vda] 41943040 512-byte logical blocks (21.5 GB/20.0 GiB) Oct 28 19:13:04 kdevops kernel: vda: detected capacity change from 0 to 21474836480 Oct 28 19:13:04 kdevops kernel: virtio_net virtio3 ens7: renamed from eth1 Oct 28 19:13:04 kdevops kernel: vda: vda1 Oct 28 19:13:04 kdevops kernel: random: fast init done Oct 28 19:13:04 kdevops kernel: virtio_net virtio2 ens6: renamed from eth0 Oct 28 19:13:04 kdevops kernel: raid6: avx2x4 gen() 36481 MB/s Oct 28 19:13:04 kdevops kernel: raid6: avx2x4 xor() 15571 MB/s Oct 28 19:13:04 kdevops kernel: raid6: avx2x2 gen() 43711 MB/s Oct 28 19:13:04 kdevops kernel: raid6: avx2x2 xor() 27110 MB/s Oct 28 19:13:04 kdevops kernel: raid6: avx2x1 gen() 35089 MB/s Oct 28 19:13:04 kdevops kernel: raid6: avx2x1 xor() 22494 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x4 gen() 18229 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x4 xor() 10145 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x2 gen() 18267 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x2 xor() 10673 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x1 gen() 14997 MB/s Oct 28 19:13:04 kdevops kernel: raid6: sse2x1 xor() 7538 MB/s Oct 28 19:13:04 kdevops kernel: raid6: using algorithm avx2x2 gen() 43711 MB/s Oct 28 19:13:04 kdevops kernel: raid6: .... xor() 27110 MB/s, rmw enabled Oct 28 19:13:04 kdevops kernel: raid6: using avx2x2 recovery algorithm Oct 28 19:13:04 kdevops kernel: xor: automatically using best checksumming function avx Oct 28 19:13:04 kdevops kernel: Btrfs loaded, crc32c=crc32c-intel Oct 28 19:13:04 kdevops kernel: EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null) Oct 28 19:13:04 kdevops kernel: Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist. Oct 28 19:13:04 kdevops systemd[1]: Inserted module 'autofs4' Oct 28 19:13:04 kdevops systemd[1]: systemd 246.6-2 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid) Oct 28 19:13:04 kdevops systemd[1]: Detected virtualization kvm. Oct 28 19:13:04 kdevops systemd[1]: Detected architecture x86-64. Oct 28 19:13:04 kdevops systemd[1]: Set hostname to <kdevops>. Oct 28 19:13:04 kdevops kernel: random: lvmconfig: uninitialized urandom read (4 bytes read) Oct 28 19:13:04 kdevops systemd[1]: Queued start job for default target Graphical Interface. Oct 28 19:13:04 kdevops systemd[1]: Created slice system-getty.slice. Oct 28 19:13:04 kdevops systemd[1]: Created slice system-modprobe.slice. Oct 28 19:13:04 kdevops systemd[1]: Created slice system-serial\x2dgetty.slice. Oct 28 19:13:04 kdevops systemd[1]: Created slice User and Session Slice. Oct 28 19:13:04 kdevops systemd[1]: Started Dispatch Password Requests to Console Directory Watch. Oct 28 19:13:04 kdevops systemd[1]: Started Forward Password Requests to Wall Directory Watch. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. Oct 28 19:13:04 kdevops systemd[1]: Reached target Local Encrypted Volumes. Oct 28 19:13:04 kdevops systemd[1]: Reached target Paths. Oct 28 19:13:04 kdevops systemd[1]: Reached target Slices. Oct 28 19:13:04 kdevops systemd[1]: Reached target Swap. Oct 28 19:13:04 kdevops systemd[1]: Listening on Device-mapper event daemon FIFOs. Oct 28 19:13:04 kdevops systemd[1]: Listening on LVM2 poll daemon socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on RPCbind Server Activation Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on Syslog Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on fsck to fsckd communication Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on initctl Compatibility Named Pipe. Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Audit Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Socket (/dev/log). Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on Network Service Netlink Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on udev Control Socket. Oct 28 19:13:04 kdevops systemd[1]: Listening on udev Kernel Socket. Oct 28 19:13:04 kdevops systemd[1]: Mounting Huge Pages File System... Oct 28 19:13:04 kdevops systemd[1]: Mounting POSIX Message Queue File System... Oct 28 19:13:04 kdevops systemd[1]: Mounting Kernel Debug File System... Oct 28 19:13:04 kdevops systemd[1]: Mounting Kernel Trace File System... Oct 28 19:13:04 kdevops systemd[1]: Starting Create list of static device nodes for the current kernel... Oct 28 19:13:04 kdevops systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling... Oct 28 19:13:04 kdevops systemd[1]: Starting Load Kernel Module drm... Oct 28 19:13:04 kdevops kernel: random: lvm: uninitialized urandom read (4 bytes read) Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in File System Check on Root Device being skipped. Oct 28 19:13:04 kdevops systemd[1]: Starting Journal Service... Oct 28 19:13:04 kdevops systemd[1]: Starting Load Kernel Modules... Oct 28 19:13:04 kdevops systemd[1]: Starting Remount Root and Kernel File Systems... Oct 28 19:13:04 kdevops systemd[1]: Starting Coldplug All udev Devices... Oct 28 19:13:04 kdevops systemd[1]: Mounted Huge Pages File System. Oct 28 19:13:04 kdevops systemd[1]: Mounted POSIX Message Queue File System. Oct 28 19:13:04 kdevops systemd[1]: Mounted Kernel Debug File System. Oct 28 19:13:04 kdevops kernel: EXT4-fs (vda1): re-mounted. Opts: errors=remount-ro Oct 28 19:13:04 kdevops kernel: Loading iSCSI transport class v2.0-870. Oct 28 19:13:04 kdevops systemd[1]: Mounted Kernel Trace File System. Oct 28 19:13:04 kdevops systemd[1]: Finished Create list of static device nodes for the current kernel. Oct 28 19:13:04 kdevops systemd[1]: modprobe@drm.service: Succeeded. Oct 28 19:13:04 kdevops systemd[1]: Finished Load Kernel Module drm. Oct 28 19:13:04 kdevops systemd[1]: Finished Remount Root and Kernel File Systems. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped. Oct 28 19:13:04 kdevops systemd[1]: Starting Load/Save Random Seed... Oct 28 19:13:04 kdevops systemd[1]: Starting Create System Users... Oct 28 19:13:04 kdevops kernel: iscsi: registered transport (tcp) Oct 28 19:13:04 kdevops systemd[1]: Finished Load Kernel Modules. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in FUSE Control File System being skipped. Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Kernel Configuration File System being skipped. Oct 28 19:13:04 kdevops systemd[1]: Starting Apply Kernel Variables... Oct 28 19:13:04 kdevops systemd[1]: Finished Create System Users. Oct 28 19:13:04 kdevops systemd[1]: Finished Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling. Oct 28 19:13:04 kdevops systemd[1]: Starting Create Static Device Nodes in /dev... Oct 28 19:13:04 kdevops systemd[1]: Finished Apply Kernel Variables. Oct 28 19:13:04 kdevops systemd[1]: Finished Create Static Device Nodes in /dev. Oct 28 19:13:04 kdevops systemd[1]: Reached target Local File Systems (Pre). Oct 28 19:13:04 kdevops systemd[1]: Starting Rule-based Manager for Device Events and Files... Oct 28 19:13:04 kdevops systemd[1]: Finished Coldplug All udev Devices. Oct 28 19:13:04 kdevops systemd[1]: Starting Helper to synchronize boot up for ifupdown... Oct 28 19:13:04 kdevops systemd[1]: Finished Helper to synchronize boot up for ifupdown. Oct 28 19:13:04 kdevops systemd[1]: Started Rule-based Manager for Device Events and Files. Oct 28 19:13:04 kdevops systemd[1]: Starting Network Service... Oct 28 19:13:04 kdevops kernel: input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input4 Oct 28 19:13:04 kdevops systemd[1]: Found device /dev/ttyS0. Oct 28 19:13:04 kdevops kernel: ACPI: Power Button [PWRF] Oct 28 19:13:04 kdevops kernel: i6300ESB timer 0000:00:05.0: initialized. heartbeat=30 sec (nowayout=0) Oct 28 19:13:04 kdevops kernel: cryptd: max_cpu_qlen set to 1000 Oct 28 19:13:04 kdevops systemd[1]: Found device QEMU NVMe Ctrl data. Oct 28 19:13:04 kdevops systemd[1]: Mounting /data... Oct 28 19:13:04 kdevops kernel: BUG: unable to handle page fault for address: ffffffffb7d3e3b8 Oct 28 19:13:04 kdevops kernel: #PF: supervisor write access in kernel mode Oct 28 19:13:04 kdevops kernel: #PF: error_code(0x0003) - permissions violation Oct 28 19:13:04 kdevops kernel: PGD 210a0e067 P4D 210a0e067 PUD 210a0f063 PMD 112816063 PTE 800000021093e161 Oct 28 19:13:04 kdevops kernel: Oops: 0003 [#1] SMP NOPTI Oct 28 19:13:04 kdevops kernel: CPU: 5 PID: 312 Comm: systemd-udevd Tainted: G E 5.10.0-rc1-next-20201027 #1 Oct 28 19:13:04 kdevops kernel: Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1 04/01/2014 Oct 28 19:13:04 kdevops kernel: RIP: 0010:jump_label_module_notify+0x20b/0x2d0 Oct 28 19:13:04 kdevops kernel: Code: 0d da f5 21 49 a8 02 0f 85 db 00 00 00 48 83 e0 fc 48 c7 02 00 00 00 00 48 89 42 08 48 8b 43 08 83 e0 03 48 09 c2 48 83 ca 02 <48> 89 53 08 4d 89 66 10 49 89 6e 08 48 8b 43 08 a8 02 0f 84 98 00 Oct 28 19:13:04 kdevops kernel: RSP: 0018:ffffaf6f0039bcf0 EFLAGS: 00010282 Oct 28 19:13:04 kdevops kernel: input: PC Speaker as /devices/platform/pcspkr/input/input5 Oct 28 19:13:04 kdevops kernel: RAX: 0000000000000000 RBX: ffffffffb7d3e3b0 RCX: 0000000000000001 Oct 28 19:13:04 kdevops kernel: RDX: ffff9b7f154075c2 RSI: ffffffffb6df8577 RDI: ffffffffb7d3e3b0 Oct 28 19:13:04 kdevops kernel: RBP: ffffffffc06ea000 R08: 0000000000000020 R09: ffffffffb7efcd50 Oct 28 19:13:04 kdevops kernel: R10: 0000000000000003 R11: 0000000000000008 R12: ffffffffc06eb200 Oct 28 19:13:04 kdevops kernel: R13: ffffffffc06ea040 R14: ffff9b7f15407040 R15: ffffffffc06ea008 Oct 28 19:13:04 kdevops kernel: FS: 00007fded4a9f8c0(0000) GS:ffff9b8037d40000(0000) knlGS:0000000000000000 Oct 28 19:13:04 kdevops kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 CR3: 0000000113c74003 CR4: 0000000000370ee0 Oct 28 19:13:04 kdevops kernel: Call Trace: Oct 28 19:13:04 kdevops kernel: blocking_notifier_call_chain_robust+0x64/0xd0 Oct 28 19:13:04 kdevops kernel: ? mutex_lock+0xe/0x30 Oct 28 19:13:04 kdevops systemd[1]: Started Journal Service. Oct 28 19:13:04 kdevops kernel: load_module+0x1e30/0x2650 Oct 28 19:13:04 kdevops kernel: __do_sys_finit_module+0xb1/0x110 Oct 28 19:13:04 kdevops kernel: do_syscall_64+0x33/0x80 Oct 28 19:13:04 kdevops kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9 Oct 28 19:13:04 kdevops kernel: RIP: 0033:0x7fded4f49919 Oct 28 19:13:04 kdevops kernel: Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 47 55 0c 00 f7 d8 64 89 01 48 Oct 28 19:13:04 kdevops kernel: RSP: 002b:00007fffb9c0b1f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 Oct 28 19:13:04 kdevops kernel: RAX: ffffffffffffffda RBX: 000055ec99597d90 RCX: 00007fded4f49919 Oct 28 19:13:04 kdevops kernel: RDX: 0000000000000000 RSI: 00007fded50d5e4d RDI: 0000000000000006 Oct 28 19:13:04 kdevops kernel: RBP: 0000000000020000 R08: 0000000000000000 R09: 000055ec995a0998 Oct 28 19:13:04 kdevops kernel: R10: 0000000000000006 R11: 0000000000000246 R12: 00007fded50d5e4d Oct 28 19:13:04 kdevops kernel: R13: 0000000000000000 R14: 000055ec9959a460 R15: 000055ec99597d90 Oct 28 19:13:04 kdevops kernel: Modules linked in: drm_kms_helper(E+) cryptd(E) glue_helper(E) serio_raw(E) pcspkr(E) virtio_balloon(E+) i6300esb(E) cec(E) button(E) iscsi_tcp(E) libiscsi_tcp(E) libiscsi(E) scsi_transport_iscsi(E) drm(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc16(E) mbcache(E) jbd2(E) btrfs(E) blake2b_generic(E) xor(E) zstd_compress(E) raid6_pq(E) libcrc32c(E) crc32c_generic(E) virtio_net(E) net_failover(E) virtio_blk(E) failover(E) ata_generic(E) uhci_hcd(E) ehci_hcd(E) ata_piix(E) nvme(E) crc32c_intel(E) psmouse(E) usbcore(E) libata(E) scsi_mod(E) nvme_core(E) virtio_pci(E) i2c_piix4(E) virtio_ring(E) t10_pi(E) virtio(E) floppy(E) Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 Oct 28 19:13:04 kdevops kernel: ---[ end trace c8e99de72a30068a ]--- Oct 28 19:13:04 kdevops kernel: RIP: 0010:jump_label_module_notify+0x20b/0x2d0 Oct 28 19:13:04 kdevops kernel: Code: 0d da f5 21 49 a8 02 0f 85 db 00 00 00 48 83 e0 fc 48 c7 02 00 00 00 00 48 89 42 08 48 8b 43 08 83 e0 03 48 09 c2 48 83 ca 02 <48> 89 53 08 4d 89 66 10 49 89 6e 08 48 8b 43 08 a8 02 0f 84 98 00 Oct 28 19:13:04 kdevops kernel: RSP: 0018:ffffaf6f0039bcf0 EFLAGS: 00010282 Oct 28 19:13:04 kdevops kernel: RAX: 0000000000000000 RBX: ffffffffb7d3e3b0 RCX: 0000000000000001 Oct 28 19:13:04 kdevops kernel: RDX: ffff9b7f154075c2 RSI: ffffffffb6df8577 RDI: ffffffffb7d3e3b0 Oct 28 19:13:04 kdevops kernel: RBP: ffffffffc06ea000 R08: 0000000000000020 R09: ffffffffb7efcd50 Oct 28 19:13:04 kdevops kernel: R10: 0000000000000003 R11: 0000000000000008 R12: ffffffffc06eb200 Oct 28 19:13:04 kdevops kernel: R13: ffffffffc06ea040 R14: ffff9b7f15407040 R15: ffffffffc06ea008 Oct 28 19:13:04 kdevops kernel: FS: 00007fded4a9f8c0(0000) GS:ffff9b8037d40000(0000) knlGS:0000000000000000 Oct 28 19:13:04 kdevops kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 CR3: 0000000113c74003 CR4: 0000000000370ee0 Oct 28 19:13:05 kdevops kernel: random: crng init done Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=359 comm="apparmor_parser" Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=361 comm="apparmor_parser" Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=361 comm="apparmor_parser" Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=360 comm="apparmor_parser" Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=360 comm="apparmor_parser" Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=360 comm="apparmor_parser" ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/3] mm, page_poison: use static key more efficiently 2020-10-30 16:27 ` Luis Chamberlain @ 2020-10-30 22:56 ` Vlastimil Babka 2020-11-11 13:29 ` Luis Chamberlain 0 siblings, 1 reply; 18+ messages in thread From: Vlastimil Babka @ 2020-10-30 22:56 UTC (permalink / raw) To: Luis Chamberlain Cc: Andrew Morton, linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Peter Zijlstra On 10/30/20 5:27 PM, Luis Chamberlain wrote: > On Mon, Oct 26, 2020 at 06:33:57PM +0100, Vlastimil Babka wrote: >> Commit 11c9c7edae06 ("mm/page_poison.c: replace bool variable with static key") >> changed page_poisoning_enabled() to a static key check. However, the function >> is not inlined, so each check still involves a function call with overhead not >> eliminated when page poisoning is disabled. >> >> Analogically to how debug_pagealloc is handled, this patch converts >> page_poisoning_enabled() back to boolean check, and introduces >> page_poisoning_enabled_static() for fast paths. Both functions are inlined. >> >> Also optimize the check that enables page poisoning instead of debug_pagealloc >> for architectures without proper debug_pagealloc support. Move the check to >> init_mem_debugging() to enable a single static key instead of having two >> static branches in page_poisoning_enabled_static(). >> >> Signed-off-by: Vlastimil Babka <vbabka@suse.cz> > > <sad trombone> > > This patchset causes a regression x86_64 as a guest. I was able > to bisect this on the following linux-next tags: > > next-20201015 OK > next-20201023 OK > next-20201026 OK > next-20201027 BAD > next-20201028 BAD > > Bisection inside next-20201027 lands me on: > > "mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters" CC peterz. I wonder if it's because I converted some static keys to _RO DEFINE_STATIC_KEY_FALSE_RO(init_on_alloc);. ... DEFINE_STATIC_KEY_FALSE_RO(init_on_free); I thought it was ok since we only enable them during init. But maybe it's incompatible with use by modules? Not that I immediately see how drm_kms_helper(E+) uses them. Andrew, I'm fine if you drop the patchset for now. I fear the next version would be tedious to integrate in form of -fix-fix patches anyway... > which is part of this patchset, however, reverting that patch causes a > conflict, likely due to a subsequent patch in this series. So I decided > to try before the patch set and after and this confirms the bisection. > > Before this patchset, on patch titled, "mm: forbid splitting special > mappings" I see no issue, but after this patch set, on the patch titled > "mm, page_alloc: reduce static keys in prep_new_page()" I get a crash. > The crash log is attached. > > </sad trombone> > > <upbeat trombone> > > The good news it that this can be easily reproduced in a jiffy if you > use kdevops [0] on Debian (the default) on vagrant. > > [0] https://github.com/mcgrof/kdevops > > -- Logs begin at Wed 2020-10-28 01:30:20 UTC, end at Wed 2020-10-28 19:16:03 UTC. -- > Oct 28 19:13:04 kdevops kernel: Linux version 5.10.0-rc1-next-20201027 (vagrant@kdevops) (gcc (Debian 10.2.0-15) 10.2.0, GNU ld (GNU Binutils for Debian) 2.35.1) #1 SMP Wed Oct 28 15:14:07 UTC 2020 > Oct 28 19:13:04 kdevops kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 root=UUID=232d7b2f-c31e-4bbe-bffe-0ac429e4cb18 ro console=tty0 console=tty1 console=ttyS0,38400n8 > Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' > Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' > Oct 28 19:13:04 kdevops kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' > Oct 28 19:13:04 kdevops kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 > Oct 28 19:13:04 kdevops kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format. > Oct 28 19:13:04 kdevops kernel: BIOS-provided physical RAM map: > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000000100000-0x00000000bffdafff] usable > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000bffdb000-0x00000000bfffffff] reserved > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved > Oct 28 19:13:04 kdevops kernel: BIOS-e820: [mem 0x0000000100000000-0x000000023fffffff] usable > Oct 28 19:13:04 kdevops kernel: NX (Execute Disable) protection: active > Oct 28 19:13:04 kdevops kernel: SMBIOS 2.8 present. > Oct 28 19:13:04 kdevops kernel: DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1 04/01/2014 > Oct 28 19:13:04 kdevops kernel: Hypervisor detected: KVM > Oct 28 19:13:04 kdevops kernel: kvm-clock: Using msrs 4b564d01 and 4b564d00 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 0, msr 2110e2001, primary cpu clock > Oct 28 19:13:04 kdevops kernel: kvm-clock: using sched offset of 63760873909837 cycles > Oct 28 19:13:04 kdevops kernel: clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns > Oct 28 19:13:04 kdevops kernel: tsc: Detected 1992.014 MHz processor > Oct 28 19:13:04 kdevops kernel: e820: update [mem 0x00000000-0x00000fff] usable ==> reserved > Oct 28 19:13:04 kdevops kernel: e820: remove [mem 0x000a0000-0x000fffff] usable > Oct 28 19:13:04 kdevops kernel: last_pfn = 0x240000 max_arch_pfn = 0x400000000 > Oct 28 19:13:04 kdevops kernel: MTRR default type: write-back > Oct 28 19:13:04 kdevops kernel: MTRR fixed ranges enabled: > Oct 28 19:13:04 kdevops kernel: 00000-9FFFF write-back > Oct 28 19:13:04 kdevops kernel: A0000-BFFFF uncachable > Oct 28 19:13:04 kdevops kernel: C0000-FFFFF write-protect > Oct 28 19:13:04 kdevops kernel: MTRR variable ranges enabled: > Oct 28 19:13:04 kdevops kernel: 0 base 00C0000000 mask FFC0000000 uncachable > Oct 28 19:13:04 kdevops kernel: 1 disabled > Oct 28 19:13:04 kdevops kernel: 2 disabled > Oct 28 19:13:04 kdevops kernel: 3 disabled > Oct 28 19:13:04 kdevops kernel: 4 disabled > Oct 28 19:13:04 kdevops kernel: 5 disabled > Oct 28 19:13:04 kdevops kernel: 6 disabled > Oct 28 19:13:04 kdevops kernel: 7 disabled > Oct 28 19:13:04 kdevops kernel: x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT > Oct 28 19:13:04 kdevops kernel: last_pfn = 0xbffdb max_arch_pfn = 0x400000000 > Oct 28 19:13:04 kdevops kernel: found SMP MP-table at [mem 0x000f5c10-0x000f5c1f] > Oct 28 19:13:04 kdevops kernel: Using GB pages for direct mapping > Oct 28 19:13:04 kdevops kernel: RAMDISK: [mem 0x2f65b000-0x33b24fff] > Oct 28 19:13:04 kdevops kernel: ACPI: Early table checksum verification disabled > Oct 28 19:13:04 kdevops kernel: ACPI: RSDP 0x00000000000F5BD0 000014 (v00 BOCHS ) > Oct 28 19:13:04 kdevops kernel: ACPI: RSDT 0x00000000BFFE137A 000034 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: FACP 0x00000000BFFE11F6 000074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: DSDT 0x00000000BFFDFCC0 001536 (v01 BOCHS BXPCDSDT 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: FACS 0x00000000BFFDFC80 000040 > Oct 28 19:13:04 kdevops kernel: ACPI: APIC 0x00000000BFFE126A 0000B0 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: HPET 0x00000000BFFE131A 000038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: WAET 0x00000000BFFE1352 000028 (v01 BOCHS BXPCWAET 00000001 BXPC 00000001) > Oct 28 19:13:04 kdevops kernel: ACPI: Local APIC address 0xfee00000 > Oct 28 19:13:04 kdevops kernel: No NUMA configuration found > Oct 28 19:13:04 kdevops kernel: Faking a node at [mem 0x0000000000000000-0x000000023fffffff] > Oct 28 19:13:04 kdevops kernel: NODE_DATA(0) allocated [mem 0x23fffb000-0x23fffffff] > Oct 28 19:13:04 kdevops kernel: Zone ranges: > Oct 28 19:13:04 kdevops kernel: DMA [mem 0x0000000000001000-0x0000000000ffffff] > Oct 28 19:13:04 kdevops kernel: DMA32 [mem 0x0000000001000000-0x00000000ffffffff] > Oct 28 19:13:04 kdevops kernel: Normal [mem 0x0000000100000000-0x000000023fffffff] > Oct 28 19:13:04 kdevops kernel: Device empty > Oct 28 19:13:04 kdevops kernel: Movable zone start for each node > Oct 28 19:13:04 kdevops kernel: Early memory node ranges > Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000000001000-0x000000000009efff] > Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000000100000-0x00000000bffdafff] > Oct 28 19:13:04 kdevops kernel: node 0: [mem 0x0000000100000000-0x000000023fffffff] > Oct 28 19:13:04 kdevops kernel: Zeroed struct page in unavailable ranges: 135 pages > Oct 28 19:13:04 kdevops kernel: Initmem setup node 0 [mem 0x0000000000001000-0x000000023fffffff] > Oct 28 19:13:04 kdevops kernel: On node 0 totalpages: 2097017 > Oct 28 19:13:04 kdevops kernel: DMA zone: 64 pages used for memmap > Oct 28 19:13:04 kdevops kernel: DMA zone: 21 pages reserved > Oct 28 19:13:04 kdevops kernel: DMA zone: 3998 pages, LIFO batch:0 > Oct 28 19:13:04 kdevops kernel: DMA32 zone: 12224 pages used for memmap > Oct 28 19:13:04 kdevops kernel: DMA32 zone: 782299 pages, LIFO batch:63 > Oct 28 19:13:04 kdevops kernel: Normal zone: 20480 pages used for memmap > Oct 28 19:13:04 kdevops kernel: Normal zone: 1310720 pages, LIFO batch:63 > Oct 28 19:13:04 kdevops kernel: ACPI: PM-Timer IO Port: 0x608 > Oct 28 19:13:04 kdevops kernel: ACPI: Local APIC address 0xfee00000 > Oct 28 19:13:04 kdevops kernel: ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1]) > Oct 28 19:13:04 kdevops kernel: IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23 > Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) > Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) > Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) > Oct 28 19:13:04 kdevops kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) > Oct 28 19:13:04 kdevops kernel: ACPI: IRQ0 used by override. > Oct 28 19:13:04 kdevops kernel: ACPI: IRQ5 used by override. > Oct 28 19:13:04 kdevops kernel: ACPI: IRQ9 used by override. > Oct 28 19:13:04 kdevops kernel: ACPI: IRQ10 used by override. > Oct 28 19:13:04 kdevops kernel: ACPI: IRQ11 used by override. > Oct 28 19:13:04 kdevops kernel: Using ACPI (MADT) for SMP configuration information > Oct 28 19:13:04 kdevops kernel: ACPI: HPET id: 0x8086a201 base: 0xfed00000 > Oct 28 19:13:04 kdevops kernel: TSC deadline timer available > Oct 28 19:13:04 kdevops kernel: smpboot: Allowing 8 CPUs, 0 hotplug CPUs > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x0009ffff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000effff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0x000f0000-0x000fffff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xbffdb000-0xbfffffff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xc0000000-0xfeffbfff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xfeffc000-0xfeffffff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xff000000-0xfffbffff] > Oct 28 19:13:04 kdevops kernel: PM: hibernation: Registered nosave memory: [mem 0xfffc0000-0xffffffff] > Oct 28 19:13:04 kdevops kernel: [mem 0xc0000000-0xfeffbfff] available for PCI devices > Oct 28 19:13:04 kdevops kernel: Booting paravirtualized kernel on KVM > Oct 28 19:13:04 kdevops kernel: clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns > Oct 28 19:13:04 kdevops kernel: setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:8 nr_node_ids:1 > Oct 28 19:13:04 kdevops kernel: percpu: Embedded 55 pages/cpu s185112 r8192 d31976 u262144 > Oct 28 19:13:04 kdevops kernel: pcpu-alloc: s185112 r8192 d31976 u262144 alloc=1*2097152 > Oct 28 19:13:04 kdevops kernel: pcpu-alloc: [0] 0 1 2 3 4 5 6 7 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 0, msr 237c18580 > Oct 28 19:13:04 kdevops kernel: kvm-guest: PV spinlocks disabled, no host support > Oct 28 19:13:04 kdevops kernel: Built 1 zonelists, mobility grouping on. Total pages: 2064228 > Oct 28 19:13:04 kdevops kernel: Policy zone: Normal > Oct 28 19:13:04 kdevops kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 root=UUID=232d7b2f-c31e-4bbe-bffe-0ac429e4cb18 ro console=tty0 console=tty1 console=ttyS0,38400n8 > Oct 28 19:13:04 kdevops kernel: Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear) > Oct 28 19:13:04 kdevops kernel: Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) > Oct 28 19:13:04 kdevops kernel: mem auto-init: stack:off, heap alloc:off, heap free:off > Oct 28 19:13:04 kdevops kernel: Memory: 8073336K/8388068K available (12295K kernel code, 1774K rwdata, 3772K rodata, 1628K init, 7424K bss, 314472K reserved, 0K cma-reserved) > Oct 28 19:13:04 kdevops kernel: random: get_random_u64 called from __kmem_cache_create+0x2e/0x560 with crng_init=0 > Oct 28 19:13:04 kdevops kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1 > Oct 28 19:13:04 kdevops kernel: ftrace: allocating 34960 entries in 137 pages > Oct 28 19:13:04 kdevops kernel: ftrace: allocated 137 pages with 3 groups > Oct 28 19:13:04 kdevops kernel: rcu: Hierarchical RCU implementation. > Oct 28 19:13:04 kdevops kernel: rcu: RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=8. > Oct 28 19:13:04 kdevops kernel: Rude variant of Tasks RCU enabled. > Oct 28 19:13:04 kdevops kernel: Tracing variant of Tasks RCU enabled. > Oct 28 19:13:04 kdevops kernel: rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. > Oct 28 19:13:04 kdevops kernel: rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8 > Oct 28 19:13:04 kdevops kernel: NR_IRQS: 33024, nr_irqs: 488, preallocated irqs: 16 > Oct 28 19:13:04 kdevops kernel: Console: colour VGA+ 80x25 > Oct 28 19:13:04 kdevops kernel: printk: console [tty0] enabled > Oct 28 19:13:04 kdevops kernel: printk: console [ttyS0] enabled > Oct 28 19:13:04 kdevops kernel: ACPI: Core revision 20200925 > Oct 28 19:13:04 kdevops kernel: clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns > Oct 28 19:13:04 kdevops kernel: APIC: Switch to symmetric I/O mode setup > Oct 28 19:13:04 kdevops kernel: x2apic enabled > Oct 28 19:13:04 kdevops kernel: Switched APIC routing to physical x2apic. > Oct 28 19:13:04 kdevops kernel: ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 > Oct 28 19:13:04 kdevops kernel: clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x396d6c2a251, max_idle_ns: 881590442397 ns > Oct 28 19:13:04 kdevops kernel: Calibrating delay loop (skipped) preset value.. 3984.02 BogoMIPS (lpj=7968056) > Oct 28 19:13:04 kdevops kernel: pid_max: default: 32768 minimum: 301 > Oct 28 19:13:04 kdevops kernel: LSM: Security Framework initializing > Oct 28 19:13:04 kdevops kernel: Yama: becoming mindful. > Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor initialized > Oct 28 19:13:04 kdevops kernel: TOMOYO Linux initialized > Oct 28 19:13:04 kdevops kernel: Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) > Oct 28 19:13:04 kdevops kernel: Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) > Oct 28 19:13:04 kdevops kernel: x86/cpu: User Mode Instruction Prevention (UMIP) activated > Oct 28 19:13:04 kdevops kernel: Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0 > Oct 28 19:13:04 kdevops kernel: Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0 > Oct 28 19:13:04 kdevops kernel: Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization > Oct 28 19:13:04 kdevops kernel: Spectre V2 : Mitigation: Enhanced IBRS > Oct 28 19:13:04 kdevops kernel: Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch > Oct 28 19:13:04 kdevops kernel: Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier > Oct 28 19:13:04 kdevops kernel: Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp > Oct 28 19:13:04 kdevops kernel: SRBDS: Mitigation: TSX disabled > Oct 28 19:13:04 kdevops kernel: Freeing SMP alternatives memory: 32K > Oct 28 19:13:04 kdevops kernel: smpboot: CPU0: Intel Core Processor (Skylake, IBRS) (family: 0x6, model: 0x5e, stepping: 0x3) > Oct 28 19:13:04 kdevops kernel: Performance Events: unsupported p6 CPU model 94 no PMU driver, software events only. > Oct 28 19:13:04 kdevops kernel: rcu: Hierarchical SRCU implementation. > Oct 28 19:13:04 kdevops kernel: NMI watchdog: Perf NMI watchdog permanently disabled > Oct 28 19:13:04 kdevops kernel: smp: Bringing up secondary CPUs ... > Oct 28 19:13:04 kdevops kernel: x86: Booting SMP configuration: > Oct 28 19:13:04 kdevops kernel: .... node #0, CPUs: #1 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 1, msr 2110e2041, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 1 Converting physical 0 to logical die 1 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 1, msr 237c58580 > Oct 28 19:13:04 kdevops kernel: #2 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 2, msr 2110e2081, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 2 Converting physical 0 to logical die 2 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 2, msr 237c98580 > Oct 28 19:13:04 kdevops kernel: #3 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 3, msr 2110e20c1, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 3 Converting physical 0 to logical die 3 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 3, msr 237cd8580 > Oct 28 19:13:04 kdevops kernel: #4 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 4, msr 2110e2101, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 4 Converting physical 0 to logical die 4 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 4, msr 237d18580 > Oct 28 19:13:04 kdevops kernel: #5 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 5, msr 2110e2141, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 5 Converting physical 0 to logical die 5 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 5, msr 237d58580 > Oct 28 19:13:04 kdevops kernel: #6 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 6, msr 2110e2181, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 6 Converting physical 0 to logical die 6 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 6, msr 237d98580 > Oct 28 19:13:04 kdevops kernel: #7 > Oct 28 19:13:04 kdevops kernel: kvm-clock: cpu 7, msr 2110e21c1, secondary cpu clock > Oct 28 19:13:04 kdevops kernel: smpboot: CPU 7 Converting physical 0 to logical die 7 > Oct 28 19:13:04 kdevops kernel: kvm-guest: stealtime: cpu 7, msr 237dd8580 > Oct 28 19:13:04 kdevops kernel: smp: Brought up 1 node, 8 CPUs > Oct 28 19:13:04 kdevops kernel: smpboot: Max logical packages: 8 > Oct 28 19:13:04 kdevops kernel: smpboot: Total of 8 processors activated (31872.22 BogoMIPS) > Oct 28 19:13:04 kdevops kernel: devtmpfs: initialized > Oct 28 19:13:04 kdevops kernel: x86/mm: Memory block size: 128MB > Oct 28 19:13:04 kdevops kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns > Oct 28 19:13:04 kdevops kernel: futex hash table entries: 2048 (order: 5, 131072 bytes, linear) > Oct 28 19:13:04 kdevops kernel: pinctrl core: initialized pinctrl subsystem > Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 16 > Oct 28 19:13:04 kdevops kernel: audit: initializing netlink subsys (disabled) > Oct 28 19:13:04 kdevops kernel: audit: type=2000 audit(1603912377.860:1): state=initialized audit_enabled=0 res=1 > Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'fair_share' > Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'bang_bang' > Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'step_wise' > Oct 28 19:13:04 kdevops kernel: thermal_sys: Registered thermal governor 'user_space' > Oct 28 19:13:04 kdevops kernel: cpuidle: using governor ladder > Oct 28 19:13:04 kdevops kernel: cpuidle: using governor menu > Oct 28 19:13:04 kdevops kernel: ACPI: bus type PCI registered > Oct 28 19:13:04 kdevops kernel: acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 > Oct 28 19:13:04 kdevops kernel: PCI: Using configuration type 1 for base access > Oct 28 19:13:04 kdevops kernel: HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages > Oct 28 19:13:04 kdevops kernel: HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Module Device) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Processor Device) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(3.0 _SCP Extensions) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Processor Aggregator Device) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-Dell-Video) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) > Oct 28 19:13:04 kdevops kernel: ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) > Oct 28 19:13:04 kdevops kernel: ACPI: 1 ACPI AML tables successfully acquired and loaded > Oct 28 19:13:04 kdevops kernel: ACPI: Interpreter enabled > Oct 28 19:13:04 kdevops kernel: ACPI: (supports S0 S3 S4 S5) > Oct 28 19:13:04 kdevops kernel: ACPI: Using IOAPIC for interrupt routing > Oct 28 19:13:04 kdevops kernel: PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug > Oct 28 19:13:04 kdevops kernel: ACPI: Enabled 2 GPEs in block 00 to 0F > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) > Oct 28 19:13:04 kdevops kernel: acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI HPX-Type3] > Oct 28 19:13:04 kdevops kernel: acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [3] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [4] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [5] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [6] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [7] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [8] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [9] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [10] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [11] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [12] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [13] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [14] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [15] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [16] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [17] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [18] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [19] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [20] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [21] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [22] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [23] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [24] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [25] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [26] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [27] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [28] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [29] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [30] registered > Oct 28 19:13:04 kdevops kernel: acpiphp: Slot [31] registered > Oct 28 19:13:04 kdevops kernel: PCI host bridge to bus 0000:00 > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0xc0000000-0xfebfffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [mem 0x240000000-0x2bfffffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: root bus resource [bus 00-ff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:00.0: [8086:1237] type 00 class 0x060000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: [8086:7000] type 00 class 0x060100 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: [8086:7010] type 00 class 0x010180 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: reg 0x20: [io 0xc120-0xc12f] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: [8086:7020] type 00 class 0x0c0300 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: reg 0x20: [io 0xc0c0-0xc0df] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: [8086:7113] type 00 class 0x068000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: quirk: [io 0x0600-0x063f] claimed by PIIX4 ACPI > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.3: quirk: [io 0x0700-0x070f] claimed by PIIX4 SMB > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: [1013:00b8] type 00 class 0x030000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x10: [mem 0xfc000000-0xfdffffff pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x14: [mem 0xfebd8000-0xfebd8fff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: reg 0x30: [mem 0xfebc0000-0xfebcffff pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: [1af4:1001] type 00 class 0x010000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x10: [io 0xc000-0xc07f] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x14: [mem 0xfebd9000-0xfebd9fff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:03.0: reg 0x20: [mem 0xfe000000-0xfe003fff 64bit pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: [1af4:1002] type 00 class 0x00ff00 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: reg 0x10: [io 0xc080-0xc0bf] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:04.0: reg 0x20: [mem 0xfe004000-0xfe007fff 64bit pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:05.0: [8086:25ab] type 00 class 0x088000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:05.0: reg 0x10: [mem 0xfebda000-0xfebda00f] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: [1af4:1000] type 00 class 0x020000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x10: [io 0xc0e0-0xc0ff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x14: [mem 0xfebdb000-0xfebdbfff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x20: [mem 0xfe008000-0xfe00bfff 64bit pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:06.0: reg 0x30: [mem 0xfeb40000-0xfeb7ffff pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: [1af4:1000] type 00 class 0x020000 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x10: [io 0xc100-0xc11f] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x14: [mem 0xfebdc000-0xfebdcfff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x20: [mem 0xfe00c000-0xfe00ffff 64bit pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:07.0: reg 0x30: [mem 0xfeb80000-0xfebbffff pref] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: [8086:5845] type 00 class 0x010802 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: reg 0x10: [mem 0xfebd0000-0xfebd1fff 64bit] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:08.0: reg 0x20: [mem 0xfebdd000-0xfebddfff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: [8086:5845] type 00 class 0x010802 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: reg 0x10: [mem 0xfebd2000-0xfebd3fff 64bit] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:09.0: reg 0x20: [mem 0xfebde000-0xfebdefff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: [8086:5845] type 00 class 0x010802 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: reg 0x10: [mem 0xfebd4000-0xfebd5fff 64bit] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0a.0: reg 0x20: [mem 0xfebdf000-0xfebdffff] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: [8086:5845] type 00 class 0x010802 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: reg 0x10: [mem 0xfebd6000-0xfebd7fff 64bit] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:0b.0: reg 0x20: [mem 0xfebe0000-0xfebe0fff] > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) > Oct 28 19:13:04 kdevops kernel: ACPI: PCI Interrupt Link [LNKS] (IRQs *9) > Oct 28 19:13:04 kdevops kernel: iommu: Default domain type: Translated > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: setting as boot VGA device > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: vgaarb: bridge control possible > Oct 28 19:13:04 kdevops kernel: vgaarb: loaded > Oct 28 19:13:04 kdevops kernel: pps_core: LinuxPPS API ver. 1 registered > Oct 28 19:13:04 kdevops kernel: pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> > Oct 28 19:13:04 kdevops kernel: PTP clock support registered > Oct 28 19:13:04 kdevops kernel: EDAC MC: Ver: 3.0.0 > Oct 28 19:13:04 kdevops kernel: PCI: Using ACPI for IRQ routing > Oct 28 19:13:04 kdevops kernel: PCI: pci_cache_line_size set to 64 bytes > Oct 28 19:13:04 kdevops kernel: e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff] > Oct 28 19:13:04 kdevops kernel: e820: reserve RAM buffer [mem 0xbffdb000-0xbfffffff] > Oct 28 19:13:04 kdevops kernel: hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 > Oct 28 19:13:04 kdevops kernel: hpet0: 3 comparators, 64-bit 100.000000 MHz counter > Oct 28 19:13:04 kdevops kernel: clocksource: Switched to clocksource kvm-clock > Oct 28 19:13:04 kdevops kernel: VFS: Disk quotas dquot_6.6.0 > Oct 28 19:13:04 kdevops kernel: VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) > Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor Filesystem Enabled > Oct 28 19:13:04 kdevops kernel: pnp: PnP ACPI init > Oct 28 19:13:04 kdevops kernel: pnp 00:00: Plug and Play ACPI device, IDs PNP0501 (active) > Oct 28 19:13:04 kdevops kernel: pnp 00:01: Plug and Play ACPI device, IDs PNP0303 (active) > Oct 28 19:13:04 kdevops kernel: pnp 00:02: Plug and Play ACPI device, IDs PNP0f13 (active) > Oct 28 19:13:04 kdevops kernel: pnp 00:03: [dma 2] > Oct 28 19:13:04 kdevops kernel: pnp 00:03: Plug and Play ACPI device, IDs PNP0700 (active) > Oct 28 19:13:04 kdevops kernel: pnp 00:04: Plug and Play ACPI device, IDs PNP0b00 (active) > Oct 28 19:13:04 kdevops kernel: pnp: PnP ACPI: found 5 devices > Oct 28 19:13:04 kdevops kernel: clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns > Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 2 > Oct 28 19:13:04 kdevops kernel: tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear) > Oct 28 19:13:04 kdevops kernel: TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear) > Oct 28 19:13:04 kdevops kernel: TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear) > Oct 28 19:13:04 kdevops kernel: TCP: Hash tables configured (established 65536 bind 65536) > Oct 28 19:13:04 kdevops kernel: UDP hash table entries: 4096 (order: 5, 131072 bytes, linear) > Oct 28 19:13:04 kdevops kernel: UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear) > Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 1 > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 7 [mem 0xc0000000-0xfebfffff window] > Oct 28 19:13:04 kdevops kernel: pci_bus 0000:00: resource 8 [mem 0x240000000-0x2bfffffff window] > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: PIIX3: Enabling Passive Release > Oct 28 19:13:04 kdevops kernel: pci 0000:00:00.0: Limiting direct PCI/PCI transfers > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.0: Activating ISA DMA hang workarounds > Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKD] enabled at IRQ 11 > Oct 28 19:13:04 kdevops kernel: pci 0000:00:01.2: quirk_usb_early_handoff+0x0/0x700 took 254127 usecs > Oct 28 19:13:04 kdevops kernel: pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] > Oct 28 19:13:04 kdevops kernel: PCI: CLS 0 bytes, default 64 > Oct 28 19:13:04 kdevops kernel: Unpacking initramfs... > Oct 28 19:13:04 kdevops kernel: Freeing initrd memory: 70440K > Oct 28 19:13:04 kdevops kernel: PCI-DMA: Using software bounce buffering for IO (SWIOTLB) > Oct 28 19:13:04 kdevops kernel: software IO TLB: mapped [mem 0x00000000bbfdb000-0x00000000bffdb000] (64MB) > Oct 28 19:13:04 kdevops kernel: clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x396d6c2a251, max_idle_ns: 881590442397 ns > Oct 28 19:13:04 kdevops kernel: Initialise system trusted keyrings > Oct 28 19:13:04 kdevops kernel: workingset: timestamp_bits=40 max_order=21 bucket_order=0 > Oct 28 19:13:04 kdevops kernel: zbud: loaded > Oct 28 19:13:04 kdevops kernel: Key type asymmetric registered > Oct 28 19:13:04 kdevops kernel: Asymmetric key parser 'x509' registered > Oct 28 19:13:04 kdevops kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248) > Oct 28 19:13:04 kdevops kernel: io scheduler mq-deadline registered > Oct 28 19:13:04 kdevops kernel: shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 > Oct 28 19:13:04 kdevops kernel: intel_idle: Please enable MWAIT in BIOS SETUP > Oct 28 19:13:04 kdevops kernel: Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled > Oct 28 19:13:04 kdevops kernel: 00:00: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A > Oct 28 19:13:04 kdevops kernel: Linux agpgart interface v0.103 > Oct 28 19:13:04 kdevops kernel: AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de> > Oct 28 19:13:04 kdevops kernel: AMD-Vi: AMD IOMMUv2 functionality not available on this system > Oct 28 19:13:04 kdevops kernel: i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12 > Oct 28 19:13:04 kdevops kernel: serio: i8042 KBD port at 0x60,0x64 irq 1 > Oct 28 19:13:04 kdevops kernel: serio: i8042 AUX port at 0x60,0x64 irq 12 > Oct 28 19:13:04 kdevops kernel: mousedev: PS/2 mouse device common for all mice > Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: RTC can wake from S4 > Oct 28 19:13:04 kdevops kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 > Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: registered as rtc0 > Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: setting system clock to 2020-10-28T19:13:00 UTC (1603912380) > Oct 28 19:13:04 kdevops kernel: rtc_cmos 00:04: alarms up to one day, y3k, 242 bytes nvram, hpet irqs > Oct 28 19:13:04 kdevops kernel: intel_pstate: CPU model not supported > Oct 28 19:13:04 kdevops kernel: ledtrig-cpu: registered to indicate activity on CPUs > Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 10 > Oct 28 19:13:04 kdevops kernel: Segment Routing with IPv6 > Oct 28 19:13:04 kdevops kernel: mip6: Mobile IPv6 > Oct 28 19:13:04 kdevops kernel: NET: Registered protocol family 17 > Oct 28 19:13:04 kdevops kernel: mpls_gso: MPLS GSO support > Oct 28 19:13:04 kdevops kernel: IPI shorthand broadcast: enabled > Oct 28 19:13:04 kdevops kernel: sched_clock: Marking stable (1606138559, 98545979)->(1857469343, -152784805) > Oct 28 19:13:04 kdevops kernel: registered taskstats version 1 > Oct 28 19:13:04 kdevops kernel: Loading compiled-in X.509 certificates > Oct 28 19:13:04 kdevops kernel: zswap: loaded using pool lzo/zbud > Oct 28 19:13:04 kdevops kernel: kmemleak: Kernel memory leak detector initialized (mem pool available: 15495) > Oct 28 19:13:04 kdevops kernel: Key type ._fscrypt registered > Oct 28 19:13:04 kdevops kernel: Key type .fscrypt registered > Oct 28 19:13:04 kdevops kernel: Key type fscrypt-provisioning registered > Oct 28 19:13:04 kdevops kernel: AppArmor: AppArmor sha1 policy hashing enabled > Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (initmem) memory: 1628K > Oct 28 19:13:04 kdevops kernel: Write protecting the kernel read-only data: 18432k > Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (text/rodata gap) memory: 2040K > Oct 28 19:13:04 kdevops kernel: Freeing unused kernel image (rodata/data gap) memory: 324K > Oct 28 19:13:04 kdevops kernel: x86/mm: Checked W+X mappings: passed, no W+X pages found. > Oct 28 19:13:04 kdevops kernel: Run /init as init process > Oct 28 19:13:04 kdevops kernel: with arguments: > Oct 28 19:13:04 kdevops kernel: /init > Oct 28 19:13:04 kdevops kernel: with environment: > Oct 28 19:13:04 kdevops kernel: HOME=/ > Oct 28 19:13:04 kdevops kernel: TERM=linux > Oct 28 19:13:04 kdevops kernel: BOOT_IMAGE=/boot/vmlinuz-5.10.0-rc1-next-20201027 > Oct 28 19:13:04 kdevops kernel: floppy: module verification failed: signature and/or required key missing - tainting kernel > Oct 28 19:13:04 kdevops kernel: piix4_smbus 0000:00:01.3: SMBus Host Controller at 0x700, revision 0 > Oct 28 19:13:04 kdevops kernel: SCSI subsystem initialized > Oct 28 19:13:04 kdevops kernel: ACPI: bus type USB registered > Oct 28 19:13:04 kdevops kernel: input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input3 > Oct 28 19:13:04 kdevops kernel: usbcore: registered new interface driver usbfs > Oct 28 19:13:04 kdevops kernel: input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input2 > Oct 28 19:13:04 kdevops kernel: usbcore: registered new interface driver hub > Oct 28 19:13:04 kdevops kernel: FDC 0 is a S82078B > Oct 28 19:13:04 kdevops kernel: usbcore: registered new device driver usb > Oct 28 19:13:04 kdevops kernel: nvme nvme0: pci function 0000:00:08.0 > Oct 28 19:13:04 kdevops kernel: libata version 3.00 loaded. > Oct 28 19:13:04 kdevops kernel: nvme nvme1: pci function 0000:00:09.0 > Oct 28 19:13:04 kdevops kernel: nvme nvme2: pci function 0000:00:0a.0 > Oct 28 19:13:04 kdevops kernel: nvme nvme3: pci function 0000:00:0b.0 > Oct 28 19:13:04 kdevops kernel: ata_piix 0000:00:01.1: version 2.13 > Oct 28 19:13:04 kdevops kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > Oct 28 19:13:04 kdevops kernel: uhci_hcd: USB Universal Host Controller Interface driver > Oct 28 19:13:04 kdevops kernel: scsi host0: ata_piix > Oct 28 19:13:04 kdevops kernel: scsi host1: ata_piix > Oct 28 19:13:04 kdevops kernel: ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc120 irq 14 > Oct 28 19:13:04 kdevops kernel: ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc128 irq 15 > Oct 28 19:13:04 kdevops kernel: nvme nvme0: 8/0/0 default/read/poll queues > Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKA] enabled at IRQ 10 > Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKB] enabled at IRQ 10 > Oct 28 19:13:04 kdevops kernel: PCI Interrupt Link [LNKC] enabled at IRQ 11 > Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: UHCI Host Controller > Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1 > Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: detected 2 ports > Oct 28 19:13:04 kdevops kernel: nvme nvme1: 8/0/0 default/read/poll queues > Oct 28 19:13:04 kdevops kernel: uhci_hcd 0000:00:01.2: irq 11, io base 0x0000c0c0 > Oct 28 19:13:04 kdevops kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10 > Oct 28 19:13:04 kdevops kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 > Oct 28 19:13:04 kdevops kernel: usb usb1: Product: UHCI Host Controller > Oct 28 19:13:04 kdevops kernel: nvme nvme3: 8/0/0 default/read/poll queues > Oct 28 19:13:04 kdevops kernel: usb usb1: Manufacturer: Linux 5.10.0-rc1-next-20201027 uhci_hcd > Oct 28 19:13:04 kdevops kernel: usb usb1: SerialNumber: 0000:00:01.2 > Oct 28 19:13:04 kdevops kernel: nvme nvme2: 8/0/0 default/read/poll queues > Oct 28 19:13:04 kdevops kernel: hub 1-0:1.0: USB hub found > Oct 28 19:13:04 kdevops kernel: hub 1-0:1.0: 2 ports detected > Oct 28 19:13:04 kdevops kernel: virtio_blk virtio0: [vda] 41943040 512-byte logical blocks (21.5 GB/20.0 GiB) > Oct 28 19:13:04 kdevops kernel: vda: detected capacity change from 0 to 21474836480 > Oct 28 19:13:04 kdevops kernel: virtio_net virtio3 ens7: renamed from eth1 > Oct 28 19:13:04 kdevops kernel: vda: vda1 > Oct 28 19:13:04 kdevops kernel: random: fast init done > Oct 28 19:13:04 kdevops kernel: virtio_net virtio2 ens6: renamed from eth0 > Oct 28 19:13:04 kdevops kernel: raid6: avx2x4 gen() 36481 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: avx2x4 xor() 15571 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: avx2x2 gen() 43711 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: avx2x2 xor() 27110 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: avx2x1 gen() 35089 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: avx2x1 xor() 22494 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x4 gen() 18229 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x4 xor() 10145 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x2 gen() 18267 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x2 xor() 10673 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x1 gen() 14997 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: sse2x1 xor() 7538 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: using algorithm avx2x2 gen() 43711 MB/s > Oct 28 19:13:04 kdevops kernel: raid6: .... xor() 27110 MB/s, rmw enabled > Oct 28 19:13:04 kdevops kernel: raid6: using avx2x2 recovery algorithm > Oct 28 19:13:04 kdevops kernel: xor: automatically using best checksumming function avx > Oct 28 19:13:04 kdevops kernel: Btrfs loaded, crc32c=crc32c-intel > Oct 28 19:13:04 kdevops kernel: EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null) > Oct 28 19:13:04 kdevops kernel: Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist. > Oct 28 19:13:04 kdevops systemd[1]: Inserted module 'autofs4' > Oct 28 19:13:04 kdevops systemd[1]: systemd 246.6-2 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid) > Oct 28 19:13:04 kdevops systemd[1]: Detected virtualization kvm. > Oct 28 19:13:04 kdevops systemd[1]: Detected architecture x86-64. > Oct 28 19:13:04 kdevops systemd[1]: Set hostname to <kdevops>. > Oct 28 19:13:04 kdevops kernel: random: lvmconfig: uninitialized urandom read (4 bytes read) > Oct 28 19:13:04 kdevops systemd[1]: Queued start job for default target Graphical Interface. > Oct 28 19:13:04 kdevops systemd[1]: Created slice system-getty.slice. > Oct 28 19:13:04 kdevops systemd[1]: Created slice system-modprobe.slice. > Oct 28 19:13:04 kdevops systemd[1]: Created slice system-serial\x2dgetty.slice. > Oct 28 19:13:04 kdevops systemd[1]: Created slice User and Session Slice. > Oct 28 19:13:04 kdevops systemd[1]: Started Dispatch Password Requests to Console Directory Watch. > Oct 28 19:13:04 kdevops systemd[1]: Started Forward Password Requests to Wall Directory Watch. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Reached target Local Encrypted Volumes. > Oct 28 19:13:04 kdevops systemd[1]: Reached target Paths. > Oct 28 19:13:04 kdevops systemd[1]: Reached target Slices. > Oct 28 19:13:04 kdevops systemd[1]: Reached target Swap. > Oct 28 19:13:04 kdevops systemd[1]: Listening on Device-mapper event daemon FIFOs. > Oct 28 19:13:04 kdevops systemd[1]: Listening on LVM2 poll daemon socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on RPCbind Server Activation Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on Syslog Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on fsck to fsckd communication Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on initctl Compatibility Named Pipe. > Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Audit Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Socket (/dev/log). > Oct 28 19:13:04 kdevops systemd[1]: Listening on Journal Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on Network Service Netlink Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on udev Control Socket. > Oct 28 19:13:04 kdevops systemd[1]: Listening on udev Kernel Socket. > Oct 28 19:13:04 kdevops systemd[1]: Mounting Huge Pages File System... > Oct 28 19:13:04 kdevops systemd[1]: Mounting POSIX Message Queue File System... > Oct 28 19:13:04 kdevops systemd[1]: Mounting Kernel Debug File System... > Oct 28 19:13:04 kdevops systemd[1]: Mounting Kernel Trace File System... > Oct 28 19:13:04 kdevops systemd[1]: Starting Create list of static device nodes for the current kernel... > Oct 28 19:13:04 kdevops systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling... > Oct 28 19:13:04 kdevops systemd[1]: Starting Load Kernel Module drm... > Oct 28 19:13:04 kdevops kernel: random: lvm: uninitialized urandom read (4 bytes read) > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in File System Check on Root Device being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Starting Journal Service... > Oct 28 19:13:04 kdevops systemd[1]: Starting Load Kernel Modules... > Oct 28 19:13:04 kdevops systemd[1]: Starting Remount Root and Kernel File Systems... > Oct 28 19:13:04 kdevops systemd[1]: Starting Coldplug All udev Devices... > Oct 28 19:13:04 kdevops systemd[1]: Mounted Huge Pages File System. > Oct 28 19:13:04 kdevops systemd[1]: Mounted POSIX Message Queue File System. > Oct 28 19:13:04 kdevops systemd[1]: Mounted Kernel Debug File System. > Oct 28 19:13:04 kdevops kernel: EXT4-fs (vda1): re-mounted. Opts: errors=remount-ro > Oct 28 19:13:04 kdevops kernel: Loading iSCSI transport class v2.0-870. > Oct 28 19:13:04 kdevops systemd[1]: Mounted Kernel Trace File System. > Oct 28 19:13:04 kdevops systemd[1]: Finished Create list of static device nodes for the current kernel. > Oct 28 19:13:04 kdevops systemd[1]: modprobe@drm.service: Succeeded. > Oct 28 19:13:04 kdevops systemd[1]: Finished Load Kernel Module drm. > Oct 28 19:13:04 kdevops systemd[1]: Finished Remount Root and Kernel File Systems. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Starting Load/Save Random Seed... > Oct 28 19:13:04 kdevops systemd[1]: Starting Create System Users... > Oct 28 19:13:04 kdevops kernel: iscsi: registered transport (tcp) > Oct 28 19:13:04 kdevops systemd[1]: Finished Load Kernel Modules. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in FUSE Control File System being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Condition check resulted in Kernel Configuration File System being skipped. > Oct 28 19:13:04 kdevops systemd[1]: Starting Apply Kernel Variables... > Oct 28 19:13:04 kdevops systemd[1]: Finished Create System Users. > Oct 28 19:13:04 kdevops systemd[1]: Finished Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling. > Oct 28 19:13:04 kdevops systemd[1]: Starting Create Static Device Nodes in /dev... > Oct 28 19:13:04 kdevops systemd[1]: Finished Apply Kernel Variables. > Oct 28 19:13:04 kdevops systemd[1]: Finished Create Static Device Nodes in /dev. > Oct 28 19:13:04 kdevops systemd[1]: Reached target Local File Systems (Pre). > Oct 28 19:13:04 kdevops systemd[1]: Starting Rule-based Manager for Device Events and Files... > Oct 28 19:13:04 kdevops systemd[1]: Finished Coldplug All udev Devices. > Oct 28 19:13:04 kdevops systemd[1]: Starting Helper to synchronize boot up for ifupdown... > Oct 28 19:13:04 kdevops systemd[1]: Finished Helper to synchronize boot up for ifupdown. > Oct 28 19:13:04 kdevops systemd[1]: Started Rule-based Manager for Device Events and Files. > Oct 28 19:13:04 kdevops systemd[1]: Starting Network Service... > Oct 28 19:13:04 kdevops kernel: input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input4 > Oct 28 19:13:04 kdevops systemd[1]: Found device /dev/ttyS0. > Oct 28 19:13:04 kdevops kernel: ACPI: Power Button [PWRF] > Oct 28 19:13:04 kdevops kernel: i6300ESB timer 0000:00:05.0: initialized. heartbeat=30 sec (nowayout=0) > Oct 28 19:13:04 kdevops kernel: cryptd: max_cpu_qlen set to 1000 > Oct 28 19:13:04 kdevops systemd[1]: Found device QEMU NVMe Ctrl data. > Oct 28 19:13:04 kdevops systemd[1]: Mounting /data... > Oct 28 19:13:04 kdevops kernel: BUG: unable to handle page fault for address: ffffffffb7d3e3b8 > Oct 28 19:13:04 kdevops kernel: #PF: supervisor write access in kernel mode > Oct 28 19:13:04 kdevops kernel: #PF: error_code(0x0003) - permissions violation > Oct 28 19:13:04 kdevops kernel: PGD 210a0e067 P4D 210a0e067 PUD 210a0f063 PMD 112816063 PTE 800000021093e161 > Oct 28 19:13:04 kdevops kernel: Oops: 0003 [#1] SMP NOPTI > Oct 28 19:13:04 kdevops kernel: CPU: 5 PID: 312 Comm: systemd-udevd Tainted: G E 5.10.0-rc1-next-20201027 #1 > Oct 28 19:13:04 kdevops kernel: Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1 04/01/2014 > Oct 28 19:13:04 kdevops kernel: RIP: 0010:jump_label_module_notify+0x20b/0x2d0 > Oct 28 19:13:04 kdevops kernel: Code: 0d da f5 21 49 a8 02 0f 85 db 00 00 00 48 83 e0 fc 48 c7 02 00 00 00 00 48 89 42 08 48 8b 43 08 83 e0 03 48 09 c2 48 83 ca 02 <48> 89 53 08 4d 89 66 10 49 89 6e 08 48 8b 43 08 a8 02 0f 84 98 00 > Oct 28 19:13:04 kdevops kernel: RSP: 0018:ffffaf6f0039bcf0 EFLAGS: 00010282 > Oct 28 19:13:04 kdevops kernel: input: PC Speaker as /devices/platform/pcspkr/input/input5 > Oct 28 19:13:04 kdevops kernel: RAX: 0000000000000000 RBX: ffffffffb7d3e3b0 RCX: 0000000000000001 > Oct 28 19:13:04 kdevops kernel: RDX: ffff9b7f154075c2 RSI: ffffffffb6df8577 RDI: ffffffffb7d3e3b0 > Oct 28 19:13:04 kdevops kernel: RBP: ffffffffc06ea000 R08: 0000000000000020 R09: ffffffffb7efcd50 > Oct 28 19:13:04 kdevops kernel: R10: 0000000000000003 R11: 0000000000000008 R12: ffffffffc06eb200 > Oct 28 19:13:04 kdevops kernel: R13: ffffffffc06ea040 R14: ffff9b7f15407040 R15: ffffffffc06ea008 > Oct 28 19:13:04 kdevops kernel: FS: 00007fded4a9f8c0(0000) GS:ffff9b8037d40000(0000) knlGS:0000000000000000 > Oct 28 19:13:04 kdevops kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 CR3: 0000000113c74003 CR4: 0000000000370ee0 > Oct 28 19:13:04 kdevops kernel: Call Trace: > Oct 28 19:13:04 kdevops kernel: blocking_notifier_call_chain_robust+0x64/0xd0 > Oct 28 19:13:04 kdevops kernel: ? mutex_lock+0xe/0x30 > Oct 28 19:13:04 kdevops systemd[1]: Started Journal Service. > Oct 28 19:13:04 kdevops kernel: load_module+0x1e30/0x2650 > Oct 28 19:13:04 kdevops kernel: __do_sys_finit_module+0xb1/0x110 > Oct 28 19:13:04 kdevops kernel: do_syscall_64+0x33/0x80 > Oct 28 19:13:04 kdevops kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9 > Oct 28 19:13:04 kdevops kernel: RIP: 0033:0x7fded4f49919 > Oct 28 19:13:04 kdevops kernel: Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 47 55 0c 00 f7 d8 64 89 01 48 > Oct 28 19:13:04 kdevops kernel: RSP: 002b:00007fffb9c0b1f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 > Oct 28 19:13:04 kdevops kernel: RAX: ffffffffffffffda RBX: 000055ec99597d90 RCX: 00007fded4f49919 > Oct 28 19:13:04 kdevops kernel: RDX: 0000000000000000 RSI: 00007fded50d5e4d RDI: 0000000000000006 > Oct 28 19:13:04 kdevops kernel: RBP: 0000000000020000 R08: 0000000000000000 R09: 000055ec995a0998 > Oct 28 19:13:04 kdevops kernel: R10: 0000000000000006 R11: 0000000000000246 R12: 00007fded50d5e4d > Oct 28 19:13:04 kdevops kernel: R13: 0000000000000000 R14: 000055ec9959a460 R15: 000055ec99597d90 > Oct 28 19:13:04 kdevops kernel: Modules linked in: drm_kms_helper(E+) cryptd(E) glue_helper(E) serio_raw(E) pcspkr(E) virtio_balloon(E+) i6300esb(E) cec(E) button(E) iscsi_tcp(E) libiscsi_tcp(E) libiscsi(E) scsi_transport_iscsi(E) drm(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc16(E) mbcache(E) jbd2(E) btrfs(E) blake2b_generic(E) xor(E) zstd_compress(E) raid6_pq(E) libcrc32c(E) crc32c_generic(E) virtio_net(E) net_failover(E) virtio_blk(E) failover(E) ata_generic(E) uhci_hcd(E) ehci_hcd(E) ata_piix(E) nvme(E) crc32c_intel(E) psmouse(E) usbcore(E) libata(E) scsi_mod(E) nvme_core(E) virtio_pci(E) i2c_piix4(E) virtio_ring(E) t10_pi(E) virtio(E) floppy(E) > Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 > Oct 28 19:13:04 kdevops kernel: ---[ end trace c8e99de72a30068a ]--- > Oct 28 19:13:04 kdevops kernel: RIP: 0010:jump_label_module_notify+0x20b/0x2d0 > Oct 28 19:13:04 kdevops kernel: Code: 0d da f5 21 49 a8 02 0f 85 db 00 00 00 48 83 e0 fc 48 c7 02 00 00 00 00 48 89 42 08 48 8b 43 08 83 e0 03 48 09 c2 48 83 ca 02 <48> 89 53 08 4d 89 66 10 49 89 6e 08 48 8b 43 08 a8 02 0f 84 98 00 > Oct 28 19:13:04 kdevops kernel: RSP: 0018:ffffaf6f0039bcf0 EFLAGS: 00010282 > Oct 28 19:13:04 kdevops kernel: RAX: 0000000000000000 RBX: ffffffffb7d3e3b0 RCX: 0000000000000001 > Oct 28 19:13:04 kdevops kernel: RDX: ffff9b7f154075c2 RSI: ffffffffb6df8577 RDI: ffffffffb7d3e3b0 > Oct 28 19:13:04 kdevops kernel: RBP: ffffffffc06ea000 R08: 0000000000000020 R09: ffffffffb7efcd50 > Oct 28 19:13:04 kdevops kernel: R10: 0000000000000003 R11: 0000000000000008 R12: ffffffffc06eb200 > Oct 28 19:13:04 kdevops kernel: R13: ffffffffc06ea040 R14: ffff9b7f15407040 R15: ffffffffc06ea008 > Oct 28 19:13:04 kdevops kernel: FS: 00007fded4a9f8c0(0000) GS:ffff9b8037d40000(0000) knlGS:0000000000000000 > Oct 28 19:13:04 kdevops kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > Oct 28 19:13:04 kdevops kernel: CR2: ffffffffb7d3e3b8 CR3: 0000000113c74003 CR4: 0000000000370ee0 > Oct 28 19:13:05 kdevops kernel: random: crng init done > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=359 comm="apparmor_parser" > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=361 comm="apparmor_parser" > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.268:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=361 comm="apparmor_parser" > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=360 comm="apparmor_parser" > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=360 comm="apparmor_parser" > Oct 28 19:14:34 kdevops kernel: audit: type=1400 audit(1603912474.272:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=360 comm="apparmor_parser" > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/3] mm, page_poison: use static key more efficiently 2020-10-30 22:56 ` Vlastimil Babka @ 2020-11-11 13:29 ` Luis Chamberlain 0 siblings, 0 replies; 18+ messages in thread From: Luis Chamberlain @ 2020-11-11 13:29 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrew Morton, linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Peter Zijlstra On Fri, Oct 30, 2020 at 11:56:48PM +0100, Vlastimil Babka wrote: > On 10/30/20 5:27 PM, Luis Chamberlain wrote: > > On Mon, Oct 26, 2020 at 06:33:57PM +0100, Vlastimil Babka wrote: > > > Commit 11c9c7edae06 ("mm/page_poison.c: replace bool variable with static key") > > > changed page_poisoning_enabled() to a static key check. However, the function > > > is not inlined, so each check still involves a function call with overhead not > > > eliminated when page poisoning is disabled. > > > > > > Analogically to how debug_pagealloc is handled, this patch converts > > > page_poisoning_enabled() back to boolean check, and introduces > > > page_poisoning_enabled_static() for fast paths. Both functions are inlined. > > > > > > Also optimize the check that enables page poisoning instead of debug_pagealloc > > > for architectures without proper debug_pagealloc support. Move the check to > > > init_mem_debugging() to enable a single static key instead of having two > > > static branches in page_poisoning_enabled_static(). > > > > > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz> > > > > <sad trombone> > > > > This patchset causes a regression x86_64 as a guest. I was able > > to bisect this on the following linux-next tags: > > > > next-20201015 OK > > next-20201023 OK > > next-20201026 OK > > next-20201027 BAD > > next-20201028 BAD > > > > Bisection inside next-20201027 lands me on: > > > > "mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters" > > CC peterz. > > I wonder if it's because I converted some static keys to _RO > DEFINE_STATIC_KEY_FALSE_RO(init_on_alloc);. > ... > DEFINE_STATIC_KEY_FALSE_RO(init_on_free); This was along the lines of what I suspected but I didn't have time to provide an alternative. > I thought it was ok since we only enable them during init. But maybe it's > incompatible with use by modules? Not that I immediately see how > drm_kms_helper(E+) uses them. I can reproduce easily so happy to test alterantive patchsets! > Andrew, I'm fine if you drop the patchset for now. I fear the next version > would be tedious to integrate in form of -fix-fix patches anyway... Thanks for this, I confirm next-20201111 boots fine now on kdevops. Luis ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-26 17:33 [PATCH 0/3] optimize handling of memory debugging parameters Vlastimil Babka 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka 2020-10-26 17:33 ` [PATCH 2/3] mm, page_poison: use static key more efficiently Vlastimil Babka @ 2020-10-26 17:33 ` Vlastimil Babka 2020-10-27 9:10 ` David Hildenbrand 2 siblings, 1 reply; 18+ messages in thread From: Vlastimil Babka @ 2020-10-26 17:33 UTC (permalink / raw) To: Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, David Hildenbrand, Mateusz Nosek, Vlastimil Babka prep_new_page() will always zero a new page (regardless of __GFP_ZERO) when init_on_alloc is enabled, but will also always skip zeroing if the page was already zeroed on free by init_on_free or page poisoning. The latter check implemented by free_pages_prezeroed() can involve two different static keys. As prep_new_page() is really a hot path, let's introduce a single static key free_pages_not_prezeroed for this purpose and initialize it in init_mem_debugging(). Signed-off-by: Vlastimil Babka <vbabka@suse.cz> --- mm/page_alloc.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 2a1be197649d..980780f5f242 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -171,6 +171,8 @@ EXPORT_SYMBOL(init_on_alloc); DEFINE_STATIC_KEY_FALSE_RO(init_on_free); EXPORT_SYMBOL(init_on_free); +static DEFINE_STATIC_KEY_TRUE_RO(free_pages_not_prezeroed); + static bool _init_on_alloc_enabled_early __read_mostly = IS_ENABLED(CONFIG_INIT_ON_ALLOC_DEFAULT_ON); static int __init early_init_on_alloc(char *buf) @@ -777,6 +779,16 @@ void init_mem_debugging() } } + /* + * We have a special static key that controls whether prep_new_page will + * never need to zero the page. This mode is enabled when page is + * already zeroed by init_on_free or page_poisoning zero mode. + */ + if (_init_on_free_enabled_early || + (IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) + && page_poisoning_enabled())) + static_branch_disable(&free_pages_not_prezeroed); + #ifdef CONFIG_PAGE_POISONING /* * Page poisoning is debug page alloc for some arches. If @@ -2216,12 +2228,6 @@ static inline int check_new_page(struct page *page) return 1; } -static inline bool free_pages_prezeroed(void) -{ - return (IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) && - page_poisoning_enabled_static()) || want_init_on_free(); -} - #ifdef CONFIG_DEBUG_VM /* * With DEBUG_VM enabled, order-0 pages are checked for expected state when @@ -2291,7 +2297,8 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags { post_alloc_hook(page, order, gfp_flags); - if (!free_pages_prezeroed() && want_init_on_alloc(gfp_flags)) + if (static_branch_likely(&free_pages_not_prezeroed) + && want_init_on_alloc(gfp_flags)) kernel_init_free_pages(page, 1 << order); if (order && (gfp_flags & __GFP_COMP)) -- 2.29.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-26 17:33 ` [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() Vlastimil Babka @ 2020-10-27 9:10 ` David Hildenbrand 2020-10-27 11:05 ` Vlastimil Babka 0 siblings, 1 reply; 18+ messages in thread From: David Hildenbrand @ 2020-10-27 9:10 UTC (permalink / raw) To: Vlastimil Babka, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 26.10.20 18:33, Vlastimil Babka wrote: > prep_new_page() will always zero a new page (regardless of __GFP_ZERO) when > init_on_alloc is enabled, but will also always skip zeroing if the page was > already zeroed on free by init_on_free or page poisoning. > > The latter check implemented by free_pages_prezeroed() can involve two > different static keys. As prep_new_page() is really a hot path, let's introduce > a single static key free_pages_not_prezeroed for this purpose and initialize it > in init_mem_debugging(). Is this actually observable in practice? This smells like micro-optimization to me. Also, I thought the whole reason for static keys is to have basically no overhead at runtime, so I wonder if replacing two static key checks by a single one actually makes *some* difference. -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-27 9:10 ` David Hildenbrand @ 2020-10-27 11:05 ` Vlastimil Babka 2020-10-27 13:32 ` Vlastimil Babka 0 siblings, 1 reply; 18+ messages in thread From: Vlastimil Babka @ 2020-10-27 11:05 UTC (permalink / raw) To: David Hildenbrand, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek On 10/27/20 10:10 AM, David Hildenbrand wrote: > On 26.10.20 18:33, Vlastimil Babka wrote: >> prep_new_page() will always zero a new page (regardless of __GFP_ZERO) when >> init_on_alloc is enabled, but will also always skip zeroing if the page was >> already zeroed on free by init_on_free or page poisoning. >> >> The latter check implemented by free_pages_prezeroed() can involve two >> different static keys. As prep_new_page() is really a hot path, let's introduce >> a single static key free_pages_not_prezeroed for this purpose and initialize it >> in init_mem_debugging(). > > Is this actually observable in practice? This smells like > micro-optimization to me. > > Also, I thought the whole reason for static keys is to have basically no > overhead at runtime, so I wonder if replacing two static key checks by a > single one actually makes *some* difference. You're right, the difference seems to be just a single NOP. The static key infrastructure seems to be working really well. (At least the asm inspection made me realize that kernel_poison_pages() is called unconditionally and the static key is checked inside, not inline so I'll be amending patch 2...) Initially I thought I would be reducing 3 keys to 1 in this patch, but I got the code wrong. So unless others think it's a readability improvements, we can drop this patch. Or we can also reconsider this whole optimization. If the point is to be paranoid and enable both init_on_free and init_on_alloc, should we trust that nobody wrote something after the clearing on free via use-after-free? :) Kees/Alex? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-27 11:05 ` Vlastimil Babka @ 2020-10-27 13:32 ` Vlastimil Babka 2020-10-27 17:41 ` Vlastimil Babka 2020-10-29 17:37 ` Alexander Potapenko 0 siblings, 2 replies; 18+ messages in thread From: Vlastimil Babka @ 2020-10-27 13:32 UTC (permalink / raw) To: David Hildenbrand, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek, Laura Abbott On 10/27/20 12:05 PM, Vlastimil Babka wrote: > On 10/27/20 10:10 AM, David Hildenbrand wrote: >> On 26.10.20 18:33, Vlastimil Babka wrote: >>> prep_new_page() will always zero a new page (regardless of __GFP_ZERO) when >>> init_on_alloc is enabled, but will also always skip zeroing if the page was >>> already zeroed on free by init_on_free or page poisoning. >>> >>> The latter check implemented by free_pages_prezeroed() can involve two >>> different static keys. As prep_new_page() is really a hot path, let's introduce >>> a single static key free_pages_not_prezeroed for this purpose and initialize it >>> in init_mem_debugging(). >> >> Is this actually observable in practice? This smells like >> micro-optimization to me. >> >> Also, I thought the whole reason for static keys is to have basically no >> overhead at runtime, so I wonder if replacing two static key checks by a >> single one actually makes *some* difference. > > You're right, the difference seems to be just a single NOP. The static key > infrastructure seems to be working really well. > (At least the asm inspection made me realize that kernel_poison_pages() is > called unconditionally and the static key is checked inside, not inline so I'll > be amending patch 2...) > > Initially I thought I would be reducing 3 keys to 1 in this patch, but I got the > code wrong. So unless others think it's a readability improvements, we can drop > this patch. > > Or we can also reconsider this whole optimization. If the point is to be > paranoid and enable both init_on_free and init_on_alloc, should we trust that > nobody wrote something after the clearing on free via use-after-free? :) Kees/Alex? More thoughts... PAGE_POISONING_NO_SANITY skips the check on "unpoisoning" whether poison was corrupted PAGE_POISONING_ZERO uses zero instead of 0xAA as poison pattern the point of enabling both of these seems to be moot now that init_on_free exists, as that zeroes pages that are being freed, without checking on alloc that they are still zeroed. What if only one is enabled? - PAGE_POISONING_NO_SANITY without PAGE_POISONING_ZERO - we poison with the 0xAA pattern but nobody checks it, so does it give us anything over init_on_free writing zeroes? I don't think so? - PAGE_POISONING_ZERO without PAGE_POISONING_NO_SANITY - we use zeroes (like init_on_free) but also check that it wasn't corrupted. We save some time on writing zeroes again on alloc, but the check is still expensive. And writing 0xAA would possibly detect more corruptions than writing zero (a stray write of NULL is more likely to happen than of 0xAA?). So my conclusion: - We can remove PAGE_POISONING_NO_SANITY because it only makes sense with PAGE_POISONING_ZERO, and we can use init_on_free instead - We can also probably remove PAGE_POISONING_ZERO, because if we want to do the unpoisoning sanity check, then we also most likely want the 0xAA pattern and not zero. Thoughts? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-27 13:32 ` Vlastimil Babka @ 2020-10-27 17:41 ` Vlastimil Babka 2020-10-28 8:38 ` David Hildenbrand 2020-10-29 17:37 ` Alexander Potapenko 1 sibling, 1 reply; 18+ messages in thread From: Vlastimil Babka @ 2020-10-27 17:41 UTC (permalink / raw) To: David Hildenbrand, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek, Laura Abbott On 10/27/20 2:32 PM, Vlastimil Babka wrote: > So my conclusion: > - We can remove PAGE_POISONING_NO_SANITY because it only makes sense with > PAGE_POISONING_ZERO, and we can use init_on_free instead Note for this we first have to make sanity checking compatible with hibernation, but that should be easy as the zeroing variants already paved the way. The patch below will be added to the next version of the series: From 44474ee27c4f5248061ea2e5bbc2aeefc91bcdfc Mon Sep 17 00:00:00 2001 From: Vlastimil Babka <vbabka@suse.cz> Date: Tue, 27 Oct 2020 18:25:17 +0100 Subject: [PATCH] kernel/power: allow hibernation with page_poison sanity checking Page poisoning used to be incompatible with hibernation, as the state of poisoned pages was lost after resume, thus enabling CONFIG_HIBERNATION forces CONFIG_PAGE_POISONING_NO_SANITY. For the same reason, the poisoning with zeroes variant CONFIG_PAGE_POISONING_ZERO used to disable hibernation. The latter restriction was removed by commit 1ad1410f632d ("PM / Hibernate: allow hibernation with PAGE_POISONING_ZERO") and similarly for init_on_free by commit 18451f9f9e58 ("PM: hibernate: fix crashes with init_on_free=1") by making sure free pages are cleared after resume. We can use the same mechanism to instead poison free pages with PAGE_POISON after resume. This covers both zero and 0xAA patterns. Thus we can remove the Kconfig restriction that disables page poison sanity checking when hibernation is enabled. Signed-off-by: Vlastimil Babka <vbabka@suse.cz> --- kernel/power/hibernate.c | 2 +- kernel/power/power.h | 2 +- kernel/power/snapshot.c | 14 ++++++++++---- mm/Kconfig.debug | 1 - 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 2fc7d509a34f..da0b41914177 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -326,7 +326,7 @@ static int create_image(int platform_mode) if (!in_suspend) { events_check_enabled = false; - clear_free_pages(); + clear_or_poison_free_pages(); } platform_leave(platform_mode); diff --git a/kernel/power/power.h b/kernel/power/power.h index 24f12d534515..778bf431ec02 100644 --- a/kernel/power/power.h +++ b/kernel/power/power.h @@ -106,7 +106,7 @@ extern int create_basic_memory_bitmaps(void); extern void free_basic_memory_bitmaps(void); extern int hibernate_preallocate_memory(void); -extern void clear_free_pages(void); +extern void clear_or_poison_free_pages(void); /** * Auxiliary structure used for reading the snapshot image data and diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index 46b1804c1ddf..6b1c84afa891 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c @@ -1144,7 +1144,7 @@ void free_basic_memory_bitmaps(void) pr_debug("Basic memory bitmaps freed\n"); } -void clear_free_pages(void) +void clear_or_poison_free_pages(void) { struct memory_bitmap *bm = free_pages_map; unsigned long pfn; @@ -1152,12 +1152,18 @@ void clear_free_pages(void) if (WARN_ON(!(free_pages_map))) return; - if (IS_ENABLED(CONFIG_PAGE_POISONING_ZERO) || want_init_on_free()) { + if (page_poisoning_enabled() || want_init_on_free()) { memory_bm_position_reset(bm); pfn = memory_bm_next_pfn(bm); while (pfn != BM_END_OF_MAP) { - if (pfn_valid(pfn)) - clear_highpage(pfn_to_page(pfn)); + if (pfn_valid(pfn)) { + struct page *page = pfn_to_page(pfn); + if (page_poisoning_enabled_static()) + kernel_poison_pages(page, 1); + else if (want_init_on_free()) + clear_highpage(page); + + } pfn = memory_bm_next_pfn(bm); } diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug index 864f129f1937..c57786ad5be9 100644 --- a/mm/Kconfig.debug +++ b/mm/Kconfig.debug @@ -64,7 +64,6 @@ config PAGE_OWNER config PAGE_POISONING bool "Poison pages after freeing" - select PAGE_POISONING_NO_SANITY if HIBERNATION help Fill the pages with poison patterns after free_pages() and verify the patterns before alloc_pages. The filling of the memory helps -- 2.29.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-27 17:41 ` Vlastimil Babka @ 2020-10-28 8:38 ` David Hildenbrand 0 siblings, 0 replies; 18+ messages in thread From: David Hildenbrand @ 2020-10-28 8:38 UTC (permalink / raw) To: Vlastimil Babka, Andrew Morton Cc: linux-mm, linux-kernel, Alexander Potapenko, Kees Cook, Michal Hocko, Mateusz Nosek, Laura Abbott On 27.10.20 18:41, Vlastimil Babka wrote: > On 10/27/20 2:32 PM, Vlastimil Babka wrote: >> So my conclusion: >> - We can remove PAGE_POISONING_NO_SANITY because it only makes sense with >> PAGE_POISONING_ZERO, and we can use init_on_free instead > > Note for this we first have to make sanity checking compatible with > hibernation, but that should be easy as the zeroing variants already > paved the way. The patch below will be added to the next version of > the series: > > From 44474ee27c4f5248061ea2e5bbc2aeefc91bcdfc Mon Sep 17 00:00:00 2001 > From: Vlastimil Babka <vbabka@suse.cz> > Date: Tue, 27 Oct 2020 18:25:17 +0100 > Subject: [PATCH] kernel/power: allow hibernation with page_poison sanity > checking > > Page poisoning used to be incompatible with hibernation, as the state of > poisoned pages was lost after resume, thus enabling CONFIG_HIBERNATION forces > CONFIG_PAGE_POISONING_NO_SANITY. For the same reason, the poisoning with zeroes > variant CONFIG_PAGE_POISONING_ZERO used to disable hibernation. The latter > restriction was removed by commit 1ad1410f632d ("PM / Hibernate: allow > hibernation with PAGE_POISONING_ZERO") and similarly for init_on_free by commit > 18451f9f9e58 ("PM: hibernate: fix crashes with init_on_free=1") by making sure > free pages are cleared after resume. > > We can use the same mechanism to instead poison free pages with PAGE_POISON > after resume. This covers both zero and 0xAA patterns. Thus we can remove the > Kconfig restriction that disables page poison sanity checking when hibernation > is enabled. I haven't fully dived into the details, but the idea it sounds sane to me. -- Thanks, David / dhildenb ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() 2020-10-27 13:32 ` Vlastimil Babka 2020-10-27 17:41 ` Vlastimil Babka @ 2020-10-29 17:37 ` Alexander Potapenko 1 sibling, 0 replies; 18+ messages in thread From: Alexander Potapenko @ 2020-10-29 17:37 UTC (permalink / raw) To: Vlastimil Babka Cc: David Hildenbrand, Andrew Morton, Linux Memory Management List, LKML, Kees Cook, Michal Hocko, Mateusz Nosek, Laura Abbott On Tue, Oct 27, 2020 at 2:32 PM Vlastimil Babka <vbabka@suse.cz> wrote: > > On 10/27/20 12:05 PM, Vlastimil Babka wrote: > > On 10/27/20 10:10 AM, David Hildenbrand wrote: > >> On 26.10.20 18:33, Vlastimil Babka wrote: > >>> prep_new_page() will always zero a new page (regardless of __GFP_ZERO) when > >>> init_on_alloc is enabled, but will also always skip zeroing if the page was > >>> already zeroed on free by init_on_free or page poisoning. > >>> > >>> The latter check implemented by free_pages_prezeroed() can involve two > >>> different static keys. As prep_new_page() is really a hot path, let's introduce > >>> a single static key free_pages_not_prezeroed for this purpose and initialize it > >>> in init_mem_debugging(). > >> > >> Is this actually observable in practice? This smells like > >> micro-optimization to me. > >> > >> Also, I thought the whole reason for static keys is to have basically no > >> overhead at runtime, so I wonder if replacing two static key checks by a > >> single one actually makes *some* difference. > > > > You're right, the difference seems to be just a single NOP. The static key > > infrastructure seems to be working really well. > > (At least the asm inspection made me realize that kernel_poison_pages() is > > called unconditionally and the static key is checked inside, not inline so I'll > > be amending patch 2...) > > > > Initially I thought I would be reducing 3 keys to 1 in this patch, but I got the > > code wrong. So unless others think it's a readability improvements, we can drop > > this patch. I agree with David that replacing two static keys with one is probably a micro-optimization. Also, if someone is enabling both init_on_alloc and init_on_free, they are already paying so much that no one is going to notice an extra static key. > > Or we can also reconsider this whole optimization. If the point is to be > > paranoid and enable both init_on_free and init_on_alloc, should we trust that > > nobody wrote something after the clearing on free via use-after-free? :) Kees/Alex? I think we must trust the kernel to not overwrite zeroed pages. After all, this could theoretically happen at any time, not only while the memory chunk is freed. > More thoughts... > > PAGE_POISONING_NO_SANITY skips the check on "unpoisoning" whether poison was > corrupted > PAGE_POISONING_ZERO uses zero instead of 0xAA as poison pattern > > the point of enabling both of these seems to be moot now that init_on_free > exists, as that zeroes pages that are being freed, without checking on alloc > that they are still zeroed. > > What if only one is enabled? > - PAGE_POISONING_NO_SANITY without PAGE_POISONING_ZERO - we poison with the 0xAA > pattern but nobody checks it, so does it give us anything over init_on_free > writing zeroes? I don't think so? > > - PAGE_POISONING_ZERO without PAGE_POISONING_NO_SANITY - we use zeroes (like > init_on_free) but also check that it wasn't corrupted. We save some time on > writing zeroes again on alloc, but the check is still expensive. And writing > 0xAA would possibly detect more corruptions than writing zero (a stray write of > NULL is more likely to happen than of 0xAA?). > > So my conclusion: > - We can remove PAGE_POISONING_NO_SANITY because it only makes sense with > PAGE_POISONING_ZERO, and we can use init_on_free instead Agreed. > - We can also probably remove PAGE_POISONING_ZERO, because if we want to do the > unpoisoning sanity check, then we also most likely want the 0xAA pattern and not > zero. Agreed. It might also make sense to somehow merge page poisoning and init_on_free together and have one config dimension instead of two (providing something similar to the INIT_STACK_NONE/INIT_STACK_ALL_ZERO/INIT_STACK_ALL_PATTERN configs) > Thoughts? > -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2020-11-11 13:29 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-10-26 17:33 [PATCH 0/3] optimize handling of memory debugging parameters Vlastimil Babka 2020-10-26 17:33 ` [PATCH 1/3] mm, page_alloc: do not rely on the order of page_poison and init_on_alloc/free parameters Vlastimil Babka 2020-10-27 9:03 ` David Hildenbrand 2020-10-27 9:58 ` Vlastimil Babka 2020-10-27 9:58 ` David Hildenbrand 2020-10-28 8:31 ` Mike Rapoport 2020-10-26 17:33 ` [PATCH 2/3] mm, page_poison: use static key more efficiently Vlastimil Babka 2020-10-27 9:07 ` David Hildenbrand 2020-10-30 16:27 ` Luis Chamberlain 2020-10-30 22:56 ` Vlastimil Babka 2020-11-11 13:29 ` Luis Chamberlain 2020-10-26 17:33 ` [PATCH 3/3] mm, page_alloc: reduce static keys in prep_new_page() Vlastimil Babka 2020-10-27 9:10 ` David Hildenbrand 2020-10-27 11:05 ` Vlastimil Babka 2020-10-27 13:32 ` Vlastimil Babka 2020-10-27 17:41 ` Vlastimil Babka 2020-10-28 8:38 ` David Hildenbrand 2020-10-29 17:37 ` Alexander Potapenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).