From: K Prateek Nayak <kprateek.nayak@amd.com>
To: Shrikanth Hegde <sshegde@linux.ibm.com>
Cc: <vschneid@redhat.com>, <iii@linux.ibm.com>,
<huschle@linux.ibm.com>, <rostedt@goodmis.org>,
<dietmar.eggemann@arm.com>, <vineeth@bitbyteword.org>,
<jgross@suse.com>, <pbonzini@redhat.com>, <seanjc@google.com>,
<mingo@redhat.com>, <peterz@infradead.org>,
<juri.lelli@redhat.com>, <vincent.guittot@linaro.org>,
<tglx@linutronix.de>, <yury.norov@gmail.com>,
<maddy@linux.ibm.com>, <linux-kernel@vger.kernel.org>,
<linuxppc-dev@lists.ozlabs.org>, <gregkh@linuxfoundation.org>
Subject: Re: [RFC PATCH v3 07/10] sched/core: Push current task from paravirt CPU
Date: Thu, 11 Sep 2025 22:36:18 +0530 [thread overview]
Message-ID: <5493a681-4438-4854-9cf4-c1e71ad2dbed@amd.com> (raw)
In-Reply-To: <1617b0fb-273a-4d86-8247-c67968c07b3b@linux.ibm.com>
Hello Shrikanth,
On 9/11/2025 10:22 PM, Shrikanth Hegde wrote:
>>> + if (is_cpu_paravirt(cpu))
>>> + push_current_from_paravirt_cpu(rq);
>>
>> Does this mean paravirt CPU is capable of handling an interrupt but may
>> not be continuously available to run a task?
>
> When i run hackbench which involves fair bit of IRQ stuff, it moves out.
>
> For example,
>
> echo 600-710 > /sys/devices/system/cpu/paravirt
>
> 11:31:54 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
> 11:31:57 AM 598 2.04 0.00 77.55 0.00 18.37 0.00 1.02 0.00 0.00 1.02
> 11:31:57 AM 599 1.01 0.00 79.80 0.00 17.17 0.00 1.01 0.00 0.00 1.01
> 11:31:57 AM 600 0.00 0.00 0.00 0.00 0.00 0.00 0.99 0.00 0.00 99.01
> 11:31:57 AM 601 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
> 11:31:57 AM 602 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
>
>
> There could some workloads which doesn't move irq's out, for which needs irqbalance change.
> Looking into it.
>
> Or is the VMM expected to set
>> the CPU on the paravirt mask and give the vCPU sufficient time to move the
>> task before yanking it away from the pCPU?
>>
>
> If the vCPU is running something, it is going to run at some point on pCPU.
> hypervisor will give the cycles to this vCPU by preempting some other vCPU.
>
> It is that using this infra, there is should be nothing on that paravirt vCPU.
> That way collectively VMM gets only limited request for pCPU which it can satify
> without vCPU preemption.
Ack! Just wanted to understand the usage.
P.S. I remember discussions during last LPC where we could communicate
this unavailability via CPU capacity. Was that problematic for some
reason? Sorry if I didn't follow this discussion earlier.
[..snip..]
>>> + local_irq_save(flags);
>>> + preempt_disable();
>>
>> Disabling IRQs implies preemption is disabled.
>>
>
> Most of the places stop_one_cpu_nowait called with preemption & irq disabled.
> stopper runs at the next possible opportunity.
But is there any reason to do both local_irq_save() and
preempt_disable()? include/linux/preempt.h defines preemptible() as:
#define preemptible() (preempt_count() == 0 && !irqs_disabled())
so disabling IRQs should be sufficient right or am I missing something?
>
> stop_one_cpu_nowait
> ->queues the task into stopper list
> -> wake_up_process(stopper)
> -> set need_resched
> -> stopper runs as early as possible.
>
--
Thanks and Regards,
Prateek
next prev parent reply other threads:[~2025-09-11 17:06 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-10 17:42 [RFC PATCH v3 00/10] paravirt CPUs and push task for less vCPU preemption Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 01/10] sched/docs: Document cpu_paravirt_mask and Paravirt CPU concept Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 02/10] cpumask: Introduce cpu_paravirt_mask Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 03/10] sched: Static key to check paravirt cpu push Shrikanth Hegde
2025-09-11 1:53 ` Yury Norov
2025-09-11 14:37 ` Shrikanth Hegde
2025-09-11 15:29 ` Yury Norov
2025-09-10 17:42 ` [RFC PATCH v3 04/10] sched/core: Dont allow to use CPU marked as paravirt Shrikanth Hegde
2025-09-11 5:16 ` K Prateek Nayak
2025-09-11 14:44 ` Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 05/10] sched/fair: Don't consider paravirt CPUs for wakeup and load balance Shrikanth Hegde
2025-09-11 5:23 ` K Prateek Nayak
2025-09-11 15:56 ` Shrikanth Hegde
2025-09-11 16:55 ` K Prateek Nayak
2025-11-08 12:04 ` Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 06/10] sched/rt: Don't select paravirt CPU for wakeup and push/pull rt task Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 07/10] sched/core: Push current task from paravirt CPU Shrikanth Hegde
2025-09-11 5:40 ` K Prateek Nayak
2025-09-11 16:52 ` Shrikanth Hegde
2025-09-11 17:06 ` K Prateek Nayak [this message]
2025-09-12 5:22 ` Shrikanth Hegde
2025-09-12 8:48 ` K Prateek Nayak
2025-09-12 12:49 ` Shrikanth Hegde
2025-11-10 4:54 ` Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 08/10] sysfs: Add paravirt CPU file Shrikanth Hegde
2025-09-10 17:42 ` [RFC PATCH v3 09/10] powerpc: Add debug file for set/unset paravirt CPUs Shrikanth Hegde
2025-09-10 17:42 ` [HELPER PATCH] sysfs: Provide write method for paravirt Shrikanth Hegde
2025-10-20 14:32 ` [RFC PATCH v3 00/10] paravirt CPUs and push task for less vCPU preemption Sean Christopherson
2025-10-20 15:05 ` Paolo Bonzini
2025-10-23 4:03 ` Shrikanth Hegde
2025-10-21 6:10 ` Shrikanth Hegde
2025-10-22 18:46 ` Sean Christopherson
2025-10-30 17:43 ` Shrikanth Hegde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5493a681-4438-4854-9cf4-c1e71ad2dbed@amd.com \
--to=kprateek.nayak@amd.com \
--cc=dietmar.eggemann@arm.com \
--cc=gregkh@linuxfoundation.org \
--cc=huschle@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=jgross@suse.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=seanjc@google.com \
--cc=sshegde@linux.ibm.com \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
--cc=vineeth@bitbyteword.org \
--cc=vschneid@redhat.com \
--cc=yury.norov@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®