From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752242AbeAZNpn (ORCPT ); Fri, 26 Jan 2018 08:45:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60310 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751412AbeAZNpm (ORCPT ); Fri, 26 Jan 2018 08:45:42 -0500 Date: Fri, 26 Jan 2018 15:45:33 +0200 From: "Michael S. Tsirkin" To: Jason Wang Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, John Fastabend , David Miller , virtualization@lists.linux-foundation.org Subject: Re: [PATCH net-next 12/12] tools/virtio: fix smp_mb on x86 Message-ID: <20180126154441-mutt-send-email-mst@kernel.org> References: <1516923320-16959-1-git-send-email-mst@redhat.com> <1516923320-16959-16-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 26, 2018 at 11:56:14AM +0800, Jason Wang wrote: > > > On 2018年01月26日 07:36, Michael S. Tsirkin wrote: > > Offset 128 overlaps the last word of the redzone. > > Use 132 which is always beyond that. > > > > Signed-off-by: Michael S. Tsirkin > > --- > > tools/virtio/ringtest/main.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/virtio/ringtest/main.h b/tools/virtio/ringtest/main.h > > index 593a328..301d59b 100644 > > --- a/tools/virtio/ringtest/main.h > > +++ b/tools/virtio/ringtest/main.h > > @@ -111,7 +111,7 @@ static inline void busy_wait(void) > > } > > #if defined(__x86_64__) || defined(__i386__) > > -#define smp_mb() asm volatile("lock; addl $0,-128(%%rsp)" ::: "memory", "cc") > > Just wonder did "rsp" work for __i386__ ? > > Thanks Oh you are right of course. Probably no one ever run this one on i386 :) I'll add a patch on top as this is not a new bug. > > +#define smp_mb() asm volatile("lock; addl $0,-132(%%rsp)" ::: "memory", "cc") > > #else > > /* > > * Not using __ATOMIC_SEQ_CST since gcc docs say they are only synchronized