|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 5/7] vpci: fix execution of long running operations
Hi Roger, On 11/8/18 12:20 PM, Roger Pau Monné wrote: On Thu, Nov 08, 2018 at 11:52:57AM +0000, Julien Grall wrote:Hi Roger, On 11/8/18 11:44 AM, Roger Pau Monné wrote:On Thu, Nov 08, 2018 at 11:42:35AM +0000, Julien Grall wrote:Hi, Sorry to jump in the conversation late. On 11/8/18 11:29 AM, Roger Pau Monné wrote:Why would that be? The do_softirq() invocation sits on the exit- to-guest path, explicitly avoiding any such nesting unless there was a do_softirq() invocation somewhere in a softirq handler.It sits on an exit-to-guest path, but the following chunk: raise_softirq(SCHEDULE_SOFTIRQ); do_softirq(); Would prevent the path from ever reaching the exit-to-guest and nesting on itself, unless the vCPU is marked as blocked, which prevents it from being scheduled thus avoiding this recursion.I can't see how the recursion could happen on Arm. So is it an x86 issue?This is not an issue with the current code, I was just discussing with Jan how to properly implement vPCI long running operations that need to be preempted. This sounds like an x86 specific issue. In the case of Arm, the context_switch() function will return, so we will come back in the loop before. We can do this because the hypervisor stack is per-VCPU. So there are no stack overflowed involved here. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |