Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2433289pxa; Mon, 24 Aug 2020 14:11:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIgJDGo+3Vxp74/9ZX8YSUy+E+LQ29EN1kskLYHIuOh9CwVzNxN1BTjoOEu5AHiEPfTr6h X-Received: by 2002:a50:f403:: with SMTP id r3mr6186213edm.260.1598303484578; Mon, 24 Aug 2020 14:11:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598303484; cv=none; d=google.com; s=arc-20160816; b=Znvp8uoYb5yJWYotaZDSfYnlZ+3vduQWfpdx1u7sTydvAGxsDCzQErnoi+z+i/mQdx 8Fn3ERF0G3ycDdoSendtDCnnP0cZArztm1fBeBuxs+uXn5qoTQEta2pH7zcLMDznoain 8XYnpvTviEDSeLXqIsuJqmzhE9k0uI/wjP2FTrwYobAUzKsmF5yjXPCCJt5+OZtSBW/8 /j8Ei3pPHebi4EqygUh7ujg3MZSsHCZZR6sgN7Rv/l+/i/Cy8LUcLpipaM0ocEHLzOqS 0hdzGMuQRMVWsTl0jj7lcZwcG0CVqKenJfRSH33t+xYV9zuFbXRR0e3cDCsVWolwb3s3 orpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=b+iTlV4khAeSnNkrYWDltD8Uy3YAJwyRMXjJv/hiPYg=; b=rzQTjPvugx04DB7+dWePn1csiWBt9G1/OGvb9FG0F/hfg4UxogreYMsV03UMqnHl7q AZn8RELLQEXDSER1dtcE3uTFfCevbmUpR1o3Xhv2HgLWV9iYkZ2/frg8pukDlcR00CK5 I5ag8PI9GTMa/+1MtXDnevHGXF0Q4n6pn9fJ90dr7jVPttbKpSmLup1Pxj5sF7u5hl+Y s4nRz0MpxUvYn+KT6JBUxNJGtcppzwU/h1Pv4QvJjHJnl6qdP0rCCJ1W3HyWVc5d6JNk leyY+7kcJX8xAVKRjDbllFRhV6HPCQ/voxaFE+Hgzun4U6JNwOiPpEK0Tzpqv+ubAFYh SQEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=yhEtqZ2K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qo16si7213051ejb.89.2020.08.24.14.11.00; Mon, 24 Aug 2020 14:11:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=yhEtqZ2K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726541AbgHXVK1 (ORCPT + 99 others); Mon, 24 Aug 2020 17:10:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:42362 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726138AbgHXVK0 (ORCPT ); Mon, 24 Aug 2020 17:10:26 -0400 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DE4B42067C for ; Mon, 24 Aug 2020 21:10:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598303426; bh=b+iTlV4khAeSnNkrYWDltD8Uy3YAJwyRMXjJv/hiPYg=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=yhEtqZ2KhMRVW0ugCZ7+yBbW7Rru6i8YBIawZxecusPj3pn8Z/cSpLq9hkV5Lr6SF ksTcfY4lsUKzlLGjwO82EWogdV0xfR/xwpOGxQljOuFFDbK8z8iukLiw6nP2D/fs/I reOY7S8NxKdqKAlIbHX9oN1s1fIY7cOHBWYmJA1Q= Received: by mail-wr1-f46.google.com with SMTP id l2so10534157wrc.7 for ; Mon, 24 Aug 2020 14:10:25 -0700 (PDT) X-Gm-Message-State: AOAM5323gX8yfZhqmQwZHGt20UvaExLRwN5uQTAlkCLxGyvEOoIQBjjf 9Bd7iPwSNa6UVl+Jgax1CgLOa8on5l/04HWIRIPW7Q== X-Received: by 2002:a05:6000:10c6:: with SMTP id b6mr7336388wrx.257.1598303424431; Mon, 24 Aug 2020 14:10:24 -0700 (PDT) MIME-Version: 1.0 References: <7DF88F22-0310-40C9-9DA6-5EBCB4877933@amacapital.net> In-Reply-To: <7DF88F22-0310-40C9-9DA6-5EBCB4877933@amacapital.net> From: Andy Lutomirski Date: Mon, 24 Aug 2020 14:10:12 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [REGRESSION] x86/cpu fsgsbase breaks TLS in 32 bit rr tracees on a 64 bit system To: "Robert O'Callahan" Cc: "Bae, Chang Seok" , Kyle Huey , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Andi Kleen , "Shankar, Ravi V" , LKML , "Hansen, Dave" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Aug 22, 2020 at 6:19 AM Andy Lutomirski wrote: > > We can give you a new ptrace operation to load the selector and deduce the base from the descriptor table if it would help. Concretely, we could add one of these: PTRACE_READ_SEGMENT_DESCRIPTOR to read a segment descriptor. PTRACE_SET_FS / PTRACE_SET_GS: Sets FS or GS and updates the base accordingly. PTRACE_READ_SEGMENT_BASE: pass in a segment selector, get a base out. You would use this to populate the base fields. or perhaps a ptrace SETREGS variant that tries to preserve the old base semantics and magically sets the bases to match the selectors if the selectors are nonzero. Do any of these choices sound preferable to any of you? --Andhy