Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 65BC97810E7 for <~alpine/devel@lists.alpinelinux.org>; Tue, 21 Jun 2022 07:17:44 +0000 (UTC) Received: by mail-lf1-f41.google.com with SMTP id y32so20845184lfa.6 for <~alpine/devel@lists.alpinelinux.org>; Tue, 21 Jun 2022 00:17:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=nejk1n1XxR81kf822dw30kqcCJ6rYS6zWc87GTiFEiM=; b=Tzm9Tq7sL4913nn7BxiFLOqIbhjEwELOVtPicFC40mJ6bddLapyQHpBTjfCBRLUpS6 H39D0w3dd9Q2F54cDExoWcbiFfigbJs33e1TindMjV7L9C2Djjwsyniwmey3jlEWHztE 0xZfhvImGAal7+wAIq9JdaHvYA+Wk4wsXvhHg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=nejk1n1XxR81kf822dw30kqcCJ6rYS6zWc87GTiFEiM=; b=jPdgFTF7DZqBtKOQ1jkt3HguGtmyQwm/IZWRojWmRl8hYmM643ZPkq5AD+4Dz83sgf k/n3tYNMw/h6stzjAoiANkJScrWDdZp3jM0oJdCZTN/4RAZlfm1xiDclXpbBA04/EUhH x7IyMdfhJCRuUPDMWEhuWNWjCjsWqJUIblq8AUHVmQ3n7q9WrfCVSoXPxUS1Pv6chYJ+ x/M/KoJUAnSMACAmbDes1nrQh5bBuJVKAh4p89wiXcTbmMTojwUMGrWgr32xmTHhd/ja aSrEZDZOq3PTOVvtNMYjmopaJwqMc+SI9fWFhb0SG3BPKBMKI2yg1Uo8pkWkbPaPgYyN x7Vg== X-Gm-Message-State: AJIora8PXW18crM+OpvSrV8znfY/JcYYJq3RoBH9z3fkpgX0Dr9JsokT tMQpIBkkf7hmAz+POCLnQiEWqQpqWjsOv6aP+nWMzvI/3BZ8G9ddaLLYJIssVL3MVVTn+zoqRF8 q6lFhb0d2rZD8Pf2JBwHG5Jic6Cu/ti/an0M0cL9Aiu8yFt2L X-Google-Smtp-Source: AGRyM1uYJlkz/HJZnutny/AHg4mJQ6tJXSztLAPzd0VyNIHi4VXxxdj8uuikjbCGuaLrv7AAVZeoHqkH/JZARYgrwyE= X-Received: by 2002:a05:6512:3b98:b0:479:1313:35ab with SMTP id g24-20020a0565123b9800b00479131335abmr15721183lfv.399.1655795863076; Tue, 21 Jun 2022 00:17:43 -0700 (PDT) MIME-Version: 1.0 From: Tomas Kolda Date: Tue, 21 Jun 2022 09:17:32 +0200 Message-ID: Subject: Native Alpine GLibc support To: ~alpine/devel@lists.alpinelinux.org Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000004451ec05e1f00469" --0000000000004451ec05e1f00469 Content-Type: text/plain; charset="UTF-8" Hi, I know that this topic is very sensitive in Alpine, but please let me describe first what and why we would like to achieve. 1. We love to use Alpine for our containers. Alpine has very fresh versions packages, it is very easy to use, versatile, customizable and clean. Basically only superlatives. 2. Our applications are mostly Java. But many of our jars are JNIs and are compiled against glibc. 3. We were using Alpine with Glibc hacks like https://github.com/sgerrand/alpine-pkg-glibc It was working nice until we ran into a problem where some other library was trying to load other native library and it started crashing. 4. We have switched to native MUSL based everywhere (Java, libs, etc.). I was happy that it was possible, but I was surprised that the performance of our applications degraded a lot. Our application is heavily multithreaded. After long investigation I have found that degradation is because of poor implementation of pthread locks in muslc. Probably the advantage of glibc is the adaptive locking feature and maybe other types of tunings. In our example application spends with muslc build 600% CPU in kernel and 200% in user space, but on glibc 100% CPU in kernel and 700% in user space (where 100% means 1 CPU core). Yes it is that huge difference. At this point I had many options of what to do and one I would like to describe. - I started thinking that I would like to have a variant of Alpine with glibc. Everything else is the same and great as usual. - After the initial painful bootstrap to get bare minimum to be able to compile I got the first 300 packages built (enough for us) with only a few tweaks in some packages that are explicitly applying MUSL patches. I simply disabled these. - Now our application is running fast again with native builds and no tweaks. - I know glibc is maybe a little bit, but we simply need performance and compatibility. Example of change in procps. There is a tweak to make it work in MUSL so I simply conditionally disable it: if [ "$CLIBC" != "glibc" ]; then export LIBS="$LIBS -lintl" fi I would love to have the patches part of the main branch so I do not need to do merges from time to time. I can only dream that the Alpine community will provide the official build as well. I think that more people would like that when I look at a number of projects around hacking glibc in Alpine. Please do not take it as a heretical thought. It came as a need. What do you think about the project? I can share my changes in some branch or in github. I can also share initial 3.16 binaries to have an easier bootstrap. It was really a pain. Thank you very much for your project and the hard work you put into it. Tomas -- This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it. --0000000000004451ec05e1f00469 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 KGxJoYnxeCk1HWinO5mYfMP1j8LwmSIngvLnGXtGrsfzxWdNJcFr7NPCtroC6RmplmOXB26FSiYa EIYmsGXkyXI+Tky8uKfYWjIWpQDbX9QpATJVTFAtAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGHRvbWFzLmtvbGRhQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUrh6VOdy1EGjVCB9j+TtRRG0tHpMw DQYJKoZIhvcNAQELBQADggEBAJiCjWyNW+kzzAvJ0Miyw8EXLw23HWzCyaEK9XnTU5FJkU3suTdG OTUPL35OdBE4MdXBfOJFRLJyK9PZHw0AwK9AGv1P8vVV7+wQHOQpxUu4DtAuYSsQPECY/tbESu4X gXjgaIaVO86eQkv96W+UEIwdZGxkkA5YwPxZSyAgqQSZKUfqoOLZHIzWS/eW8arNGz3E/KSjwKFf gkprwKKSTjcYG2nZima3sYJDCUwdgxmriGNwN8PfoIXbfIY19+WHTmIvByYtCD3+b39kkd1KmiHJ NAUPezwI+si+SWLuQIYfBbk3f44Wy44UyOzTZ59ijlBoT7kWvKVq7dLD0XU28CsxggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgxu+P6XliEGkSXNi5YwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIH+dpvBAK717ibFf6IZA9oxb4uVQwagsD0hN 1y7sqygdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIyMDYyMTA3 MTc0M1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBrfa976cSU8G5ZyjYTjv8HAsAB0GCj7Xryu2rTro4oFeF1tIS+P6CI uPfhb4i9AHFPkECll3FpxsoT53jf4m3CL2Mkz0yNfaaXkgl5lryISk2/wdfhy/gQoJmzqghe8bbH XZCcNwcfLi3YMPGcYL13N5gHMEm3aFsS9UPU9ie+4XOXp8qDsJwAyqPFGqpS7S9XIMTWp8Gn2Ho/ ogU0jBkCfnD0fhj9ixP852pPIuzWNmEB5MOpIfcJ6QF4U+sls2gIJ6i1SEOxQhW4BbdhzCLT92hV iw290tjD+l2NGaiwg+Epmx3LCVc9f7RLeY7cq5ABlzja7vgIkAriuD56Deqr --0000000000004451ec05e1f00469--