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

Re: [PATCH] xen/wait: Describe RSB safety


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Fri, 5 Aug 2022 11:10:17 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WbQjmE9q6jg+VjB4JDRg+Fgiia03s44YrTmy40lpr3w=; b=RIGlDrLpiFO52oES/S4Hw0lzCsXBLEmbwU301Rt7ovntcAqXL+zDArcnalzAGX47FCl5dP2DHPvuzqYf744tBHgKY4jCS5Pn31cskgmjFCsJL71Or2FzbHCHt1Rl6V3B3SQqKo5g4wsRf2WN4932yRSAlKnJeWBhasr4aUxE8xcfPMNJzSVtse4xoRxdXa99TYScaE3Y5ZsUc9oNXAlEcUVsKVhkyIPywPDXCZVc2dEOFWXmavA+8OiOvWNDslYURoDFcLelfjSZRpeFwBoj/otHaU9loNtpm8FxMHx0FGOb1B326Olx3Z9JSXji1QOg8Z5MlF0q6Ij5TREXUT5gGQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=msR3t7UXY/jm6A16Ubk53PFA8WDB+iWrEuTlq+duc6a0hhryZEYxdO75AAKXR6d1T+zqlosKke5XPn+nPwfMWpMyHbxAv/pvmnRS4eYU6TNlKa54B40SDscj0OuQB4kB49O90K+IuxHhaDAZP01HFgxfns7yV1El1r8DdRvr3LC9jyRhPRY1sCNHiawRIDRPwY46/LEWer54SVfAiTcFy6qgybDisjKMU+gRJt7gEA08W5/bIm0chGMdgWPTR0MQaQLKh0jXd0ExZhPL639djyUPv1L7yjjYSU5gsvLP+iIZHG6vMHpyuk9yM3hYozI5Xz2LmwGto9/QFe/aIhRcEA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 05 Aug 2022 11:10:52 +0000
  • Ironport-data: A9a23:J8J7uqh7ZAsA+vpUezYxUsPCX161eREKZh0ujC45NGQN5FlHY01je htvW2jVPKqMZ2HyKItyOYu0oRwO7J+Gz9FkSFA5pCwwRCIb9cadCdqndUqhZCn6wu8v7a5EA 2fyTvGacajYm1eF/k/F3oDJ9CU6j+fQLlbFILasEjhrQgN5QzsWhxtmmuoo6qZlmtH8CA6W0 T/Ii5S31GSNhnglaQr414rZ8Ek15KSq5GtD1rADTasjUGH2xiF94K03fcldH1OgKqFIE+izQ fr0zb3R1gs1KD90V7tJOp6iGqE7aua60Tqm0xK6aID76vR2nQQg075TCRYpQRw/ZwNlPTxG4 I4lWZSYEW/FN0BX8QgXe0Ew/ypWZcWq9FJbSJQWXAP6I0DuKhPRL/tS4E4eD40ao6VHXn530 e0xCwkPbleIgb26+efuIgVsrpxLwMjDGqo64ykl4RSHSPEsTNbEXrnA4sJe0HEonMdSEP3CZ s0fLz1ycBDHZB4JMVASYH48tL7w2j+jLHsF+BTM/fpfD2v7lWSd1JDENtbPd8PMbsJShkuC/ UrN/njjAwFcP9uaodaA2i3y2beXwXuiMG4UPO2DrdNr3HzQ+klJGgRKfEqB+6GzsHfrDrqzL GRRoELCt5Ma9kamU938VB2Qu2Ofs1gXXN84O/I+wBGAzOzT+QnxLngJSHtNZcIrsOcyRCc2z RmZktXxHzttvbaJD3WH+d+pQSiaPCEUKSoOYHECRA5cu937+thr3lTIU8ppF7OzgpvtAzbsz juWrS84wbIOkcoM0Kb99lfC696xmqX0oscOzl2/dgqYAslROuZJu6TABYDn0Mt9
  • Ironport-hdrordr: A9a23:O4uzqaFFV3DzSDWHpLqFS5HXdLJyesId70hD6qkvc3Fom52j/f xGws5x6fatskdrZJkh8erwW5Vp2RvnhNNICPoqTM2ftW7dySeVxeBZnMHfKljbdxEWmdQtsp uIH5IeNDS0NykDsS+Y2nj2Lz9D+qjgzEnAv463oBlQpENRGthdBmxCe2Sm+zhNNW177O0CZf +hD6R8xwaISDAyVICWF3MFV+/Mq5ngj5T9eyMLABYh9U2nkS6owKSSKWnY4j4uFxd0hZsy+2 nMlAL0oo+5teug9xPa32jPq7xLhdrazMdZDsDksLlUFtyssHfqWG1SYczGgNkHmpDq1L/sqq iKn/4UBbUw15oWRBDynfKi4Xi47N9k0Q6e9bbRuwqenSW+fkN1NyMJv/MmTvOSgXBQw+1Uwe ZF2XmUuIFQCg6FlCPh58LQXxUvjUasp2E++NRjxkC3fLFuH4O5l7Zvin99AdMFBmb3+YonGO 5hAIXV4+tXa0qTazTcsnN0yNKhU3wvFlPeK3Jy8fC9wnxThjR03kEYzMsQkjMJ8488UYBN46 DBPr5znL9DQ8cKZeZ2BfsHQ8GwFmvRKCi8eF66MBDiDuUKKnjNo5n47PE84/yrYoUByN8olJ HIQDpjxBoPkoLVeLizNbFwg2DwqT+GLEXQI+lllutEk6y5Qqb3OiueT11rm9e8opwkc7/mZ8 o=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYqLeZRPHbs/fcFkKmBoS12c4tV62gITQAgAAFPYA=
  • Thread-topic: [PATCH] xen/wait: Describe RSB safety

On 05/08/2022 11:51, Jan Beulich wrote:
> On 05.08.2022 12:38, Andrew Cooper wrote:
>> It turns out that we do in fact have RSB safety here, but not for obvious
>> reasons.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> preferably with ...
>
>> --- a/xen/common/wait.c
>> +++ b/xen/common/wait.c
>> @@ -210,6 +210,26 @@ void check_wakeup_from_wait(void)
>>      }
>>  
>>      /*
>> +     * We are about to jump into a deeper call tree.  In principle, this 
>> risks
>> +     * executing more RET than CALL instructions, and underflowing the RSB.
>> +     *
>> +     * However, we are pinned to the same CPU as previously.  Therefore,
>> +     * either:
>> +     *
>> +     *   1) We've scheduled another vCPU in the meantime, and the context
>> +     *      switch path has (by default) issued IPBP which flushes the RSB, 
>> or
> ... IBPB used here and ...
>
>> +     *   2) We're still in the same context.  Returning back to the deeper
>> +     *      call tree is resuming the execution path we left, and remains
>> +     *      balanced as far as that logic is concerned.
>> +     *
>> +     *      In fact, the path though the scheduler will execute more CALL 
>> than
> ... (nit) "through" used here.

Wow I failed at writing...  Fixed.

~Andrew

>
>> +     *      RET instructions, making the RSB unbalanced in the safe 
>> direction.
>> +     *
>> +     * Therefore, no actions are necessary here to maintain RSB safety.
>> +     */
>> +
>> +    /*
>>       * Hand-rolled longjmp().
>>       *
>>       * check_wakeup_from_wait() is always called with a shallow stack,


 


Rackspace

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