From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33915) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zft4J-0000yc-Fs for qemu-devel@nongnu.org; Sat, 26 Sep 2015 13:15:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zft4G-0005XP-Ap for qemu-devel@nongnu.org; Sat, 26 Sep 2015 13:15:27 -0400 Received: from mail-pa0-x233.google.com ([2607:f8b0:400e:c03::233]:33206) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zft4G-0005WK-5B for qemu-devel@nongnu.org; Sat, 26 Sep 2015 13:15:24 -0400 Received: by pacex6 with SMTP id ex6so134267561pac.0 for ; Sat, 26 Sep 2015 10:15:23 -0700 (PDT) Sender: Richard Henderson References: <1443083566-10994-1-git-send-email-a.rigo@virtualopensystems.com> <1443083566-10994-2-git-send-email-a.rigo@virtualopensystems.com> From: Richard Henderson Message-ID: <5606D2A8.10501@twiddle.net> Date: Sat, 26 Sep 2015 10:15:20 -0700 MIME-Version: 1.0 In-Reply-To: <1443083566-10994-2-git-send-email-a.rigo@virtualopensystems.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC v5 1/6] exec.c: Add new exclusive bitmap to ram_list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alvise Rigo , qemu-devel@nongnu.org, mttcg@greensocs.com Cc: claudio.fontana@huawei.com, jani.kokkonen@huawei.com, tech@virtualopensystems.com, alex.bennee@linaro.org, pbonzini@redhat.com On 09/24/2015 01:32 AM, Alvise Rigo wrote: > + if (cpu == smp_cpus) { > + if (smp_cpus >= EXCL_BITMAP_CELL_SZ) { > + return bitmap[EXCL_BITMAP_GET_BYTE_OFFSET(addr)]; > + } else { > + return bitmap[EXCL_BITMAP_GET_BYTE_OFFSET(addr)] & > + ((1 << smp_cpus) - 1); > + } > + } else { > + return bitmap[EXCL_BITMAP_GET_BYTE_OFFSET(addr)] & (1 << EXCL_IDX(cpu)); > + } How can more than one cpu have the same address exclusively? Isn't this scheme giving a whole page to a cpu, not a cacheline? That's going to cause ll/sc conflicts where real hardware wouldn't. r~