From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-3.2 required=3.0 tests=AWL,BAYES_00,BODY_8BITS, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id DDC5E1F463 for ; Mon, 25 Nov 2019 19:08:59 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=TJGsLJHD0e8TdMcu V3omUwXlHQ0oEBl2hKaa9ojUsmt16I6pndXMYIK0lOSwweBtSE2MvY+j+0z7UiT+ IMBPKZ6Fl0qYcsFokjxmfpvaTBA7OBYTa5bcpT9SiUNx1rFXb0wu+VxE/yXUqNKN hNMpNpWW0J2kI93EnKjnWyYgGQI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=9ViV5D4f08W/b3ZxLxRLmA 70P88=; b=vL4LmQYmADdTPKtnUHCbY77627BPH7kxTW4tnRkFCWKTJksIYh2ITj RfJ6o1/2za6TNxlKcbG7oglTjxrDp3PZ6rK02t+iKozB/pPk+LJ/SLEvr5khMMHE 9bODzDmI1UIMF9dCzAw7uQp+fkiJlpgTQGQ+UC1/pZc5Y01azmT14= Received: (qmail 123129 invoked by alias); 25 Nov 2019 19:08:57 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 123121 invoked by uid 89); 25 Nov 2019 19:08:57 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: us-smtp-1.mimecast.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574708934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=R5TKItPy9L1lSNrZXQxEmSR2Z8eHrkaruEfE/k2e9AA=; b=Oma/hfN8f+340cOilNjcl0cA/xX4nSJafZXvA+8UYTgkbnizJhX2rr3exwtRNQ8I8YU1it 473W2/uFjzuj0MuNyub+j2r7K7BWeFAYjgbO0T2GGqiRFGFAkkd6hj7LQZv5DIPvz3Y561 pzPdnCcLnI/PKfM/RHXguFgWdtK+/NM= Subject: Re: Ping x2 Re: [PATCH 1/2][RFC] #17645, fix slow DSO sorting behavior in dynamic loader To: cltang@codesourcery.com, GNU C Library References: <2dea2558-c711-eab5-3728-be4986b7aad5@mentor.com> <8588322f-6391-7d6a-6b2e-f2cc05419622@mentor.com> <55008c83-b935-c1b0-1166-2df97d1715b6@redhat.com> <65a2cd71-8ad5-9122-a8cc-a54e8fbe89b5@mentor.com> <1d9f8b04-3133-0e4f-c8a8-ff202db1339c@mentor.com> From: Carlos O'Donell Message-ID: Date: Mon, 25 Nov 2019 14:08:47 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 MIME-Version: 1.0 In-Reply-To: <1d9f8b04-3133-0e4f-c8a8-ff202db1339c@mentor.com> X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/25/19 4:19 AM, Chung-Lin Tang wrote: > Ping? Thanks. This is stuck behind one more patch I'm reviewing for the higher priority (to me) NODELETE rollback fixes. > On 2019/11/14 5:58 PM, Chung-Lin Tang wrote: >> On 2019/10/31 9:13 PM, Carlos O'Donell wrote: >>> On 10/8/19 2:22 AM, Chung-Lin Tang wrote: >>>> Ping again. >>> >>> I have these applied and I'm putting this through testing. >> >> Hi Carlos, >> Thanks for the testing, wonder how it went? >> >> Thanks, >> Chung-Lin >> >>>> On 2019/9/17 5:55 PM, Chung-Lin Tang wrote: >>>>> Ping? >>>>> >>>>> On 2019/7/21 1:50 AM, Chung-Lin Tang wrote: >>>>>> Hi, this patch is our attempt at resolving the slow shared object so= rting >>>>>> situation in #17645, #15310, and some effort at #15311.=C2=A0 I real= ize this is >>>>>> pretty unsuitable timing to be submitting a patch of such nature now= (probably >>>>>> way too late to be included into 2.30), but still sending now anyway= s as this >>>>>> will probably need quite some discussion before being approved. >>>>>> >>>>>> Prior attempts at solving this slow sorting behavior appeared to hav= e failed >>>>>> due to inadequate proposed testing, therefore cannot convince review= ers to >>>>>> touch what seems to be perceived as a sensitive and easy to break pa= rt of ld.so. >>>>>> >>>>>> Therefore the first part of this patch is not a change to the dynami= c loader >>>>>> code proper, but a testing framework for constructing DSO sorting te= sts. >>>>>> It consists of a new Python script 'dso-ordering-test.py' that serve= s to >>>>>> generate both testcase source files and the needed Makefile fragment= s from >>>>>> a short description string, for example: >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 a->b->c->d=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 // four objects linked one after another >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 a->[bc]->d;b->c=C2=A0=C2=A0=C2=A0=C2= =A0 // a depends on b and c, which both depend on d, >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 // b depends on c (b,c linked to object a in fixed order) >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 a->b->c;{+a;%a;-a}=C2=A0 // a, b, c s= erially dependent, main program uses >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 // dlopen/dlsym/dlclose on object a >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 a->b->c;{}!->[abc]=C2=A0 // a, b, c s= erially dependent; multiple tests generated >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 // to test all permutations of a, b, c ordering linked >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 // to main program >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0 (Above is just a short description of what = the script can do, more >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 documentation is in the script commen= ts.) >>>>>> >>>>>> and, a patch to glibc/elf/Makefile which uses this script to add a f= ew >>>>>> DSO sorting testcases.=C2=A0 The description string notation and out= put form of the >>>>>> generated testcases is short enough that both the test descriptions >>>>>> and expected outcomes can all directly be specified in the Makefile. >>>>>> >>>>>> In terms of the tests I added using this script, I am not completely= sure they are >>>>>> (together with existing tests) adequate to prove algorithmic integri= ty in face >>>>>> of any ld.so code changes, but the script should provide a solid too= l to further >>>>>> improve on coverage.=C2=A0 Also welcome suggestions if the current f= eatures are still >>>>>> lacking in expressing some case of shared object relations, or if th= e documentation >>>>>> still feels unclear. >>>>>> >>>>>> Thanks, >>>>>> Chung-Lin >>>>>> >>>>>> 2019-07-20=C2=A0 Chung-Lin Tang=C2=A0 >>>>>> >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [BZ #17645] >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [BZ #15311] >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [BZ #15310] >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * elf/Makefil= e (test_dso_ordering): New make function. >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (tst-dso-orde= ring[123456789]): Define new DSO sorting tests. >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (tst-bz15311)= : Testcase from #15311. >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * scripts/dso= -ordering-test.py: New script. >>> >>> >=20 --=20 Cheers, Carlos.