On 30.01.2026 15:57, Roger Pau Monne wrote:
> @@ -1117,6 +1130,14 @@ static struct page_info *alloc_heap_pages(
>                      scrub_one_page(&pg[i], cold);
>  
>                  dirty_cnt++;
> +
> +                /*
> +                 * Use SYS_STATE_smp_boot explicitly; ahead of that state
> +                 * interrupts are disabled.
> +                 */
> +                if ( system_state == SYS_STATE_smp_boot &&
> +                     !(dirty_cnt & 0xff) )
> +                    process_pending_softirqs();
>              }
>              else
>                  check_one_page(&pg[i]);

Coming back to this, I see two possible issues. One is that on x86 enabling
of IRQs happens a bit earlier than setting of SYS_STATE_smp_boot. Maybe this
isn't really a problem right now, but it could become one if the "wrong"
thing is inserted into that window in __start_xen().

The other is that only x86 actually ever sets that state.

Jan

Reply via email to