From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH v3 07/15] KVM: MMU: introduce nulls desc Date: Tue, 10 Dec 2013 14:58:12 +0800 Message-ID: <52A6BB84.30706@gmail.com> References: <20131122191429.GA13308@amt.cnet> <65EE805B-B5DB-4BD0-A057-E5FF78D96D67@linux.vnet.ibm.com> <5292EE2F.5090305@linux.vnet.ibm.com> <20131125181254.GB21858@amt.cnet> <529413C1.60302@linux.vnet.ibm.com> <20131126193148.GA18071@amt.cnet> <5297049E.3020800@linux.vnet.ibm.com> <529D83F8.7050605@linux.vnet.ibm.com> <20131205135021.GA12996@amt.cnet> <20131206002244.GA29960@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Gleb Natapov , avi.kivity@gmail.com, "pbonzini@redhat.com Bonzini" , linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Eric Dumazet , Peter Zijlstra To: Marcelo Tosatti Return-path: Received: from mail-oa0-f43.google.com ([209.85.219.43]:53175 "EHLO mail-oa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750789Ab3LJG6X (ORCPT ); Tue, 10 Dec 2013 01:58:23 -0500 In-Reply-To: <20131206002244.GA29960@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: On 12/06/2013 08:22 AM, Marcelo Tosatti wrote: > On Thu, Dec 05, 2013 at 11:30:27PM +0800, Xiao Guangrong wrote: >> In some cases, the lockless walker will do endless-walking on desc a= nd >> without rewalk, consider this case: >> >> there are two descs: desc1 and desc2 who is pointed by desc1->next=EF= =BC=9A >> desc1->next =3D desc2. >> >> CPU 0 = CPU 1 >> >> lockless walk on desc1 >> del= eting desc1 from the rmap >> lockless walk on desc2 (desc1->next) >> dele= te desc2 from the rmap >> add = desc1 >> add = desc2, then desc2->next =3D desc1 >> >> lockless walk on desc1 >> delet= e desc2 >> delet= e desc1 >> add d= esc2 >> add d= esc1; the desc1->next =3D desc2 >> lockless walk on desc2 >> >> =E2=80=A6=E2=80=A6 >> >> Then, the walker is endlessly walking on desc1 and desc2 without any= rewalk. >=20 > The counter can be local to the walker. If its more than maximum rmap > size, break. >=20 > (but still, please consider carefully whether lockless list walking i= s > really necessary or can be avoided). Yep, Marcelo, you're right. After thinking more, i do not have any idea to simplify this. Your appr= oach (lockless on the first level) seems a better solution. Will do it based= on that ways. Thanks!