From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123948 invoked by alias); 25 Nov 2019 09:19:14 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 123930 invoked by uid 89); 25 Nov 2019 09:19:14 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.1 spammy=prove, relations, submitting, bc X-HELO: esa3.mentor.iphmx.com IronPort-SDR: a8HsnDiP5RenXR9EoYaJCBu1wy3tiYDeUfsYEE67J3EHj7IzOdk93tGErGsHKYuyZ+OvDZX1OB enyaS5DEsEPxfuEVmy6oZ7UFqY9tpYy3LRN7uSFGn2zFFxbhVZme0XVLVAgKKjrBoHpaJSWfoZ md6JkWMMetpqJFxYAGN2khlCv1eGpkxeCcpigDhWg5OcUDShflrZSJ9R6XWQ9afGvFvH5ikd0f jEoPxpI62R7iiDO3xcd6u7mOkKs4zFHJ55BUnuEHpMNB/AC8qmFZr8bzJt1Xi9smECUJJ4ucEt J/o= IronPort-SDR: HEJPj7+oQj+Puyc6un1b3PS9XlR8D5ffxGcbS2uicC2nYArT7CliyPHZWjQS2ZXWgZRGhZ9eXy FmhFYVbOsOeHtr9h5G5NFLacNySVZDh3N5yHm4nOiRKttvoufYI2U2rm9InpukxXocaqBmcro9 IOFX4wdK97gomJmsRe70WG5h9FneKSLH/hZTgOTI9m0SHiRskqS1A1Lb5fsNP7mCeXSDQukHH9 HvrJharUcENklxZAPOllwFM0WXEHJbutHJ8bF1whbB9vAOK1I+dCGDR7uebMxhdMFP3kD6mXTI Q+U= Reply-To: Subject: Re: Ping x2 Re: [PATCH 1/2][RFC] #17645, fix slow DSO sorting behavior in dynamic loader From: Chung-Lin Tang To: Carlos O'Donell , , 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> Message-ID: <1d9f8b04-3133-0e4f-c8a8-ff202db1339c@mentor.com> Date: Mon, 25 Nov 2019 09:19:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <65a2cd71-8ad5-9122-a8cc-a54e8fbe89b5@mentor.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Return-Path: chunglin_tang@mentor.com X-SW-Source: 2019-11/txt/msg00805.txt.bz2 Ping? 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 sorting >>>>> situation in #17645, #15310, and some effort at #15311.  I realize 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 anyways as this >>>>> will probably need quite some discussion before being approved. >>>>> >>>>> Prior attempts at solving this slow sorting behavior appeared to have failed >>>>> due to inadequate proposed testing, therefore cannot convince reviewers to >>>>> touch what seems to be perceived as a sensitive and easy to break part of ld.so. >>>>> >>>>> Therefore the first part of this patch is not a change to the dynamic loader >>>>> code proper, but a testing framework for constructing DSO sorting tests. >>>>> It consists of a new Python script 'dso-ordering-test.py' that serves to >>>>> generate both testcase source files and the needed Makefile fragments from >>>>> a short description string, for example: >>>>> >>>>>       a->b->c->d          // four objects linked one after another >>>>> >>>>>       a->[bc]->d;b->c     // a depends on b and c, which both depend on d, >>>>>                           // b depends on c (b,c linked to object a in fixed order) >>>>> >>>>>       a->b->c;{+a;%a;-a}  // a, b, c serially dependent, main program uses >>>>>                           // dlopen/dlsym/dlclose on object a >>>>> >>>>>       a->b->c;{}!->[abc]  // a, b, c serially dependent; multiple tests generated >>>>>                           // to test all permutations of a, b, c ordering linked >>>>>                           // to main program >>>>> >>>>>      (Above is just a short description of what the script can do, more >>>>>       documentation is in the script comments.) >>>>> >>>>> and, a patch to glibc/elf/Makefile which uses this script to add a few >>>>> DSO sorting testcases.  The description string notation and output 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 integrity in face >>>>> of any ld.so code changes, but the script should provide a solid tool to further >>>>> improve on coverage.  Also welcome suggestions if the current features are still >>>>> lacking in expressing some case of shared object relations, or if the documentation >>>>> still feels unclear. >>>>> >>>>> Thanks, >>>>> Chung-Lin >>>>> >>>>> 2019-07-20  Chung-Lin Tang  >>>>> >>>>>           [BZ #17645] >>>>>           [BZ #15311] >>>>>           [BZ #15310] >>>>>           * elf/Makefile (test_dso_ordering): New make function. >>>>>           (tst-dso-ordering[123456789]): Define new DSO sorting tests. >>>>>           (tst-bz15311): Testcase from #15311. >>>>>           * scripts/dso-ordering-test.py: New script. >> >>