From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com [IPv6:2607:f8b0:4864:20::1130]) by sourceware.org (Postfix) with ESMTPS id B3E663858D33; Fri, 8 Mar 2024 20:09:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B3E663858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B3E663858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709928592; cv=none; b=rZ5wVpnQzN4g1w4Hgp3ThztjDX0mNSW9UtVTvFENj01g1ZBCOjUNFvnDec6O7Rd4t2y9p3IhTYC4uPLagUFDf0P/hJYQiDHBE91NJLKm7DyI2eBwYVYiBHvgPKcCTgnNG8oMzaFMP1y+bLyVOY7el/U4xSd6d04u+g+ivf+VOHM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709928592; c=relaxed/simple; bh=Jp/NbSqdSNd9JQgkRInTyr3be3Cuufum/7iwxy3zc9U=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=eY4Hl5Ra2DkhexK2e6S9J4hTCZNosDElBHFtZ+0wb6DkuGvO9pi8arwtkBU+bijSWsMRaQA6BNKzqDdmdrT6nptgjXGSnfb6QSa/r+3MftLWAJp7N4XPeZzceg8Ho8wcfFU/VSASDhXNEGgfQcGexMne5ak2mOHGnKLT0B9Exrs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-60a057b6601so8829957b3.2; Fri, 08 Mar 2024 12:09:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709928590; x=1710533390; darn=sourceware.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=KsA/hIpLYn+c5rJGEp++TYmOfFaHBdwyjbhv+Ck3f0w=; b=icZq2mJ44EZTyFl0kDj/+vH3TTu25gyrmWDQeBHT1oq0miUfb5+hPLSZAbvuckAJ6+ 4dMrXjK1A8BlW6hMb+abT+QnImchd1+r+K6OoPPIPPGGoWnXWbr0u2K6Zke90jZVP2lP ShbqwSr/ETxe53NYDh0rKei3hykyk1it626TFwijCXmkbwYvx1KbU8ffcUT6SOhpnFk7 mYYsCD04OUqkF8Qr0wjrppVLXYcbDSwwy8IpOmK+co3CoIkLCmXsfk4yFQ2NRYpdq8b6 BbnMWC+KaakdRTys5jYcfnXEZcl+DipNQPhzVKciLQgg2DvClnJ0NDvEfEzQvQM/ALjx 3Osg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709928590; x=1710533390; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KsA/hIpLYn+c5rJGEp++TYmOfFaHBdwyjbhv+Ck3f0w=; b=D1wEZFKby+7G/CwLI6y9hRE8d1o4aQ0kgFYLy45ryngb57U9V6EFU13ATn9w6q6p31 GPCdXy81WJAjqmJT71O5LzNrbctQgTJInqhGr2fW1vydCqywixy1o1mV220LvMKe610Q bnoPD4SWTxhWfNly1657JWvGQ0nZ+SiZ7eSjiKI6QpnjJwEaGlIrmdN+tCeWXCebzAU8 tY0z6dKcHsTKnCRJ8/X8YCj0h1ntKl+1aHf9QKNeywueT0UeRuRW/Sd06ZQb9KR3kEof st1aCrPUozzs2cuB4pYr+Fbn0rGQMWbQqj+k+jOIgBUUZFi3bAfRgpazO9fksLUv5MrU N7yw== X-Forwarded-Encrypted: i=1; AJvYcCVs1WvhnwSaedGBmAxY06zz34Ey8vvuN1mreHNi/HFrJUb22oAzMzniB0iQPW1TKY5g5oQzUR4sw//2F5NapYLt/5E5Fx8EiUXn6w== X-Gm-Message-State: AOJu0YzumI9JOXDG4rJOE8luBUnrv3LyxUo9NusBA/bvDeYEuAHAnQlB +iRf6jX1KcSVHHIasl3tykwHtTKSXSm/bCW41Rrc3UNrnv0/y/aJejkIEtZT5LYXNC3m2RGU0oi oi6Sey5i+mB7WSNpYuXr1gtNwgQM= X-Google-Smtp-Source: AGHT+IG0UYsmtHKxyCKMiNaoVdJoaPe1aQl05Y7IWbzq+CKXaQ8CHJVnSR4B2RxQyKFMpeCMN1AOJSnzp96RiirGjMs= X-Received: by 2002:a81:69d5:0:b0:60a:124a:f794 with SMTP id e204-20020a8169d5000000b0060a124af794mr224940ywc.28.1709928589970; Fri, 08 Mar 2024 12:09:49 -0800 (PST) MIME-Version: 1.0 References: <20240216151711.2742988-1-hjl.tools@gmail.com> <20240216151711.2742988-2-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Fri, 8 Mar 2024 12:09:13 -0800 Message-ID: Subject: Re: [PATCH v8 1/2] x86-64: Save APX registers in ld.so trampoline To: Noah Goldstein Cc: GNU C Library , Florian Weimer , Adhemerval Zanella , Libc-stable Mailing List , Sunil K Pandey Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3020.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Sat, Feb 24, 2024 at 11:01=E2=80=AFAM Noah Goldstein wrote: > > On Fri, Feb 16, 2024 at 9:17=E2=80=AFAM H.J. Lu wro= te: > > > > Add APX registers to STATE_SAVE_MASK so that APX registers are saved in > > ld.so trampoline. This fixes BZ #31371. > > > > Also update STATE_SAVE_OFFSET and STATE_SAVE_MASK for i386 which will > > be used by i386 _dl_tlsdesc_dynamic. > > --- > > sysdeps/x86/sysdep.h | 52 +++++++++++++++++++++++++++++++++++++++----- > > 1 file changed, 46 insertions(+), 6 deletions(-) > > > > diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h > > index 85d0a8c943..837fd28734 100644 > > --- a/sysdeps/x86/sysdep.h > > +++ b/sysdeps/x86/sysdep.h > > @@ -21,14 +21,54 @@ > > > > #include > > > > +/* The extended state feature IDs in the state component bitmap. */ > > +#define X86_XSTATE_X87_ID 0 > > +#define X86_XSTATE_SSE_ID 1 > > +#define X86_XSTATE_AVX_ID 2 > > +#define X86_XSTATE_BNDREGS_ID 3 > > +#define X86_XSTATE_BNDCFG_ID 4 > > +#define X86_XSTATE_K_ID 5 > > +#define X86_XSTATE_ZMM_H_ID 6 > > +#define X86_XSTATE_ZMM_ID 7 > > +#define X86_XSTATE_PKRU_ID 9 > > +#define X86_XSTATE_TILECFG_ID 17 > > +#define X86_XSTATE_TILEDATA_ID 18 > > +#define X86_XSTATE_APX_F_ID 19 > > + > > +#ifdef __x86_64__ > > /* Offset for fxsave/xsave area used by _dl_runtime_resolve. Also nee= d > > space to preserve RCX, RDX, RSI, RDI, R8, R9 and RAX. It must be > > - aligned to 16 bytes for fxsave and 64 bytes for xsave. */ > > -#define STATE_SAVE_OFFSET (8 * 7 + 8) > > - > > -/* Save SSE, AVX, AVX512, mask and bound registers. */ > > -#define STATE_SAVE_MASK \ > > - ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 5) | (1 << 6) | (1 << 7)) > > + aligned to 16 bytes for fxsave and 64 bytes for xsave. > > + > > + NB: Is is non-zero because of the 128-byte red-zone. Some register= s > > + are saved on stack without adjusting stack pointer first. When we > > + update stack pointer to allocate more space, we need to take the > > + red-zone into account. */ > > +# define STATE_SAVE_OFFSET (8 * 7 + 8) > > + > > +/* Save SSE, AVX, AVX512, mask, bound and APX registers. Bound and AP= X > > + registers are mutually exclusive. */ > > +# define STATE_SAVE_MASK \ > > + ((1 << X86_XSTATE_SSE_ID) \ > > + | (1 << X86_XSTATE_AVX_ID) \ > > + | (1 << X86_XSTATE_BNDREGS_ID) \ > > + | (1 << X86_XSTATE_K_ID) \ > > + | (1 << X86_XSTATE_ZMM_H_ID) \ > > + | (1 << X86_XSTATE_ZMM_ID) \ > > + | (1 << X86_XSTATE_APX_F_ID)) > > +#else > > +/* Offset for fxsave/xsave area used by _dl_tlsdesc_dynamic. Since i3= 86 > > + doesn't have red-zone, use 0 here. */ > > +# define STATE_SAVE_OFFSET 0 > > + > > +/* Save SSE, AVX, AXV512, mask and bound registers. */ > > +# define STATE_SAVE_MASK \ > > + ((1 << X86_XSTATE_SSE_ID) \ > > + | (1 << X86_XSTATE_AVX_ID) \ > > + | (1 << X86_XSTATE_BNDREGS_ID) \ > > + | (1 << X86_XSTATE_K_ID) \ > > + | (1 << X86_XSTATE_ZMM_H_ID)) > > +#endif > > > > /* Constants for bits in __x86_string_control: */ > > > > -- > > 2.43.0 > > > > > LGTM. > Reviewed-by: Noah Goldstein OK to backport it to release branches? Thanks. --=20 H.J.