[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 3/3] x86: introduce and use scratch CPU mask



>>> On 15.12.16 at 15:15, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 09/12/16 08:59, Jan Beulich wrote:
>>>>> On 08.12.16 at 18:51, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> On 08/12/16 16:02, Jan Beulich wrote:
>>>> variable. With an IRQ happening at the deepest point of the stack, and
>>>> with send_guest_pirq() being called from there (leading to vcpu_kick()
>>>> -> ... -> csched_vcpu_wake() -> __runq_tickle() ->
>>>> cpumask_raise_softirq(), the last two of which also have CPU mask
>>>> variables on their stacks), this has been observed to cause a stack
>>> "stacks), has been".
>> Hmm, that looks strange to me: Wouldn't the dropping of "this"
>> also requite the "With" at the start of the sentence to be dropped
>> (and isn't the sentence okay with both left in place)?
> 
> The use of "this" requires a substantial backtrack through the text to
> evaluate what it refers to, which as you point, I didn't manage to do
> successfully. 
> 
> As is evident, I had a very hard time trying to parse the sentence.
> 
> It would be clearer to read if you took out both the "With" and "this".

I've re-ordered it some more:

__get_page_type(), so far using an on-stack CPU mask variable, is
involved in recursion when e.g. pinning page tables. This means there
may be up to five instances of the function active at a time, implying
five instances of the (up to 512 bytes large) CPU mask variable. An IRQ
happening at the deepest point of the stack has been observed to cause
a stack overflow with a 4095-pCPU build, when the IRQ handling results
in send_guest_pirq() being called (leading to vcpu_kick() -> ... ->
csched_vcpu_wake() -> __runq_tickle() -> cpumask_raise_softirq(), the
last two of which also have CPU mask variables on their stacks).

Does this suit you better?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.