Date: Wed, 12 Aug 2015 09:43:13 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r286657 - in head/sys: amd64/amd64 i386/i386 Message-ID: <201508120943.t7C9hDMj051748@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Wed Aug 12 09:43:12 2015 New Revision: 286657 URL: https://svnweb.freebsd.org/changeset/base/286657 Log: AP should load aps_ready with acquire semantic to see BSP updates to the SMP structures, synchronized with the load by release store in release_aps(). The change is formal, x86 strong memory model implicitely provided the guarantees. Discussed with: bde Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/amd64/amd64/mp_machdep.c head/sys/i386/i386/mp_machdep.c Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Wed Aug 12 08:41:48 2015 (r286656) +++ head/sys/amd64/amd64/mp_machdep.c Wed Aug 12 09:43:12 2015 (r286657) @@ -282,7 +282,7 @@ init_secondary(void) mp_naps++; /* Spin until the BSP releases the AP's. */ - while (!aps_ready) + while (atomic_load_acq_int(&aps_ready) == 0) ia32_pause(); init_secondary_tail(); Modified: head/sys/i386/i386/mp_machdep.c ============================================================================== --- head/sys/i386/i386/mp_machdep.c Wed Aug 12 08:41:48 2015 (r286656) +++ head/sys/i386/i386/mp_machdep.c Wed Aug 12 09:43:12 2015 (r286657) @@ -291,7 +291,7 @@ init_secondary(void) CHECK_WRITE(0x39, 6); /* Spin until the BSP releases the AP's. */ - while (!aps_ready) + while (atomic_load_acq_int(&aps_ready) == 0) ia32_pause(); /* BSP may have changed PTD while we were waiting */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508120943.t7C9hDMj051748>