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

Re: [PATCH RFC] evtchn: add early-out to evtchn_move_pirqs()


  • To: Julien Grall <julien@xxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Fri, 8 Apr 2022 14:25:12 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.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=I+aBgUDsMue/9QuwXh0YTmAd1VbyoxChf6uGobDPAO8=; b=oboNyuHI+4cHLD5MAvI2fDyvxDjJ2tZ9o++XKMjnn7pJjaPFz1scWTeQiKOKb10VfHhAvCF1v+OLiIaKlymCT/FLzeG21NrCm4LsrtIu9cIbctEPqNnjnN8AeVfvwjIaBu+Ph5HApZmsVy6mH6pvfj5Isihz/9ISg6/tBJ9euY+XCTuqyPpbnYAVOvBu+RiYTzwlCLWtAsOo9bGGdUjmVX9tXRmUc+bc5veyTSPHDQgJt3ssXhfjvXkQIG0mutSkU7h+KnJL9alFG+SGwNKX19hsTVfsMWBcAYi7G2BWNoD1CLihAn3bi3awuoMUYl5CQxOOF6EsLveCAggcLszLgQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dIqpgUPYDF6UNqgE745Wl4O/aHqg4RFoD8eO6NHTnDii7HUtr1VY4mM/p6hEeuSV16QpYPwjcuyEfscONqiLRMcg+oISC0yYzmsWWC+5k+u4mrMOt0ibEY94LYocYkiffTMBBkfwN1q7lnZajXQlwNOH1y/SZUWsNI+Eun2PQs9kOuj729QLeOBqlHjeDWPr2awzLxcIGD9cq6T+cTqgMq0MuhDS45q1I5Zv71ls8uULwmvhI6ooPY21Ti27gh5CUp5cujjVWISfMsN8sIsPbUp8JQ0BmMi9J09ldPSEL0W6KdHSXRl/fFSLTAcxgs9RMaWbVjaJRtced58jV4Q0IQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Dario Faggioli <dfaggioli@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 08 Apr 2022 12:25:41 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 08.04.2022 13:02, Julien Grall wrote:
> On 08/04/2022 08:16, Jan Beulich wrote:
>> See the code comment. The higher the rate of vCPU-s migrating across
>> pCPU-s, the less useful this attempted optimization actually is. With
>> credit2 the migration rate looks to be unduly high even on mostly idle
>> systems, and hence on large systems lock contention here isn't very
>> difficult to observe.
> 
> "high" and "large" is quite vague. Do you have more details on where you 
> observed this issue and the improvement after this patch?

I have no data beyond the observation on the failed 4.12 osstest flights,
where I mentioned I would make such a patch and send out as RFC.

>> --- a/xen/common/event_channel.c
>> +++ b/xen/common/event_channel.c
>> @@ -1559,6 +1559,16 @@ void evtchn_move_pirqs(struct vcpu *v)
>>       unsigned int port;
>>       struct evtchn *chn;
>>   
>> +    /*
>> +     * The work done below is an attempt to keep pIRQ-s on the pCPU-s that 
>> the
>> +     * vCPU-s they're to be delivered to run on. In order to limit lock
>> +     * contention, check for an empty list prior to acquiring the lock. In 
>> the
>> +     * worst case a pIRQ just bound to this vCPU will be delivered elsewhere
>> +     * until the vCPU is migrated (again) to another pCPU.
>> +     */
> 
> AFAIU, the downside is another pCPU (and therefore vCPU) will get 
> disturbed by the interrupt.

But only rarely, i.e. in case a race would actually have occurred.

> Maybe we should revive "evtchn: convert 
> domain event lock to an r/w one"?

Not sure - the patch was rejected for there, overall, being too few
cases where read_lock() would suffice.

Jan




 


Rackspace

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