From owner-svn-src-all@freebsd.org Mon Dec 3 16:14:28 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 31AB5132B72D; Mon, 3 Dec 2018 16:14:28 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-it1-x130.google.com (mail-it1-x130.google.com [IPv6:2607:f8b0:4864:20::130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 81C7988C5C; Mon, 3 Dec 2018 16:14:27 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: by mail-it1-x130.google.com with SMTP id a6so9348300itl.4; Mon, 03 Dec 2018 08:14:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UwqS8kO2n6X87l2VBwhwAbDxdRZK3L3BTrWGg0wxYfc=; b=c2Zi04vXl/w2w9xxq12TiyxD8qktaa+gOfwb/LrNVVCgztOCm+3SVaklhqyuF2Iw5o ZDw0QfL5AfsYpmnbW/9ufWLcQJN6Nojumi47vhAp9/S9klVv5IwgNZW/vNmYILdNxaPq h3Ni1L29XawrHy9+9+jEYWDffvR2vACgz8phWenJlKpCW55h0KWDzX1Ev/+0eskWBzuW Y6uM9wbsY/YbSLek5KFp47gb0u9sIh3h4RXX5YX1jFXZMtp32TNEVhYnKD8HYb0BItd4 tjFxIb0sRptMbpVjrBvuWTsIKZv0RKzVAa94ucvNkfddMrwR6uOuXgzVDUNZ3KsngaII CH0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=UwqS8kO2n6X87l2VBwhwAbDxdRZK3L3BTrWGg0wxYfc=; b=EBTQYcwFj+y2g6KB0PJjptQu55oTDyseqNLkZEv5lVcXHa6+iuwbwnHHb79Sr8UJ9S 8U59jguGXunjSXA7f1P5vnWE40gcjddqlabNYeTbGtkWY6aAhKA43EIBLwjMQeNQnUig 4+WtJHT3l4x3OeZzQ2rDACRczkpeb52/wIbeXAxRZAt9vFF7LriBrKdmHRk/24bgE/nh krrvzV19Iz+KMWsVB9hnVEcPaUidW5X77Uo3EmA+roitylg7jHBzkF0sqv71A4Iqg+H1 yKGTLG1j9pkzdInN0yHyJ+BXFtzE7bhy/YuBD4YGnWWdY1ZHpo6MxlwkLr+IdU1uj8hA E+4g== X-Gm-Message-State: AA+aEWZNt/E0hVXjOrp0NGyl8suoiLXKXBN5OhdmKFTMnaJZXDHvyKNm DYG9obp/lfC55bixhUXknuj7yxAE X-Google-Smtp-Source: AFSGD/X8qmN7lbD5YX0SEdmyysWYob4j7Z21a8PVphyh7OeZ3K2lRJqiWG+s3Tyr8IOIzulODhr+BQ== X-Received: by 2002:a24:80cc:: with SMTP id g195mr8035449itd.178.1543853666603; Mon, 03 Dec 2018 08:14:26 -0800 (PST) Received: from ralga.knownspace (173-25-245-129.client.mchsi.com. [173.25.245.129]) by smtp.gmail.com with ESMTPSA id k2sm3720848itk.35.2018.12.03.08.14.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Dec 2018 08:14:26 -0800 (PST) Sender: Justin Hibbits Date: Mon, 3 Dec 2018 10:14:19 -0600 From: Justin Hibbits To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r341177 - head/sys/powerpc/powerpc Message-ID: <20181203101403.08017039@ralga.knownspace> In-Reply-To: <20181129105622.GL2378@kib.kiev.ua> References: <201811290339.wAT3dBqf027972@repo.freebsd.org> <20181129105622.GL2378@kib.kiev.ua> X-Mailer: Claws Mail 3.17.1 (GTK+ 2.24.32; powerpc64-portbld-freebsd13.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 81C7988C5C X-Spamd-Result: default: False [-4.99 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[FreeBSD.org]; TO_DN_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MX_GOOD(-0.01)[cached: alt3.gmail-smtp-in.l.google.com]; RCVD_IN_DNSWL_NONE(0.00)[0.3.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.98)[-0.980,0]; IP_SCORE(-1.80)[ip: (-5.93), ipnet: 2607:f8b0::/32(-1.66), asn: 15169(-1.29), country: US(-0.09)]; FORGED_SENDER(0.30)[jhibbits@FreeBSD.org,chmeeedalf@gmail.com]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[jhibbits@FreeBSD.org,chmeeedalf@gmail.com] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2018 16:14:28 -0000 On Thu, 29 Nov 2018 12:56:22 +0200 Konstantin Belousov wrote: > On Thu, Nov 29, 2018 at 03:39:11AM +0000, Justin Hibbits wrote: > > Author: jhibbits > > Date: Thu Nov 29 03:39:11 2018 > > New Revision: 341177 > > URL: https://svnweb.freebsd.org/changeset/base/341177 > > > > Log: > > Fix thread creation in PowerPC64 ELFv2 processes. > > > > Summary: > > Currently, the upcall used to create threads assumes ELFv1. > > > > Instead, we should check which sysentvec is in use on the process > > and act accordingly. > > > > This makes ELFv2 threaded processes work. > > > > Submitted by: git_bdragon.rtk0.net > > Differential Revision: https://reviews.freebsd.org/D18330 > > > > Modified: > > head/sys/powerpc/powerpc/exec_machdep.c > > > > Modified: head/sys/powerpc/powerpc/exec_machdep.c > > ============================================================================== > > --- head/sys/powerpc/powerpc/exec_machdep.c Thu Nov 29 > > 02:52:08 2018 (r341176) +++ > > head/sys/powerpc/powerpc/exec_machdep.c Thu Nov 29 03:39:11 > > 2018 (r341177) @@ -124,6 +124,10 @@ static int > > grab_mcontext32(struct thread *td, mcontext static int > > grab_mcontext(struct thread *, mcontext_t *, int); > > +#ifdef __powerpc64__ > > +extern struct sysentvec elf64_freebsd_sysvec_v2; > > +#endif > > + > > void > > sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) > > { > > @@ -1014,11 +1018,18 @@ cpu_set_upcall(struct thread *td, void > > (*entry)(void * #endif > > } else { > > #ifdef __powerpc64__ > > - register_t entry_desc[3]; > > - (void)copyin((void *)entry, entry_desc, > > sizeof(entry_desc)); > > - tf->srr0 = entry_desc[0]; > > - tf->fixreg[2] = entry_desc[1]; > > - tf->fixreg[11] = entry_desc[2]; > > + if (td->td_proc->p_sysent == > > &elf64_freebsd_sysvec_v2) { > I recommend you to not do this, instead add a new sv_flag to indicate > ELFv2 for PPC. We already have almost machine-specific flags like > ia32. Hi Kib, Thanks for the tip. I'll look closer at how you do it over on the x86 side. I'm not sure why the separate sysvec for ELFv2, so I'll need to check. - Justin