Package: libc6; Maintainer for libc6 is GNU Libc Maintainers <debian-glibc@lists.debian.org>; Source for libc6 is src:glibc (PTS, buildd, popcon).
Reported by: Henrique de Moraes Holschuh <hmh@debian.org>
Date: Thu, 1 Oct 2015 03:21:01 UTC
Severity: grave
Tags: patch
Found in version glibc/2.19-4
Fixed in versions glibc/2.21-0experimental2, glibc/2.21-1, glibc/2.19-18+deb8u2
Done: Aurelien Jarno <aurel32@debian.org>
Bug is archived. No further changes may be made.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Thu, 01 Oct 2015 03:21:05 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
New Bug report received and forwarded. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Thu, 01 Oct 2015 03:21:05 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: libc6 Version: 2.19-4 Severity: grave Justification: causes non-serious data loss Intel Broadwell-H and Skylake-S/H have critical errata that causes HLE to be extremely dangerous to use on those processors, resulting in unpredictable behavior (i.e. process crashes when you are lucky, data corruption when you are not) when hardware lock-elision is enabled in glibc/libpthread. Broadwell errata BBD50 (desktop/mobile), BDW50 (server): An HLE (Hardware Lock Elision) transactional region begins with an instruction with the XACQUIRE prefix. Due to this erratum, reads from within the transactional region of the memory destination of that instruction may return the value that was in memory before the transactional region began According to the Intel errata list, a firmware fix is possible, but I have no idea whether it is done by toggling a boot-locked MSR that disables HLE, or through a microcode update. The MSR is more likely, but if it is a microcode update, it is going to be as much of a hazard as the Haswell one that disabled TSX+HLE. I recommend that we extend the HLE blacklist in glibc to also include CPU signature 0x40671. This will disable HLE on Xeon E3-1200v4, and 5th-generation Core i5/i7. These processors are supposed to already have TSX disabled (errata BBD51/BDW51). Skylake's latest public specification update still doesn't list any HLE errata, but it is not really recent. OTOH, there is a Gentoo user's report that Skylake is also unstable when HLE is enabled in glibc and that the crashes stop when glibc is compiled without lock elision. For that reason, it might be a good idea to also blacklist HLE on CPU signatures 0x506e1, 0x506e2 and 0x506e3, which would disable HLE on Skylake-S and Skylake-H (6th gen Core i5/i7). This won't cover the Skylake Xeon E3-1200v5, for which there are no reports of breakage (nor a public specification update I could find). References: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762195 https://bbs.archlinux.org/viewtopic.php?id=202545 In hindsight, it looks like we would have been better off by disabling lock elision entirely for Debian jessie when we fixed #762195. Something to consider when the time comes to fix this bug in stable through a stable update... -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Thu, 01 Oct 2015 10:51:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Thu, 01 Oct 2015 10:51:06 GMT) (full text, mbox, link).
Message #10 received at 800574@bugs.debian.org (full text, mbox, reply):
According to this thread in the kernel bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=103351 We have a fix for the HLE BDW50 errata confirmed for Broadwell-H, through updated microcode. Broadwell-H errata BDW50 fix: signature 0x40671, pf_mask 0x22, revision >= 0x12 Which would allow us to selectively blacklist only Broadwell with "outdated" microcode. I can (and will) make a major ruckus about this set of Broadwell and Skylake microcode updates when it becomes pratical to distribute them in Debian, but due to the non-free nature of Intel microcode updates, that will fix things for a small fraction of our users, so we blacklisting in glibc anyway. Same deal as Haswell :-( There is also a Skylake microcode update available (dated 2015-08-08), I can prepare an experimental intel-microcode package with all such updates if anyone would be so kind as to test it, so that we can get independent reports of the HLE situation in Skylake. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique de Moraes Holschuh <hmh@debian.org>
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Sun, 04 Oct 2015 18:39:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Sun, 04 Oct 2015 18:39:06 GMT) (full text, mbox, link).
Message #15 received at 800574@bugs.debian.org (full text, mbox, reply):
On Thu, 01 Oct 2015, Henrique de Moraes Holschuh wrote: > We have a fix for the HLE BDW50 errata confirmed for Broadwell-H, > through updated microcode. > > Broadwell-H errata BDW50 fix: > signature 0x40671, pf_mask 0x22, revision >= 0x12 > > Which would allow us to selectively blacklist only Broadwell with > "outdated" microcode. I can (and will) make a major ruckus about this ... > There is also a Skylake microcode update available (dated 2015-08-08), I Which has been confirmed to fix the HLE issue there, as well. Further datapoints: other than the E7-v3 Xeons, it looks like HLE is critically broken on anything running microcode older than 2015-04. We can probably depend on Broadwell-DE (Xeon D-1500) motherboards to ship with new-enough microcode. My search was not completely exhaustive and I don't have priviledged access to any Intel documentation, so I might have missed a processor family or two, etc. Still, I could not find *anything* supposed to support TSX/HLE that didn't have either the old Haswell "TSX may cause unpredictable system behavior" erratum, or the newer errata "TSX not available" and "reading the memory destination of an instruction that begins an HLE transaction may return the original value" listed. Skylake's spec update doesn't list them yet as of 2015-10-04, but we *know* it has either the same or very similar errata, and that it got fixed by a recent microcode update. So, for non-free and Ubuntu, microcode updates through the intel-microcode package are likely to be a viable way to fix this: it all depends on the required microcode updates being made available in the first place. But non-free is not Debian, people rarely update their firmware unless you push hard for it, and it takes at least six months for fixed microcode to be reasonably available through firmware updates. Just ignoring the issue (read: passively documenting it), while still an option, should be left as the least desireable choice IMO. Unfortunately, blacklisting HLE by microcode revision would require parsing /proc/cpuinfo ATM, which is not really desireable for the HLE blacklist code, to put it lightly. So, it looks like any blacklisting done in the library code will have to be all-or-nothing: fixing the processor by a microcode update will not lift the blacklist. Also, processors that share the same CPU signature have to blacklisted as a group, even if they take different microcode (which would also be a problem for microcode-revision-based whitelists: we *might* need to know the processor's microcode platform flags in some cases). I recommend that, for Debian stable (jessie), we switch to a whitelist-based approach for HLE support, currently only whitelisting the latest stepping of Haswell-EX (Xeon E7-v3) and Broadwell-DE (Xeon D-1500). We can revisit that decision in six months or one year, and possibly switch back to blacklisting instead of whitelisting. Only processors that are known to never have been widely deployed with HLE errata would be eligible to be whitelisted. This means at least Broadwell, Broadwell-H, and Skylake-H/S would never get HLE support reenabled in Debian jessie, which includes several Xeon processors. Obviously, if we ever find a way to make the blacklist microcode-revision aware, we can do better. For unstable, we could adopt the same whitelisting approach in the short term (three to six months), while we work on something more flexible that would allow processors that got a later-than-launch errata fix to get delisted from the HLE "whitelist-based blacklist". One should keep in mind that, if we add such blacklisting, we also need to decide how we will deal with removals from the blacklist in the future due to fixed microcode being made available: should we lift the blacklisting for a processor signature, it will regress systems still missing the microcode update (fixable by installing non-free intel-microcode and rebooting before upgrading glibc). It is possible to add preinst logic to abort glibc install/upgrades for the "we are removing this processor signature from the blackist, and /proc/cpuinfo lists a microcode revision known to be broken" case. This takes care of regressions (in a rather user-unfriendly way, though) should we decide that users ought to either install firmware updates, or tolerate installing non-free intel-microcode. Something would need to be done for the Debian installer as well (to address new installs). I really wish we had without-HLE and with-HLE variants of glibc for x86-64, with non-HLE being the preferred/default choice for now (the preferred choice being something to revisit in the future, as working HLE becomes more widespread). Then, we could have as-complex-as-required blacklisting logic in the preinst of the HLE variant, which could be easily be made microcode-revision aware, etc. It would be really user-unfriendly when tripped (refuse the install / abort the upgrade), but at least it would be safer. Comments? -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Wed, 07 Oct 2015 10:39:09 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Wed, 07 Oct 2015 10:39:09 GMT) (full text, mbox, link).
Message #20 received at 800574@bugs.debian.org (full text, mbox, reply):
Well, I've finally finished analysing things for Broadwell. The amd64 (x86-64) glibc lock elision code keys on the RTM CPUID bit because it is actually using RTM (and not HLE) to implement lock elision. I failed to keep this in mind when worrying about permanently blacklisting Broadwell processors from glibc lock elision in unstable. Errata BDM53/BDW51/BDD51/BDE42 "Intel TSX Instructions not avalilable" _should_ mean that trying to use any of the TSX-NI opcodes (i.e. RTM) in Broadwell would always result in an illegal opcode exception (SIGILL). The specificaton updates also explicitly say in the descriptions of these errata that the RTM bit in CPUID is not set. Were those errata present on every microcode revision/core versions of those processors, it would make them "safe" as far as our (patched) glibc lock elision is concerned. We are not that lucky. Seaching the network for cpuinfo reports resulted in a /proc/cpuinfo dump of signature 0x306d4, microcode rev 0x11 (Core i5-5300U), and rev 0x18 (Core M-5Y71), where both RTM and HLE are reported as enabled. Another /proc/cpuinfo dump of signature 0x306d4, with microcode rev 0x18 (Core i5-5300U and also Core M-5Y10c) and rev 0x1f (Core i5-5287U), shows both HLE and RTM already disabled. The fact that revision 0x18 had a different CPUID response for (Core i5-5300U, Core M-5Y10c), and Core M-5Y71 was a surprise. Perhaps it also has a dependency on the firmware doing a (hopefully boot-locked) wrmsr to disable TSX. Anyway, regardless of the reason, one cannot count on the RTM and HLE bits being disabled in CPUID(7) on every Broadwell processor and microcode revision out there. OTOH, it does means we can, and should, blacklist signature 0x306d4 (and earlier) permanently, because RTM is extremely unlikely to be fixed/fixable on these processors. Either it is disabled as it should be per the errata documentation, or enabled and very dangerous (resulting in either SIGILL or Haswell-style risk of unpredictable system behavior). Since signature 0x40671 also has the same "TSX unavailable" type of errata (BDD51, BDE42), I guess we can assume the same applies to Broadwell-H and Broadwell-DE, and blacklist lock elision there permanently as well. I am still collecting data for Skylake-S, but it boils down to whether up-to-date Skylake-S microcode (revisions 0x34 and higher) fixes, or disable TSX. We know that microcode update does stop glibc lock elision crashing with SIGSEGV, though. Meanwhile, a suggestion by Samuel Thibault to try to use hwcap did provide for a possible long-term plan to fine-tune the lock-elision blacklist (and anything else of that sort). We would have to (finally) extend x86-64 hwcap to cpuid(1) fully, and also at least cpuid(7), which is anything but trivial and a lot of work. This is _not_ worth the trouble if it is done just for lock elision blacklisting purposes. However, it would be useful for link-time optimization in libraries (e.g. avx2 flavours of something that really benefits from it, etc), so it is likely worth pursuing... but only if we get buy-in from upstream. Once it is there for far better purposes than blacklisting, there is no reason not to do the trivial work to have the kernel blacklist whatever capabilities should be avoided, and switch glibc to use the hwcap extension instead of doing cpuid directly wherever available, thus making it usable _also_ for blacklisting things. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique de Moraes Holschuh <hmh@debian.org>
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Fri, 09 Oct 2015 01:24:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Fri, 09 Oct 2015 01:24:03 GMT) (full text, mbox, link).
Message #25 received at 800574@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
tag 800574 + patch thanks Attached updated version of amd64/local-blacklist-on-TSX-Haswell.diff. I believe it should be renamed to "amd64/local-blacklist-for-Intel-TSX.diff" as it is not just about Intel Haswell anymore. The updated patch has been package-compile-tested on glibc 2.19-22. This new version of the blacklist patch had the patch header text and blacklist code comments updated. It doesn't change anything for Haswell. It adds to the blacklist the current Broadwell CPU models and steppings. Broadwell-H with a very recent microcode update (rev 0x12, from 2015-06-04) was confirmed to have broken TSX-NI (RTM) and to _leave it enabled_ in CPUID, causing glibc with lock elision enabled to SIGSEGV. An even more recent Broadwell-H microcode update, rev 0x13 from 2015-08-03, is confirmed to (finally) disable the HLE and RTM CPUID bits. This should make blacklisting signature 0x40671 uncontroversial. Refer to https://bugzilla.kernel.org/show_bug.cgi?id=103351 for details. This version of the blacklist patch leaves upcoming Broadwell-E unblacklisted. It also leaves Skylake unblacklisted, as I have not been able to confirm whether the newest Skylake-S microcode updates have working Intel TSX-NI, or have it disabled. I propose that the updated blacklist patch be added to glibc in unstable, and after it spends a few weeks in testing, that it should also be the added to stable through a stable update. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique de Moraes Holschuh <hmh@debian.org>
[local-blacklist-for-Intel-TSX.diff (text/x-diff, attachment)]
Added tag(s) patch.
Request was from Henrique de Moraes Holschuh <hmh@debian.org>
to control@bugs.debian.org.
(Fri, 09 Oct 2015 01:24:08 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Sun, 18 Oct 2015 20:00:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Aurelien Jarno <aurelien@aurel32.net>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Sun, 18 Oct 2015 20:00:04 GMT) (full text, mbox, link).
Message #32 received at 800574@bugs.debian.org (full text, mbox, reply):
On 2015-10-08 22:20, Henrique de Moraes Holschuh wrote: > tag 800574 + patch > thanks > > Attached updated version of amd64/local-blacklist-on-TSX-Haswell.diff. > I believe it should be renamed to > "amd64/local-blacklist-for-Intel-TSX.diff" as it is not just about Intel > Haswell anymore. > > The updated patch has been package-compile-tested on glibc 2.19-22. > > This new version of the blacklist patch had the patch header text and > blacklist code comments updated. It doesn't change anything for > Haswell. It adds to the blacklist the current Broadwell CPU models and > steppings. > > Broadwell-H with a very recent microcode update (rev 0x12, from > 2015-06-04) was confirmed to have broken TSX-NI (RTM) and to _leave it > enabled_ in CPUID, causing glibc with lock elision enabled to SIGSEGV. > An even more recent Broadwell-H microcode update, rev 0x13 from > 2015-08-03, is confirmed to (finally) disable the HLE and RTM CPUID > bits. This should make blacklisting signature 0x40671 uncontroversial. > > Refer to https://bugzilla.kernel.org/show_bug.cgi?id=103351 for details. > > This version of the blacklist patch leaves upcoming Broadwell-E > unblacklisted. It also leaves Skylake unblacklisted, as I have not been > able to confirm whether the newest Skylake-S microcode updates have > working Intel TSX-NI, or have it disabled. > > I propose that the updated blacklist patch be added to glibc in > unstable, and after it spends a few weeks in testing, that it should > also be the added to stable through a stable update. Thanks for the patch, I have committed it to the jessie and the 2.21 branches. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Sun, 18 Oct 2015 20:18:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Aurelien Jarno <aurelien@aurel32.net>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Sun, 18 Oct 2015 20:18:03 GMT) (full text, mbox, link).
Message #37 received at 800574@bugs.debian.org (full text, mbox, reply):
On 2015-10-07 07:32, Henrique de Moraes Holschuh wrote: > Meanwhile, a suggestion by Samuel Thibault to try to use hwcap did > provide for a possible long-term plan to fine-tune the lock-elision > blacklist (and anything else of that sort). > > We would have to (finally) extend x86-64 hwcap to cpuid(1) fully, and > also at least cpuid(7), which is anything but trivial and a lot of work. > This is _not_ worth the trouble if it is done just for lock elision > blacklisting purposes. > > However, it would be useful for link-time optimization in libraries > (e.g. avx2 flavours of something that really benefits from it, etc), so > it is likely worth pursuing... but only if we get buy-in from upstream. Why do you believe that hwcap is better for handling that than the current STT_GNU_IFUNC mechanism? For me hwcap is clearly superseded by the STT_GNU_IFUNC: 1) With the hwcap mechanism the libraries need to be recompiled multiple times, increasing build time, but also the disk space on the users computer. 2) It makes the upgrades more complex (see the nohwcap part of the libc preinst/postinst). 3) We need to ensure the ABI is the same for all versions of the same library (this is not the case for upstream glibc between i586 and i686). 4) The fact that the CPU supports a feature doesn't mean it supports it with good performances. For instance Intel Silvermont supports SSE4.2, but SSE2/SSSE3 based version of string functions are much faster there. 5) Finally it means that we need to provide a version of the libc for all combinations. Think on i386, we would need to provide: - libc6 - libc6-i686 - libc6-i686-tsx - libc6-xen - libc6-xen-tsx -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Sun, 18 Oct 2015 23:09:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Sun, 18 Oct 2015 23:09:04 GMT) (full text, mbox, link).
Message #42 received at 800574@bugs.debian.org (full text, mbox, reply):
On Sun, 18 Oct 2015, Aurelien Jarno wrote: > > Broadwell-H with a very recent microcode update (rev 0x12, from > > 2015-06-04) was confirmed to have broken TSX-NI (RTM) and to _leave it > > enabled_ in CPUID, causing glibc with lock elision enabled to SIGSEGV. > > An even more recent Broadwell-H microcode update, rev 0x13 from > > 2015-08-03, is confirmed to (finally) disable the HLE and RTM CPUID > > bits. This should make blacklisting signature 0x40671 uncontroversial. FWIW, in the last few days it became clear that so far, the mobile Broadwell-H disables Intel TSX, but no instances of the desktop Broadwell-H with RTM disabled were found yet, not even with the latest microcode. And they all use the same microcode. It has also became clear a few days ago that it is very likely that the BIOS can disable Intel TSX-NI (RTM) and HLE, and it doesn't need very recent microcode to do that either. If this is true, it should be something like MSR 0x13c (bit 1 of that MSR disables AES-NI when set, and bit 0 locks that MSR against writting when set). Maybe the Intel TSX-NI (HLE and RTM) disable switches are even on this very same MSR... I've also since became aware of Debian bug #750792, and it describes the same SIGSEGV observed by Broadwell and Skylake Arch-linux users on lock-elision-enabled glibc. From that bug report, it is clear that the SIGSEGVs in __lll_unlock_elision can easily happen due to software bugs, so it need not be linked to any Intel-TSX processor errata. And this kind of defect is quite common, apparently. However, since Intel's current public specification update states (as errata) that Intel TSX-NI is not supposed to be usable in the Broadwell and Broadwell-H cores, that it should not even be reported in CPUID by these processors (but it is :p), and that this is not supposed to be fixable or worked around, I still think we need to blacklist it. I will keep tracking this issue, and report back any relevant information that becomes available. It would be _really_ nice if the Intel team that works with Canonical were to shed a light on this, though. > Thanks for the patch, I have committed it to the jessie and the 2.21 > branches. Thank you. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Mon, 19 Oct 2015 00:18:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Mon, 19 Oct 2015 00:18:04 GMT) (full text, mbox, link).
Message #47 received at 800574@bugs.debian.org (full text, mbox, reply):
On Sun, 18 Oct 2015, Aurelien Jarno wrote: > On 2015-10-07 07:32, Henrique de Moraes Holschuh wrote: > > Meanwhile, a suggestion by Samuel Thibault to try to use hwcap did > > provide for a possible long-term plan to fine-tune the lock-elision > > blacklist (and anything else of that sort). > > > > We would have to (finally) extend x86-64 hwcap to cpuid(1) fully, and > > also at least cpuid(7), which is anything but trivial and a lot of work. > > This is _not_ worth the trouble if it is done just for lock elision > > blacklisting purposes. > > > > However, it would be useful for link-time optimization in libraries > > (e.g. avx2 flavours of something that really benefits from it, etc), so > > it is likely worth pursuing... but only if we get buy-in from upstream. > > Why do you believe that hwcap is better for handling that than the > current STT_GNU_IFUNC mechanism? I was not aware of STT_GNU_IFUNC. I will look into it. > 5) Finally it means that we need to provide a version of the libc for > all combinations. Think on i386, we would need to provide: > - libc6 > - libc6-i686 > - libc6-i686-tsx > - libc6-xen > - libc6-xen-tsx No. We need nothing of the sort for Intel TSX. TSX-NI is something already detected at runtime by glibc using the cpuid instruction, there is no need to use the dynamic loader's hwcap object selection for this. What I proposed was to extend the kernel-supplied hwcap area for x86-64 (and x32, I suppose) to export the full flags information returned by CPUID.EAX=1, and also by CPUID.EAX=7 to all processes... and use _that_ instead of a direct call to the cpuid instruction to detect Intel TSX (and anything else based on cpuid(1) and cpuid(7) in glibc). We could do it for 32-bit too, I suppose. But if hardware-assisted lock elision is important enough to justify that kind of work for i686, that just means we should deploy x32 instead, as far as I'm concerned. Then, change glibc to use this extended hwcap information to detect such runtime-selected features instead of calling the cpuid instruction directly on the processor. On an older kernel without the extended hwcap fields, either call cpuid directly, or disable them. However, for stuff like AVX512, you might want to have the *entire* library compiled with a much more advanced instruction set (based on the fact that AVX512 being available also implies that very fast SSE4.2 is available, for example). It would be possible to use the dynamic linker's hwcap support to do that, if one wanted to. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
Reply sent
to Aurelien Jarno <aurel32@debian.org>:
You have taken responsibility.
(Mon, 19 Oct 2015 05:30:42 GMT) (full text, mbox, link).
Notification sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Bug acknowledged by developer.
(Mon, 19 Oct 2015 05:30:42 GMT) (full text, mbox, link).
Message #52 received at 800574-close@bugs.debian.org (full text, mbox, reply):
Source: glibc
Source-Version: 2.21-0experimental2
We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 800574@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Mon, 19 Oct 2015 00:20:34 +0200
Source: glibc
Binary: libc-bin libc-dev-bin libc-l10n glibc-doc glibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mips32 libc6-dev-mips32 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-i686 libc6-xen libc0.1-i686 libc0.3-i686 libc0.3-xen libc6.1-alphaev67 libnss-dns-udeb libnss-files-udeb
Architecture: source
Version: 2.21-0experimental2
Distribution: experimental
Urgency: medium
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
glibc-doc - GNU C Library: Documentation
glibc-source - GNU C Library: sources
libc-bin - GNU C Library: Binaries
libc-dev-bin - GNU C Library: Development binaries
libc-l10n - GNU C Library: localization files
libc0.1 - GNU C Library: Shared libraries
libc0.1-dbg - GNU C Library: detached debugging symbols
libc0.1-dev - GNU C Library: Development Libraries and Header Files
libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.1-pic - GNU C Library: PIC archive library
libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3 - GNU C Library: Shared libraries
libc0.3-dbg - GNU C Library: detached debugging symbols
libc0.3-dev - GNU C Library: Development Libraries and Header Files
libc0.3-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.3-pic - GNU C Library: PIC archive library
libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3-xen - GNU C Library: Shared libraries [Xen version]
libc6 - GNU C Library: Shared libraries
libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
libc6-dbg - GNU C Library: detached debugging symbols
libc6-dev - GNU C Library: Development Libraries and Header Files
libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64
libc6-dev-mips32 - GNU C Library: o32 Development Libraries for MIPS
libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
libc6-dev-s390 - GNU C Library: 32bit Development Libraries for IBM zSeries
libc6-dev-sparc - GNU C Library: 32bit Development Libraries for SPARC
libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
libc6-dev-x32 - GNU C Library: X32 ABI Development Libraries for AMD64
libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64
libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
libc6-mips32 - GNU C Library: o32 Shared libraries for MIPS
libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
libc6-pic - GNU C Library: PIC archive library
libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
libc6-s390 - GNU C Library: 32bit Shared libraries for IBM zSeries
libc6-sparc - GNU C Library: 32bit Shared libraries for SPARC
libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc6-x32 - GNU C Library: X32 ABI Shared libraries for AMD64
libc6-xen - GNU C Library: Shared libraries [Xen version]
libc6.1 - GNU C Library: Shared libraries
libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
libc6.1-dbg - GNU C Library: detached debugging symbols
libc6.1-dev - GNU C Library: Development Libraries and Header Files
libc6.1-pic - GNU C Library: PIC archive library
libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
locales - GNU C Library: National Language (locale) data [support]
locales-all - GNU C Library: Precompiled locale data
multiarch-support - Transitional package to ensure multiarch compatibility
nscd - GNU C Library: Name Service Cache Daemon
Closes: 672774 764692 785796 788799 797538 797831 798064 798316 799418 800574 800846 801691 802256
Changes:
glibc (2.21-0experimental2) experimental; urgency=medium
.
[ Samuel Thibault ]
* Symbol versions which contain _DEBIAN_ are unexpected by upstream scripts.
Add hurd-i386-only patches/hurd-i386/local-versions-hack.diff to work
around the issue. Also take the opportunity of the upstream version bump
to bump the versions to GLIBC_2_21, which will allow one to remove the
_DEBIAN_ hacks once packages are rebuilt.
* patches/hurd-i386/unsubmitted-libpthread-semaphore.h.diff: Remove
libpthread/sysdeps/i386/bits/semaphore.h, now that hurd Implies
libpthread/sysdeps/generic. Move libpthread/include/semaphore.h into
libpthread/sysdeps/pthread/semaphore.h instead of the latter just
including the former, since the latter is what gets installed.
* patches/hurd-i386/cvs-cache-mach_host_self.diff: New patch to avoid port
count issue on the host port.
* patches/hurd-i386/unsubmitted-gnumach.defs.diff: Also build
task_notify.defs stubs. Drop unneeded change.
* libc0.3.symbols.hurd-i386: Update.
* patches/hurd-i386/local-mach_print.diff: New patch to export mach_print.
.
[ Aurelien Jarno ]
* rules.d/debhelper.mk: replace GLIBC_VERSION before LIBC. Closes:
#797538.
* Drop loongson-2f flavour on mipsel as this machine is not supported
anymore (default to R2 ISA).
* kfreebsd/local-sysdeps.diff: update to revision 5772 (from glibc-bsd).
Closes: #764692, #785796.
* testsuite-checking/expected-results-mips*: allow the new tst-audit9
fail, like the others tst-auditX.
* testsuite-checking/expected-results-mips(el)-linux-gnu-libc: allow
conformtest for sys/stat.h to fail for O32 ABI. They were previously
under the failing test run-conformtest.out, but it has been lost in
the conversion to the new format.
* testsuite-checking/expected-results-mips*: sort the files. Remove
failures due to old kernel now that all buildds run jessie.
* debhelper.in/locales-all.prerm: do not specify a path to check for
locale-gen.
* libc6.1.symbols.alpha: remove invoke_dynamic_linker from libpcprofile.so.
It has disappeared, but it is a private library.
* Remove debver2localesdep.pl, it is unused since 2.19-16.
* Use $(GLIBC_VERSION) for shlib, instead of defining the version in a
separate shlibver file.
* Remove completely outdated README, README.source and TODO files.
* rules.d/debhelper.mk: use the default compression format for libc6,
libc-bin and multiarch-support. Nowadays deboostrap is able to handle
the xz format and modern distributions also support it. Anyway almost
all packages installed by debootstrap are now using the xz format.
* Bump debhelper compatibility to level 9. This brings compressed debug
file using the build-id instead of a fixed path. This is much more
multiarch friendly.
* control.in/*: remove pre-squeeze conflicts.
* libc-bin, libc-dev-bin: Recommends the manpages package and add lintian
override for missing manpages.
* sysdeps/s390x.mk: --enable-lock-elision.
* testsuite-checking/expected-results-x86_64-linux-gnux32-*: allow
conformtest for headers with tv_nsec to fail for x32. The type
non-compliance is intentional. These tests were previously marked as
failing under the run-conformtest.out, but they have been lost during
the conversion to the new format.
* testsuite-checking/compare.sh: re-enable failures in case of regressions.
* rules.d/build.mk: don't require flavours to be tested before being
installed. They are still tested when calling the build-arch or
binary-arch targets, but not anymore when calling the build-indep or
binary-indep targets.
* patches/hppa/cvs-alloca-werror.diff: new patch from upstream to fix a
build failure.
* debhelper.in/libc.preinst: fix up error message for too old Linux
kernels. Closes: #800846.
* patches/any/cvs-ld_pointer_guard.diff: new patch from upstream to
unconditionally disable LD_POINTER_GUARD. Closes: #798316, #801691.
* patches/any/cvs-mangle-tls_dtor_list.diff: new patch from upstream to
mangle function pointers in tls_dtor_list. Closes: #802256.
* Update Brazilian Portuguese debconf translation, by Adriano Rafael
Gomes. Closes: #799418.
.
[ Steven Chamberlain ]
* sysdeps/kfreebsd.mk: find kfreebsd-kernel-headers in multiarch path.
Closes: #672774, #798064.
.
[ Helmut Grohne ]
* Fix some issues with stage 1. Closes: #797831.
.
[ Adam Conrad ]
* debian/patches/arm/local-arm-futex.diff: Lie about the minimum kernel
support for futex_atomic_cmpxchg_inatomic to restore the previous state
and fix the pulsesink (and others) regression on ARM (closes: #788799)
.
[ Henrique de Moraes Holschuh ]
* Replace patches/amd64/local-blacklist-on-TSX-Haswell.diff by
local-blacklist-for-Intel-TSX.diff also blacklisting some Broadwell
models. Closes: #800574.
Checksums-Sha1:
fd761ec4eac7bf3d13369eab55e538574f0e2245 8248 glibc_2.21-0experimental2.dsc
31c082c59310c4b7735bbb6717e74a4fb603f7ed 986484 glibc_2.21-0experimental2.debian.tar.xz
Checksums-Sha256:
9fdadce8edf4dc52a5341a4306f1e1d9db2c03e5eeeb5c6512833074965f326f 8248 glibc_2.21-0experimental2.dsc
2582ce18e1f909e9234ba3169fc2130e8a3b6324988122003647fb05e25bb7b7 986484 glibc_2.21-0experimental2.debian.tar.xz
Files:
cba9eeba0df44a6eacecb9c6f946a7dc 8248 libs required glibc_2.21-0experimental2.dsc
472c7e0d0fe1269e1aa94ce9c5141c3d 986484 libs required glibc_2.21-0experimental2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBAgAGBQJWJHmqAAoJELqceAYd3YybLU4P/ArJFWaiJKc4PDSLWppEGjJj
bVooDTNIEiQ2hEyhf0cAV7elwlqLdRYlQL7L40zVt43C0IgIfKVRfAgq2OtPoCW6
78nfS2Wx39cc+LXPsGFZrARGPdw+bc/QOUOzUcQs/A39+BFuesqTl+DU0/bGpHTp
d2xOhGTWu4JNsGYK9DExlm8KvbnXEikd6xJJCmvCKbVep5YF2bXcseSdgKmZlXAw
BAFLhA/T3OblvSCoOkkZSkp/SJyMaR/KJ9LZ9Fqvt04gO2Z0ok2AdpOBMCdkMt34
vU0ACY3L1cb4+xeXDAuSvcHMi0X32m/caG/0xm3iK1rQ32erk59XhUaJy+GNXWMu
wOqoySQ8mCVZ9Zs4GsE+1M2RYCmsmumjRnV4rZAE52WF3hY+iPkodZNSDi9vh5WB
VjYh3A9G+eClAhLNM0xBV7ztmULd5koT6raTdFaWZew1In4xxn+OlhVIDWdELSOU
M86qZCNDJQpxbs0HoDgTBYLoqy4weqnY+mTejjo8EGFKXHNrK1kZ7gLQmogmTkvr
P/xI8ng7iv7odEjjsGgIVx8w8FV7V27VBQtQsSKVqogS30mJRZQ/wYsyDmWD/wne
vQ98Y0ruTGrnvTDtTxn6EVKJxq7DD4udrdt6FXuTzK+mbD+EpLfj7BgOwvIVRbxs
mgivdzwe6BsWafTtBRPu
=O16T
-----END PGP SIGNATURE-----
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Fri, 23 Oct 2015 13:15:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Carlos Alberto Lopez Perez <clopez@igalia.com>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Fri, 23 Oct 2015 13:15:04 GMT) (full text, mbox, link).
Message #57 received at 800574@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Hi, Thanks for this patch. I was having trouble (crashes with the NVIDIA proprietary driver) on a Debian system with an i7-5775C and libc6=2.19-18+deb8u1 (stable) I tried first to update the Intel microcode with the "unreleased" 0x13 microcode version but it didn't disabled the TSX-NI instructions [1] neither the crashes. Finally I upgraded to glibc=2.21-0experimental2 and it fixed the crashes. I wonder: Should this patch be backported both to stable and unstable? Thanks for your awesome work ! Regards ------- [1] https://bugzilla.kernel.org/show_bug.cgi?id=103351#c93
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Fri, 23 Oct 2015 20:21:11 GMT) (full text, mbox, link).
Acknowledgement sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Fri, 23 Oct 2015 20:21:11 GMT) (full text, mbox, link).
Message #62 received at 800574@bugs.debian.org (full text, mbox, reply):
On Fri, Oct 23, 2015, at 11:13, Carlos Alberto Lopez Perez wrote: > I was having trouble (crashes with the NVIDIA proprietary driver) on a > Debian system with an i7-5775C and libc6=2.19-18+deb8u1 (stable) This is very very likely to be braindamage on the NVIDIA driver, though. Are you sure that driver is not doing something as idiotic as unlocking an already unlocked mutex ? The proper fix in that case is _always_ to fix whatever is broken, because eventually it will run on something that has working hardware lock elision... and crash. > I tried first to update the Intel microcode with the "unreleased" 0x13 > microcode version but it didn't disabled the TSX-NI instructions [1] > neither the crashes. Mobile Broadwell-H seems to disable TSX, while Desktop Broadwell-H doesn't. That's why we blacklisted the whole thing: inconsistent behavior on the same microcode, and that behavior is itself inconsistent with the errata sheet that says such processors shouldn't even be able to advertise Intel TSX RTM in CPUID. At the moment, we don't even know what is wrong with RTM in Broadwell/Broadwel-H/Broadwell-DE. We do know some of what is wrong with HLE in Broadwell/-H/-DE (and it is really nasty), but HLE is not used by glibc in the first place, and the HLE erratum is supposedly worked around somehow (because it is documented to be so on the Xeon D-1500/Broadwell-DE) by the batch of microcode updates available in the kernel bugzilla bug report mentioned in this bug report. Broadwell-H Microcode 0x13 is useful anyway because it fixes other critical errata that hangs/oopses the kernel: you box should be a _lot_ more stable with it. And at least one person reported that not all hangs were fixed by microcode 0x12, thus you probably should use keep using microcode 0x13 (or newer, should one become available). > Finally I upgraded to glibc=2.21-0experimental2 and it fixed the crashes. "Works around" a bug in the NVIDIA drivers is just as likely, see above. If we instrumented non-lock-elision glibc to complain about operations that are illegal on most processors implementing lock elision, we'd know for sure. > Should this patch be backported both to stable and unstable? It needs to go to stable sooner than later, yes. But it seems wise to let it cook in unstable/testing for a bit, first. I don't know what the plans for uploading new glibc to unstable are. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique de Moraes Holschuh <hmh@debian.org>
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Fri, 23 Oct 2015 23:48:11 GMT) (full text, mbox, link).
Acknowledgement sent
to Aurelien Jarno <aurelien@aurel32.net>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Fri, 23 Oct 2015 23:48:11 GMT) (full text, mbox, link).
Message #67 received at 800574@bugs.debian.org (full text, mbox, reply):
On 2015-10-23 18:10, Henrique de Moraes Holschuh wrote: > On Fri, Oct 23, 2015, at 11:13, Carlos Alberto Lopez Perez wrote: > > > Should this patch be backported both to stable and unstable? > > It needs to go to stable sooner than later, yes. But it seems wise to > let it cook in unstable/testing for a bit, first. The patch is already committed to our stable branch: http://anonscm.debian.org/viewvc/pkg-glibc?view=revision&revision=6644 The plan is to upload it to stable-proposed-updates once we have more fixes in (mostly the nscd bugs) or we are getting close to the next point release. > I don't know what the plans for uploading new glibc to unstable are. The plan is to get glibc 2.21 to unstable soon. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Mon, 26 Oct 2015 19:15:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Carlos Alberto Lopez Perez <clopez@igalia.com>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Mon, 26 Oct 2015 19:15:04 GMT) (full text, mbox, link).
Message #72 received at 800574@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On 23/10/15 22:10, Henrique de Moraes Holschuh wrote: > On Fri, Oct 23, 2015, at 11:13, Carlos Alberto Lopez Perez wrote: >> I was having trouble (crashes with the NVIDIA proprietary driver) on a >> Debian system with an i7-5775C and libc6=2.19-18+deb8u1 (stable) > > This is very very likely to be braindamage on the NVIDIA driver, though. > > Are you sure that driver is not doing something as idiotic as unlocking > an already unlocked mutex ? > > The proper fix in that case is _always_ to fix whatever is broken, > because eventually it will run on something that has working hardware > lock elision... and crash. > I can't know, since I don't have access to the source code of the driver, neither the debug symbols are available, so any attempt to get a meaningful backtrace was hopeless. At first I also thought it was the driver doing something wrong, but then I found several reports of people with the same cryptic backtrace than me saying that this was because of the TSX-NI bug of recent Intel CPUs [1]. And effectively, after upgrading glibc to this one that disables TSX-NI for broadwell it suddenly works as expected... So this seems to suggest that effectively TSX-NI is buggy on this CPU. In any case... Do you know of any program or test that I can run to check if TSX-NI (both HLE and RTM) is working as it should or is still buggy on this CPU? That way we can verify better if the problem is in the CPU or in the driver. >> I tried first to update the Intel microcode with the "unreleased" 0x13 >> microcode version but it didn't disabled the TSX-NI instructions [1] >> neither the crashes. > > Mobile Broadwell-H seems to disable TSX, while Desktop Broadwell-H > doesn't. That's why we blacklisted the whole thing: inconsistent > behavior on the same microcode, and that behavior is itself inconsistent > with the errata sheet that says such processors shouldn't even be able > to advertise Intel TSX RTM in CPUID. > > At the moment, we don't even know what is wrong with RTM in > Broadwell/Broadwel-H/Broadwell-DE. We do know some of what is wrong > with HLE in Broadwell/-H/-DE (and it is really nasty), but HLE is not > used by glibc in the first place, and the HLE erratum is supposedly > worked around somehow (because it is documented to be so on the Xeon > D-1500/Broadwell-DE) by the batch of microcode updates available in the > kernel bugzilla bug report mentioned in this bug report. > > Broadwell-H Microcode 0x13 is useful anyway because it fixes other > critical errata that hangs/oopses the kernel: you box should be a _lot_ > more stable with it. And at least one person reported that not all > hangs were fixed by microcode 0x12, thus you probably should use keep > using microcode 0x13 (or newer, should one become available). > Good to know, thanks for the advice. I will keep using this 0x13 "unofficial" microcode until a new one is out. I can't keep wondering why Intel is not releasing this :\ Regards! -------- [1] https://lists.archlinux.org/pipermail/arch-general/2015-April/038953.html
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Mon, 26 Oct 2015 21:06:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Carlos Alberto Lopez Perez <clopez@igalia.com>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Mon, 26 Oct 2015 21:06:04 GMT) (full text, mbox, link).
Message #77 received at 800574@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On 26/10/15 20:13, Carlos Alberto Lopez Perez wrote: > On 23/10/15 22:10, Henrique de Moraes Holschuh wrote: >> On Fri, Oct 23, 2015, at 11:13, Carlos Alberto Lopez Perez wrote: >>> I was having trouble (crashes with the NVIDIA proprietary driver) on a >>> Debian system with an i7-5775C and libc6=2.19-18+deb8u1 (stable) >> >> This is very very likely to be braindamage on the NVIDIA driver, though. >> >> Are you sure that driver is not doing something as idiotic as unlocking >> an already unlocked mutex ? >> >> The proper fix in that case is _always_ to fix whatever is broken, >> because eventually it will run on something that has working hardware >> lock elision... and crash. >> > > I can't know, since I don't have access to the source code of the > driver, neither the debug symbols are available, so any attempt to get a > meaningful backtrace was hopeless. > > At first I also thought it was the driver doing something wrong, but > then I found several reports of people with the same cryptic backtrace > than me saying that this was because of the TSX-NI bug of recent Intel > CPUs [1]. > > And effectively, after upgrading glibc to this one that disables TSX-NI > for broadwell it suddenly works as expected... > > So this seems to suggest that effectively TSX-NI is buggy on this CPU. > > In any case... Do you know of any program or test that I can run to > check if TSX-NI (both HLE and RTM) is working as it should or is still > buggy on this CPU? That way we can verify better if the problem is in > the CPU or in the driver. > I'm re-reading your explanation [2] about programs crashing with SIGSEV in __lll_unlock_elision when TSX is enabled to be caused by the program itself trying to unlock an already unlocked lock. That would explain everything, and will point indeed to a bug in the NVIDIA driver rather than in the CPU. Also, this specific model of CPU (i7-5775C) for what I have been reading seems to have fixed TSX-NI support. At least the ark page of Intel still advertises it [3]. In any case I'm still interested in testing this to be 100% sure. If you know about any test program that I can run, please let me know about it. Cheers ------ [2] https://bugzilla.kernel.org/show_bug.cgi?id=103351#c86 [3] http://ark.intel.com/products/88040/Intel-Core-i7-5775C-Processor-6M-Cache-up-to-3_70-GHz
[signature.asc (application/pgp-signature, attachment)]
Reply sent
to Aurelien Jarno <aurel32@debian.org>:
You have taken responsibility.
(Tue, 01 Dec 2015 10:25:01 GMT) (full text, mbox, link).
Notification sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Bug acknowledged by developer.
(Tue, 01 Dec 2015 10:25:01 GMT) (full text, mbox, link).
Message #82 received at 800574-close@bugs.debian.org (full text, mbox, reply):
Source: glibc
Source-Version: 2.21-1
We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 800574@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Tue, 01 Dec 2015 00:17:43 +0100
Source: glibc
Binary: libc-bin libc-dev-bin libc-l10n glibc-doc glibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mips32 libc6-dev-mips32 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-i686 libc6-xen libc0.1-i686 libc0.3-i686 libc0.3-xen libc6.1-alphaev67 libnss-dns-udeb libnss-files-udeb
Architecture: source
Version: 2.21-1
Distribution: unstable
Urgency: medium
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
glibc-doc - GNU C Library: Documentation
glibc-source - GNU C Library: sources
libc-bin - GNU C Library: Binaries
libc-dev-bin - GNU C Library: Development binaries
libc-l10n - GNU C Library: localization files
libc0.1 - GNU C Library: Shared libraries
libc0.1-dbg - GNU C Library: detached debugging symbols
libc0.1-dev - GNU C Library: Development Libraries and Header Files
libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.1-pic - GNU C Library: PIC archive library
libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3 - GNU C Library: Shared libraries
libc0.3-dbg - GNU C Library: detached debugging symbols
libc0.3-dev - GNU C Library: Development Libraries and Header Files
libc0.3-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.3-pic - GNU C Library: PIC archive library
libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3-xen - GNU C Library: Shared libraries [Xen version]
libc6 - GNU C Library: Shared libraries
libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
libc6-dbg - GNU C Library: detached debugging symbols
libc6-dev - GNU C Library: Development Libraries and Header Files
libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64
libc6-dev-mips32 - GNU C Library: o32 Development Libraries for MIPS
libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
libc6-dev-s390 - GNU C Library: 32bit Development Libraries for IBM zSeries
libc6-dev-sparc - GNU C Library: 32bit Development Libraries for SPARC
libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
libc6-dev-x32 - GNU C Library: X32 ABI Development Libraries for AMD64
libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64
libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
libc6-mips32 - GNU C Library: o32 Shared libraries for MIPS
libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
libc6-pic - GNU C Library: PIC archive library
libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
libc6-s390 - GNU C Library: 32bit Shared libraries for IBM zSeries
libc6-sparc - GNU C Library: 32bit Shared libraries for SPARC
libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc6-x32 - GNU C Library: X32 ABI Shared libraries for AMD64
libc6-xen - GNU C Library: Shared libraries [Xen version]
libc6.1 - GNU C Library: Shared libraries
libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
libc6.1-dbg - GNU C Library: detached debugging symbols
libc6.1-dev - GNU C Library: Development Libraries and Header Files
libc6.1-pic - GNU C Library: PIC archive library
libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
locales - GNU C Library: National Language (locale) data [support]
locales-all - GNU C Library: Precompiled locale data
multiarch-support - Transitional package to ensure multiarch compatibility
nscd - GNU C Library: Name Service Cache Daemon
Closes: 672774 712074 715059 717544 722885 753909 764692 766877 775179 781245 782198 785796 788352 788799 793641 796105 797538 797831 798064 798316 799418 799478 800574 800846 801691 802256 805730 805836
Changes:
glibc (2.21-1) unstable; urgency=medium
.
[ Aurelien Jarno ]
* testsuite-checking/expected-results-mips64el-linux-gnu-*: allow
nptl/tst-cancel24-static to fail on mips64el. It's an upstream regression
only affecting static binaries currently under investigation.
* patches/hppa/submitted-mathdef.diff: update to include the ABI baseline
changes.
* testsuite-checking/expected-results-*kfreebsd-gnu-*: re-add rt/tst-shm as
it seems it can still occasionally fail on the buildds.
.
glibc (2.21-0experimental4) experimental; urgency=medium
.
[ Aurelien Jarno ]
* testsuite-checking/expected-results-*kfreebsd-gnu-*: re-add tst-getpid1
and tst-getpid2 as it seems they can still occasionally fail on the
buildds.
* testsuite-checking/expected-results-mips64el-linux-gnu-libc: rename into
testsuite-checking/expected-results-mips64el-linux-gnuabi64-libc.
* testsuite-checking/expected-results-{arm,mips}*: allow nptl/tst-stack4 to
fail. It's a new test which fails intermitently on the buildds and a known
upstream problem.
* patches/hppa/submitted-mathdef.diff: new patch from John David Anglin to
define __NO_LONG_DOUBLE_MATH on hppa. Closes: #805836.
* patches/hppa/cvs-inline-syscall-rewrite.diff: new patch backported from
upstream as requested by John David Anglin.
* patches/hppa/cvs-sysdep-errno.diff: new patch backported from upstream as
requested by John David Anglin.
* testsuite-checking/expected-results-hppa-linux-gnu-libc: update testsuite
result, from John David Anglin.
* testsuite-checking/*{arm,mips,hppa}*: allow nptl/tst-cancel24-static to
fail on armel, armhf, hppa, mips, mipsel. It's an upstream regression
only affecting static binaries currently under investigation.
.
[ Samuel Thibault ]
* patches/hurd-i386/tg-tls-threadvar.diff: Update, to fix recursion while
accessing TLS while locking for accessing TLS.
* patches/hurd-i386/tg-context_functions.diff: Update, to fix sigprocmask
visibility.
* patches/hurd-i386/cvs-hidden.diff: New patch, to fix build with hidden
support.
* sysdeps/hurd-i386.mk: Disable libc0.3-i686 and libc0.3-xen build for now,
to get 2.21 out against the binutils version which broke them.
.
glibc (2.21-0experimental3) experimental; urgency=medium
.
[ Aurelien Jarno ]
* patches/hppa/cvs-allocatestack-stacktop.diff: new patch from upstream
to fix a set-but-unused warning in nptl/allocatestack.c, causing a
build failure.
* patches/hppa/local-stack-grows-up.diff: rebase.
* patches/any/cvs-tls-dtv.diff: new patch from upstream to fix DTV race,
assert, and DTV_SURPLUS Static TLS limit. This also reduces the failure
rate of nptl/tst-stack4. Closes: #793641.
* Add expected testsuite result for mips64el:
- testsuite-checking/expected-results-mips64el-linux-gnu-libc
- testsuite-checking/expected-results-mips64el-linux-gnuabin32-mipsn32
- testsuite-checking/expected-results-mipsel-linux-gnu-mips32
* patches/kfreebsd/local-sysdeps.diff, patches/kfreebsd/local-fbtl.diff:
update to revision 5844 (from glibc-bsd):
- Update to glibc 2.21.
- Define F_DUP2FD_CLOEXEC. Closes: #712074.
- Define SOCK_CLOEXEC and SOCK_NONBLOCK.
- Wire-up accept4. Closes: #722885.
* sysdeps/kfreebsd-{amd64,i386}.mk: configure with --disable-werror.
* patches/kfreebsd/local-nscd-no-sockcloexec.diff: Drop.
* patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff: improve and remove
a warning.
* patches/kfreebsd/local-tst-auxv.diff: new patch to disable AT_EXECFN
testing in tst-auxv when it is not defined.
* patches/any/cvs-rfc3542-advanced-api.diff: new patch from usptream to
add missing Advanced API (RFC3542) (1) defines. Closes: #753909.
* debian/rules: don't put debug files from libc0.1-i386 and libc6-mips32
into libc0.1-dbg or libc6-dbg.
* patches/hppa/cvs-atomic.diff, patches/hppa/cvs-inline-syscall.diff: new
patches from upstream to improve atomic and inline syscalls on HPPA
(closes: #799478).
* rules.d/build.mk: don't run the testsuite with make -k, as a build
failure in the testsuite, otherwise build failures cause the regression
comparison to be entirely skipped.
* testsuite-checking/expected-results-*kfreebsd-gnu-*: update testsuite
results.
* patches/any/cvs-check-localplt.diff: new patch from upstream to fix
check-localplt test with recent binutils version on x86.
* patches/hppa/submitted-gmon-start.diff: new patch from upstream to
fix __gmon_start__ symbol proliferation on hppa. Closes: #805730.
* Update from upstream stable branch:
- patches/any/cvs-make-typo.diff: Merged.
- Fix FTBFS with libselinux 2.4.
.
[ Samuel Thibault ]
* patches/hurd-i386/tg-pagesize.diff: Refresh.
* patches/hurd-i386/submitted-handle-eprototype.diff: Refresh.
* patches/hurd-i386/tg-posix_thread.diff: Update, to define
_POSIX_THREAD_KEYS_MAX, _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
_POSIX_THREAD_THREADS_MAX.
.
glibc (2.21-0experimental2) experimental; urgency=medium
.
[ Samuel Thibault ]
* Symbol versions which contain _DEBIAN_ are unexpected by upstream scripts.
Add hurd-i386-only patches/hurd-i386/local-versions-hack.diff to work
around the issue. Also take the opportunity of the upstream version bump
to bump the versions to GLIBC_2_21, which will allow one to remove the
_DEBIAN_ hacks once packages are rebuilt.
* patches/hurd-i386/unsubmitted-libpthread-semaphore.h.diff: Remove
libpthread/sysdeps/i386/bits/semaphore.h, now that hurd Implies
libpthread/sysdeps/generic. Move libpthread/include/semaphore.h into
libpthread/sysdeps/pthread/semaphore.h instead of the latter just
including the former, since the latter is what gets installed.
* patches/hurd-i386/cvs-cache-mach_host_self.diff: New patch to avoid port
count issue on the host port.
* patches/hurd-i386/unsubmitted-gnumach.defs.diff: Also build
task_notify.defs stubs. Drop unneeded change.
* libc0.3.symbols.hurd-i386: Update.
* patches/hurd-i386/local-mach_print.diff: New patch to export mach_print.
.
[ Aurelien Jarno ]
* rules.d/debhelper.mk: replace GLIBC_VERSION before LIBC. Closes:
#797538.
* Drop loongson-2f flavour on mipsel as this machine is not supported
anymore (default to R2 ISA).
* kfreebsd/local-sysdeps.diff: update to revision 5772 (from glibc-bsd).
Closes: #764692, #785796.
* testsuite-checking/expected-results-mips*: allow the new tst-audit9
fail, like the others tst-auditX.
* testsuite-checking/expected-results-mips(el)-linux-gnu-libc: allow
conformtest for sys/stat.h to fail for O32 ABI. They were previously
under the failing test run-conformtest.out, but it has been lost in
the conversion to the new format.
* testsuite-checking/expected-results-mips*: sort the files. Remove
failures due to old kernel now that all buildds run jessie.
* debhelper.in/locales-all.prerm: do not specify a path to check for
locale-gen.
* libc6.1.symbols.alpha: remove invoke_dynamic_linker from libpcprofile.so.
It has disappeared, but it is a private library.
* Remove debver2localesdep.pl, it is unused since 2.19-16.
* Use $(GLIBC_VERSION) for shlib, instead of defining the version in a
separate shlibver file.
* Remove completely outdated README, README.source and TODO files.
* rules.d/debhelper.mk: use the default compression format for libc6,
libc-bin and multiarch-support. Nowadays deboostrap is able to handle
the xz format and modern distributions also support it. Anyway almost
all packages installed by debootstrap are now using the xz format.
* Bump debhelper compatibility to level 9. This brings compressed debug
file using the build-id instead of a fixed path. This is much more
multiarch friendly.
* control.in/*: remove pre-squeeze conflicts.
* libc-bin, libc-dev-bin: Recommends the manpages package and add lintian
override for missing manpages.
* sysdeps/s390x.mk: --enable-lock-elision.
* testsuite-checking/expected-results-x86_64-linux-gnux32-*: allow
conformtest for headers with tv_nsec to fail for x32. The type
non-compliance is intentional. These tests were previously marked as
failing under the run-conformtest.out, but they have been lost during
the conversion to the new format.
* testsuite-checking/compare.sh: re-enable failures in case of regressions.
* rules.d/build.mk: don't require flavours to be tested before being
installed. They are still tested when calling the build-arch or
binary-arch targets, but not anymore when calling the build-indep or
binary-indep targets.
* patches/hppa/cvs-alloca-werror.diff: new patch from upstream to fix a
build failure.
* debhelper.in/libc.preinst: fix up error message for too old Linux
kernels. Closes: #800846.
* patches/any/cvs-ld_pointer_guard.diff: new patch from upstream to
unconditionally disable LD_POINTER_GUARD. Closes: #798316, #801691.
* patches/any/cvs-mangle-tls_dtor_list.diff: new patch from upstream to
mangle function pointers in tls_dtor_list. Closes: #802256.
* Update Brazilian Portuguese debconf translation, by Adriano Rafael
Gomes. Closes: #799418.
.
[ Steven Chamberlain ]
* sysdeps/kfreebsd.mk: find kfreebsd-kernel-headers in multiarch path.
Closes: #672774, #798064.
.
[ Helmut Grohne ]
* Fix some issues with stage 1. Closes: #797831.
.
[ Adam Conrad ]
* debian/patches/arm/local-arm-futex.diff: Lie about the minimum kernel
support for futex_atomic_cmpxchg_inatomic to restore the previous state
and fix the pulsesink (and others) regression on ARM (closes: #788799)
.
[ Henrique de Moraes Holschuh ]
* Replace patches/amd64/local-blacklist-on-TSX-Haswell.diff by
local-blacklist-for-Intel-TSX.diff also blacklisting some Broadwell
models. Closes: #800574.
.
glibc (2.21-0experimental1) experimental; urgency=medium
.
[ Samuel Thibault ]
* patches/hurd-i386/cvs-libpthread.diff: Update from upstream.
* patches/hurd-i386/cvs-libpthread-dlopen.diff: Merged.
* patches/hurd-i386/cvs-libpthread-libc-lockP2.diff: Merged.
* patches/hurd-i386/cvs-bind_umask.diff: Merged.
* patches/hurd-i386/cvs-fork_ss_hang.diff: Merged.
* patches/hurd-i386/cvs-munmap-0.diff: Merged.
* patches/hurd-i386/cvs-static-dlopen.diff: Merged.
* patches/hurd-i386/cvs-tcbhead_t.diff: Merged.
* patches/hurd-i386/cvs-libpthread_versions.diff: Rebased.
* patches/hurd-i386/local-disable-tst-xmmymm.diff: Dropped.
* patches/hurd-i386/local-hurdsig-global-dispositions-version.diff: Rebased.
* patches/hurd-i386/submitted-exec_filename.diff: Rebased.
* patches/hurd-i386/submitted-net.diff: Rebased.
* patches/hurd-i386/tg-EIEIO-fr.diff: Rebased.
* patches/hurd-i386/tg-af_local_strlen.diff: Rebased.
* patches/hurd-i386/tg-chflags.diff: Rebased.
* patches/hurd-i386/tg-tls-threadvar.diff: Update.
* patches/hurd-i386/tg-tls.diff: Rebased.
* patches/hurd-i386/tg-tls_thread_leak.diff: Rebased.
* patches/hurd-i386/unsubmitted-NO_HIDDEN.diff: Rebased.
* patches/hurd-i386/tg-no-hp-timing.diff: Update.
* patches/series: Re-enable all hurd patches.
* patches/hurd-i386/libpthread-versions.diff: New patch, updates to new
version engine.
* patches/hurd-i386/cvs-revert-gnu-gnu-cleanup.diff: New patch, reverts
cleanup of the gnu-gnu hack.
* patches/hurd-i386/libpthread_pthread_types.diff: New patch, fixes
inclusion of pthread_types.h
* patches/hurd-i386/unsubmitted-libc_alloca_cutoff.diff: New patch,
implements alloca cutoff limit.
* patches/hurd-i386/cvs-unwind-resume.diff: New patch, fixes unwind-resume
build.
* patches/hurd-i386/unsubmitted-libpthread-semaphore.h.diff: New patch,
fixes semaphore header inclusion.
* patches/hurd-i386/unsubmitted-timer_routines.diff: New patch, fixes
timer_routines build.
* patches/hurd-i386/cvs-libc-modules.h.diff: New patch, adds missing
dependency on libc-modules.h.
* patches/hurd-i386/cvs-warnings.diff: New patch, fixes warnings.
* patches/hurd-i386/cvs-check-local-headers.diff: New patch, clears spurious
local-header warnings.
* sysdeps/hurd.mk: Disable -Werror since MIG currently generates warnings.
* testsuite-checking/expected-results-{i586-gnu-libc,i686-gnu-
{i386,i686,xen}}: update testsuite results
.
[ Adam Conrad ]
* debian/{rules.d/debhelper.mk,sysdeps/*}: Define per-platform pldd
variable to control installation of usr/bin/pldd in libc-bin, and
leverage the same trick to decide to install usr/lib/pt_chown too.
* debian/patches/kfreebsd/local-no-pldd.diff: Drop, no longer used.
* debian/patches/alpha/submitted-PTR_MANGLE.diff: Use IS_IN macros.
* debian/patches/powerpc/cvs-ppc-sqrt.diff: Fix sqrt() on powerpc.
* debian/patches/powerpc/cvs-ppc-sqrtf.diff: Likewise for sqrtf().
* debian/patches/powerpc/cvs-ppc-pow.diff: Likewise for pow().
* debian/patches/powerpc/cvs-ppc-feraiseexcept.diff: Fix inline
feraiseexcept and feclearexcept macro input conversion on PPC.
* debian/patches/any/submitted-longdouble.diff: Refresh for above.
* debian/patches/any/local-disable-test-tgmath2.diff: Likewise.
* debian/patches/any/cvs-logbl-accuracy.diff: Fix ldbl-128ibm logbl.
* debian/patches/powerpc/local-math-logb.diff: Refresh and move to
debian/patches/any/local-math-logb.diff, as it's not PPC-specific.
* debian/patches/any/cvs-localplt-new-readelf.diff: Preemptively
fix localplt test breakage with binutils 2.26 before it lands.
* debian/patches/any/cvs-make-typo.diff: Fix typo in elf/Makefile.
* debian/patches/powerpc/cvs-power7-strncpy.diff: Optimize strncpy
for POWER7 drastically (10-70%) on strings longer than 16 chars.
* debian/patches/powerpc/cvs-ppc-tabort-le.diff: Fix TABORT encoding
when building on toolchains without HTM support (no-op on gcc-4.9)
* debian/patches/arm/cvs-arm-sfi_breg.diff: Fix LDR_GLOBAL macro.
* debian/patches/arm/cvs-memcpy-memmove-always-bx.diff: Fix memcpy
and memmove for the ARM_ALWAYS_BX class of hardware like ArmadaXP.
* debian/{control.in/*,debhelper.in/*,rules.d/*}: Stop hardcoding our
upstream version all over the place and use GLIBC_VERSION instead.
* debian/debhelper.in/libc.preinst: Unconditionally wipe ld.so.cache
on major version upgrades, which is significantly less error-prone.
.
[ Aurelien Jarno ]
* debian/patches/any/local-libgcc-compat-main.diff: Fix definition of
__floatdisf for sparc.
* debian/patches/any/local-libgcc-compat-ports.diff: Fix definition of
__floatdisf for mips. Remove usage of INTUSE (Closes: #782198).
* debian/sysdeps/linux.mk, debhelper.in/libc.preinst: bump minimal Linux
kernel version to 3.2 (ie the version in Wheezy).
* debian/patches/localedata/locale-C.diff: fix d_fmt time format (Closes:
#775179).
* Create source tarball in a deterministic manner: adjust file modification
time, user, group, permissions, and file order (addresses: #783210).
* Update from upstream stable branch:
- Fix a buffer overflow in getanswer_r (CVE-2015-1781). Closes: #796105.
* sysdeps/linux.mk: don't build pt_chown (CVE-2013-2207). Closes: #717544.
* Move translation to a new libc-l10n package from the locales packages.
Add a dependency from locales and locales-all to libc-l10n, so that they
both provide the same feature. Closes: #788352.
* control.in/main: Bump Standards-Version to 3.9.6 (no changes).
.
[ Breno Leitao ]
* Remove --without-cvs that is not used anymore as a valid configuration.
It was removed in commit 92963737c4376bcfd65235d5c325fa7f48302f89
(Closes: #781245).
.
[ Matthias Klose ]
* Fix multilib enabled stage1 cross builds (closes: #766877).
.
glibc (2.21-0experimental0) experimental; urgency=medium
.
* New upstream release: version 2.21, with git updates up to 2015-02-10:
- debian/patches/git-updates.diff: Updated.
- debian/patches/all/submitted-po-fr-fixes.diff: Rebased.
- debian/patches/alpha/cvs-__pointer_chk_guard.diff: Merged.
- debian/patches/alpha/cvs-unwind-backtrace.diff: Merged.
- debian/patches/alpha/local-gcc4.1.diff: Rebased.
- debian/patches/alpha/local-lowlevellock.diff: Dropped.
- debian/patches/alpha/local-string-functions.diff: Rebased.
- debian/patches/alpha/submitted-PTR_MANGLE.diff: Rebased.
- debian/patches/alpha/submitted-dl-support.diff: Rebased.
- debian/patches/alpha/submitted-lll_futex_timed_wait_bitset.diff: Dropped.
- debian/patches/alpha/submitted-rtld-fPIC.diff: Rebased.
- debian/patches/amd64/cvs-slow-sse42.diff: Merged.
- debian/patches/amd64/local-blacklist-on-TSX-Haswell.diff: Rebased.
- debian/patches/amd64/submitted-rwlock-stack-imbalance.diff: Dropped.
- debian/patches/any/cvs-check_pf-infinite-loop.diff: Merged.
- debian/patches/any/cvs-getnetbyname.diff: Merged.
- debian/patches/any/cvs-pie-lt_executable.diff: Merged.
- debian/patches/any/cvs-regex-alloca.diff: Merged.
- debian/patches/any/cvs-resolv-first-query-failure.diff: Merged.
- debian/patches/any/cvs-socketcall-syscall.diff: Merged.
- debian/patches/any/cvs-strtod.diff: Merged.
- debian/patches/any/cvs-vfprintf.diff: Merged.
- debian/patches/any/cvs-wordexp.diff: Merged.
- debian/patches/any/cvs-wprintf.diff: Merged.
- debian/patches/any/cvs-wscanf.diff: Merged.
- debian/patches/any/local-disable-libnss-db.diff: Rebased.
- debian/patches/any/local-disable-test-tgmath2.diff: Rebased.
- debian/patches/any/local-libgcc-compat-ports.diff: Rebased.
- debian/patches/any/local-libpic.diff: Rebased.
- debian/patches/any/local-no-SOCK_NONBLOCK.diff: Rebased.
- debian/patches/any/local-no-pagesize.diff: Rebased.
- debian/patches/any/local-rtlddir-cross.diff: Rebased.
- debian/patches/any/local-stdio-lock.diff: Rebased.
- debian/patches/any/local-sysctl.diff: Rebased.
- debian/patches/any/submitted-argp-attribute.diff: Rebased.
- debian/patches/any/submitted-bits-fcntl_h-at.diff: Rebased.
- debian/patches/any/submitted-longdouble.diff: Rebased.
- debian/patches/any/submitted-nl_langinfo-static.diff: Merged.
- debian/patches/any/submitted-ptsname_r-uninitialized-memory.diff: Merged.
- debian/patches/any/submitted-resolv-ipv6-nameservers.diff: Rebased.
- debian/patches/any/submitted-sysdeps-auxv.diff: Merged.
- debian/patches/any/unsubmitted-scanf-includes.diff: Rebased.
- debian/patches/any/unsubmitted-tst-ftell-locale.diff: Dropped.
- debian/patches/any/unsubmitted-tst-tlsmod-as-needed.diff: Merged.
- debian/patches/arm/local-ioperm.diff: Rebased.
- debian/patches/arm/local-lowlevellock.diff: Dropped.
- debian/patches/arm/local-sigaction.diff: Rebased.
- debian/patches/arm/local-vfp-sysdeps.diff: Rebased.
- debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff: Rebased.
- debian/patches/arm64/cvs-includes-cleanup.diff: Merged.
- debian/patches/arm64/submitted-align.diff: Merged.
- debian/patches/arm64/submitted-setcontext.diff: Merged.
- debian/patches/arm64/submitted-tst-setcontext.diff: Merged.
- debian/patches/hppa/cvs-sigrtmin.diff: Merged.
- debian/patches/hppa/local-atomic.diff: Dropped.
- debian/patches/hppa/local-elf-make-cflags.diff: Rebased.
- debian/patches/hppa/local-fcntl-osync.diff: Rebased.
- debian/patches/hppa/local-fpu.diff: Rebased.
- debian/patches/hppa/local-inlining.diff: Rebased.
- debian/patches/hppa/local-lowlevellock.diff: Dropped.
- debian/patches/hppa/local-pthread_spin_unlock.diff: Rebased.
- debian/patches/hppa/local-setjmp-namespace.diff: Dropped.
- debian/patches/hppa/local-shmlba.diff: Rebased.
- debian/patches/hppa/local-stack-grows-up.diff: Rebased.
- debian/patches/hurd-i386/tg-libpthread_depends.diff: Rebased.
- debian/patches/i386/submitted-i686-timing.diff: Rebased.
- debian/patches/kfreebsd/local-fbtl-depends.diff: Rebased.
- debian/patches/kfreebsd/local-fbtl.diff: Rebased.
- debian/patches/kfreebsd/local-scripts.diff: Rebased.
- debian/patches/kfreebsd/local-sysdeps.diff: Rebased.
- debian/patches/kfreebsd/submitted-waitid.diff: Rebased.
- debian/patches/locale/locale-print-LANGUAGE.diff: Rebased.
- debian/patches/locale/submitted-XDR-revert.diff: Merged.
- debian/patches/localedata/sort-UTF8-first.diff: Rebased.
- debian/patches/localedata/supported.diff: Rebased.
- debian/patches/m68k/local-fpic.diff: Rebased.
- debian/patches/m68k/local-mathinline_h.diff: Rebased.
- debian/patches/m68k/local-reloc.diff: Rebased.
- debian/patches/mips/local-lowlevellock.diff: Dropped.
- debian/patches/mips/local-r10k.diff: Rebased.
- debian/patches/mips/submitted-rld_map.diff: Rebased.
- debian/patches/powerpc/cvs-ibm-branch.diff: Dropped.
- debian/patches/sparc/local-fork.diff: Dropped.
- debian/patches/sparc/local-sparcv9-target.diff: Rebased.
* Drop some hppa patches that Carlos O'Donell claims are no longer needed:
- debian/patches/hppa/local-EAGAIN.diff: Dropped.
- debian/patches/hppa/local-fanotify_mark-5i.diff: Dropped.
- debian/patches/hppa/submitted-fadvise64_64.diff: Dropped.
- debian/patches/hppa/submitted-nptl-carlos.diff: Dropped.
* debian/*: Update occurences of 2.19 to 2.21 and update symbols to match.
* debian/patches/any/cvs-vismain-pie.diff: Compile vismain with -fPIE
and link with -pie to fix testsuite failure with the new binutils.
* debian/patches/any/local-libgcc-compat-abilists.diff: Fix the ablists
to match the symbols added in local-libgcc-compat* for the testsuite.
* debian/patches/sh4/local-fpscr_values.diff: Make the sh abilist match.
* debian/{control.in/main,rules}: Switch to gcc-4.9 on all architectures.
* debian/patches/any/local-tester-gcc-4.9.diff: Fix gcc-4.9 regression.
* debian/patches/any/local-xfail-stdlib-linkns.diff: XFAIL this test due
to building with pt_chown, which we should revisit very, very soon.
* debian/sysdeps/*: --enable-lock-elision on PPC targets (LP: #1414819)
* debian/libc*.symbols*: Remove local __invoke_dynamic_linker__ symbol,
which no longer shows up in random support libraries' symbol tables.
* debian/sysdeps/*: Neither ports nor nptl are considered add-ons anymore.
* debian/{rules.d/build.mk,testsuite-checking/*}: Adjust for upstream's
new testsuite, and convert old expected-results-* to match new output.
* debian/testsuite-checking/*: Let arm64 fail the tests indicated by the
upstream port maintainer as broken, and let i386 fail tst-cleanupx4.
* debian/debhelper.in/glibc-doc.install: Install changelogs that exist.
* debian/patches/i386/submitted-i686-timing.diff: Fix -Wundef warnings.
* debian/patches/arm/unsubmitted-ldso-abi-check.diff: Fix build failures
from format mismatches, uninitialised variables, and const conversions.
* debian/rules.d/debhelper.mk: Fix bootstrap libdirs (Closes: #715059)
* debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff: Same as above.
* Other than two hurd-i386 patches required as scaffolding for others,
all the hurd-i386 patches are disabled, so this build *will* fail there.
* kfreebsd's sysdeps patches almost certainly need updating for 2.21 too.
* Failing on testsuite failures is disabled to attempt to get full builds.
Checksums-Sha1:
00a32a01e48e8ef0535565306d0b28279fa36052 8198 glibc_2.21-1.dsc
981a0db9088d09677f67e7d5021fc24d5e973156 1016592 glibc_2.21-1.debian.tar.xz
Checksums-Sha256:
a293aaf7a7d59b8b0541965df6c89d6fb7f9da304c70f32717d5efd3dd02d5cd 8198 glibc_2.21-1.dsc
975e16703caceaaff712be9da23eed8689a45579204fcf803750ce73e043ad6a 1016592 glibc_2.21-1.debian.tar.xz
Files:
a1e6680f72e9aa554239546009d53885 8198 libs required glibc_2.21-1.dsc
3225b3e92bb141699d47923115782dd4 1016592 libs required glibc_2.21-1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBAgAGBQJWXUj7AAoJELqceAYd3YybJGIQALm17R81ofby+W/yv84J/SEh
Fck5fRn8jgaCoPBLfNzkPp2tYyu0rq9eIjYihJC4noSSlDeC7CmQyItAa7sbclit
z+GdhdSwoQa4WP+QRSHBDpkdJGBgDoKE1zTuy00fVu5cvRNMbm8akHUV8ftlqdoc
1qQ1SPwchdDyEQi1FEYwMEmwxEOc/OoQFziG1BqOiuNsF2qvwYR20OYFlMtiwcwO
xN6ukybA5ZskTjTX/3KpBl54rJkYxfOJRppKHmrFfBYgxGWBU7LBEzA7+CL0T4tK
1QjsNqmULiyeFaVbJvVwmLrIZvfAnYRWyvDN0Vu6x5B0O6E328XYOzIYd6CStnT5
bIHrIukVGlZlhM8MOU7hjAKjJOpHwuAhfYQId8FNPjUZn0hCukhxtK1qO1nInBr/
ztbI3R8Q/KVf9x5t1vnzVRbdsL4aRRVhd3+p/OekLmyW7paTkFJV60quEOFHTisE
+ugDmGkFMDXqBXXhfyrbLH+uuOmwTg9lTvXo6+V1G0HZQo/ERTW01qgTSpAvCCRj
0oo0KGHNalvIwW8hhVQkLuCO5c0TINY6CeEZvQK9HFAsDFHCZLUqfGFZP0Vz6dsU
KO51X+XLetTynzlFpQw1+VU7vCgOpDWX7F3bpi07217ew5rr5nk7hbw75ovq/HAC
+e9kwAibDsLZ3ceFtedR
=CCOx
-----END PGP SIGNATURE-----
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Mon, 07 Dec 2015 22:45:08 GMT) (full text, mbox, link).
Acknowledgement sent
to Andreas Beckmann <anbe@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Mon, 07 Dec 2015 22:45:08 GMT) (full text, mbox, link).
Message #87 received at 800574@bugs.debian.org (full text, mbox, reply):
Dear libc maintainers, we recently got a bug report regarding the TSX-NI / lock elision bug in combination with the non-free nvidia driver (#807244). Since that is supposed to be fixed with the libc in experimental (and now sid as well), perhaps you could take a look why this still happens. Several forum posts denote that "compiling glibc without --enable-lock-elision" works around that issue. A few ideas from my side, but since I don't have the hardware to test, I cannot check anything: * that specific CPU needs to be blacklisted / is incorrectly whitelisted * nvidia utilizes a code path in libc that is not covered by the current patch (and that code path is not used by any other application) * nvidia does call something it shouldn't call directly ... thus circumenting the runtime-disabling of the specific routines in libc6 * nvidia code does issue the problematic instructions itself (but the backtrace points to libc, so this sounds unlikely) Is there some way to check at runtime how lock elision is handled by libc (on a concrete system)? Andreas On 2015-12-06 17:53, Jelle Haandrikman wrote: > On a system with an Nvidia GTX 970, Intel Skylake i5-6600k running driver > 352.63-1 (experimental) several programs crash due to TSX-NI / elision unlock. > This affects sddm, unlocking kscreen, vlc and deleting files using dolphin. > > Other people also have found this issue. > http://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/nvidia-linux/825702-nvidia-s-latest-binary-driver-is-causing-problems-for-some-skylake-linux-users > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800574 #800574 > https://devtalk.nvidia.com/default/topic/893325/newest-and-beta-linux-driver-causing-segmentation-fault-core-dumped-on-all-skylake-platforms/ > > Bug #800574 suggest to disable elisian-unlock in glibc. Which is already > incorporated in experimental. This does not alleviate the issue. See the "steps > to reproduce" below. The same bug suggests that the nvidia driver still has > problems. I also run intel-microcode update, but that doesn't solve anything. > Step to reproduce: gdb vlc > output: > (gdb) run > Starting program: /usr/bin/vlc > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > VLC media player 2.2.1 Terry Pratchett (Weatherwax) (revision 2.2.1-0-ga425c42) > > Program received signal SIGSEGV, Segmentation fault. > __lll_unlock_elision (lock=0x7ffff26d0d08, private=0) > at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29 > 29 ../sysdeps/unix/sysv/linux/x86/elision-unlock.c: No such file or > directory. > (gdb) bt > #0 __lll_unlock_elision (lock=0x7ffff26d0d08, private=0) > at ../sysdeps/unix/sysv/linux/x86/elision-unlock.c:29 > #1 0x00007ffff247f26c in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1 > #2 0x00007ffff240fa22 in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1 > #3 0x00007fffffffd960 in ?? () > #4 0x00007ffff2493ea1 in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1 > #5 0x00007fffffffd960 in ?? () > #6 0x00007ffff7def59e in _dl_close_worker (map=<optimized out>, > force=<optimized out>) > at dl-close.c:291 > Backtrace stopped: previous frame inner to this frame (corrupt stack?) > > /usr/lib/x86_64-linux-gnu/libEGL.so.1 -> /usr/lib/x86_64-linux- > gnu/nvidia/libEGL.so.1 > > "dmesg|grep pthread" result: > breetai@mainbak:~$ dmesg |grep pthread > [73330.105569] traps: vlc[16815] general protection ip:7f47ac388950 > sp:7ffe3908ad98 error:0 in libpthread-2.22.so[7f47ac376000+18000] > [78860.282876] traps: dolphin[18294] general protection ip:7fc3b0c1b950 > sp:7ffd0a0828d8 error:0 in libpthread-2.22.so[7fc3b0c09000+18000] > [90812.515421] traps: krunner[20723] general protection ip:7f930fa19950 > sp:7ffc9b5cd988 error:0 in libpthread-2.22.so[7f930fa07000+18000] > [90826.164341] traps: akonadi_migrati[21161] general protection ip:7f33b7e39950 > sp:7fff9d61bef8 error:0 in libpthread-2.22.so[7f33b7e27000+18000] > [92621.782318] traps: vlc[21962] general protection ip:7f4241467950 > sp:7ffd8fa98f68 error:0 in libpthread-2.22.so[7f4241455000+18000] > breetai@mainbak:~$ > > > installed packages: > System runs testing. > > libc6:amd64 2.22-0experimental0 from experimental > nvidia-driver 352.63-1 from experimental > intel-microcode 3.20151106.1 from testing > vlc 2.2.1-5+b1 from testing
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Tue, 08 Dec 2015 09:24:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Aurelien Jarno <aurelien@aurel32.net>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Tue, 08 Dec 2015 09:24:04 GMT) (full text, mbox, link).
Message #92 received at 800574@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Hi, On 2015-12-07 23:26, Andreas Beckmann wrote: > Dear libc maintainers, > > we recently got a bug report regarding the TSX-NI / lock elision bug in > combination with the non-free nvidia driver (#807244). Since that is > supposed to be fixed with the libc in experimental (and now sid as > well), perhaps you could take a look why this still happens. > Several forum posts denote that "compiling glibc without > --enable-lock-elision" works around that issue. I disagree it is supposed to be fixed. Intel got a few bugs in there TSX-NI implementation for Haswell and Broadwell and possibly early versions of Skylake, and to avoid data loss we have therefore disabled lock elision for some CPU revisions. That said the bugs in the Intel implementation are corner cases, and it took quite some time for them to get discovered. If your program crashes reproducibly, it's definitely not an issue with the TSX-NI implementation. Disabling --enable-lock-elision it's just a workaround for the real issue. People now start to have CPUs with a working TSX-NI implementation which is therefore not blacklisted and thus the problem is appearing again. > A few ideas from my side, but since I don't have the hardware to test, I > cannot check anything: > * that specific CPU needs to be blacklisted / is incorrectly whitelisted As said above that couldn't be that. > * nvidia utilizes a code path in libc that is not covered by the current > patch (and that code path is not used by any other application) > * nvidia does call something it shouldn't call directly ... thus > circumenting the runtime-disabling of the specific routines in libc6 According to the backtrace the problem is typical of a call to mutex_unlock() on a mutex which hasn't been locked with mutex_lock() before. Nvidia should fix the bug there. > * nvidia code does issue the problematic instructions itself (but the > backtrace points to libc, so this sounds unlikely) > > Is there some way to check at runtime how lock elision is handled by > libc (on a concrete system)? What do you mean by "how is it handled"? I have attached a small program which demonstrate the issue. You can use it to check if your system is using lock elision or not. Running this program with ltrace it's quite easy the call to an already unlocked mutex. I wonder if it's doable to do the same with the whole Nvidia stack. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
[mutex_crash_tsx.c (text/x-csrc, attachment)]
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Tue, 08 Dec 2015 18:27:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Andreas Beckmann <anbe@debian.org>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Tue, 08 Dec 2015 18:27:03 GMT) (full text, mbox, link).
Message #97 received at 800574@bugs.debian.org (full text, mbox, reply):
Hi Aurelien, thanks for your analysis. On 2015-12-08 10:23, Aurelien Jarno wrote: > I disagree it is supposed to be fixed. Intel got a few bugs in there > TSX-NI implementation for Haswell and Broadwell and possibly early > versions of Skylake, and to avoid data loss we have therefore disabled > lock elision for some CPU revisions. That's what I meant with "fixed". But obviously there are two problems here: buggy hardware (blacklisted, #800574) and ... > That said the bugs in the Intel > implementation are corner cases, and it took quite some time for them to > get discovered. If your program crashes reproducibly, it's definitely not > an issue with the TSX-NI implementation. Disabling --enable-lock-elision > it's just a workaround for the real issue. People now start to have CPUs > with a working TSX-NI implementation which is therefore not blacklisted > and thus the problem is appearing again. ... buggy software (#807244), which is only exposed by running on hardware with working TSX-NI. That could also explain the fact that the bug was introduced in 352+. Jelle, I didn't dig through the nvidia forums, but if this info isn't mentioned there already, maybe you could post it: > According to the backtrace the problem is typical of a call to > mutex_unlock() on a mutex which hasn't been locked with mutex_lock() > before. (or was already unlocked.) Andreas
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Tue, 08 Dec 2015 21:33:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Jelle Haandrikman <jhaand@xs4all.nl>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Tue, 08 Dec 2015 21:33:04 GMT) (full text, mbox, link).
Message #102 received at 800574@bugs.debian.org (full text, mbox, reply):
Hi Andreas, On 2015-12-08 19:25, Andreas Beckmann wrote: > Hi Aurelien, > > ... buggy software (#807244), which is only exposed by running on > hardware with working TSX-NI. > That could also explain the fact that the bug was introduced in 352+. > > Jelle, I didn't dig through the nvidia forums, but if this info isn't > mentioned there already, maybe you could post it: > >> According to the backtrace the problem is typical of a call to >> mutex_unlock() on a mutex which hasn't been locked with mutex_lock() >> before. > (or was already unlocked.) I'm not a member of any of any Nvidia forum. I'm more of an advanced Debian user, with a technical background as a tester. All the searches that I just did regarding mutex_unlock() and the driver point back to this post. You really are doing the best anaylysis I had found. Unfortunately it's also the only one I can find. Thanks for already doing this investigation. best regards, Jelle
Information forwarded
to debian-bugs-dist@lists.debian.org, GNU Libc Maintainers <debian-glibc@lists.debian.org>:
Bug#800574; Package libc6.
(Wed, 09 Dec 2015 12:09:05 GMT) (full text, mbox, link).
Acknowledgement sent
to Aurelien Jarno <aurelien@aurel32.net>:
Extra info received and forwarded to list. Copy sent to GNU Libc Maintainers <debian-glibc@lists.debian.org>.
(Wed, 09 Dec 2015 12:09:05 GMT) (full text, mbox, link).
Message #107 received at 800574@bugs.debian.org (full text, mbox, reply):
On 2015-12-08 22:30, Jelle Haandrikman wrote: > Hi Andreas, > > On 2015-12-08 19:25, Andreas Beckmann wrote: > >Hi Aurelien, > > > >... buggy software (#807244), which is only exposed by running on > >hardware with working TSX-NI. > >That could also explain the fact that the bug was introduced in 352+. > > > >Jelle, I didn't dig through the nvidia forums, but if this info isn't > >mentioned there already, maybe you could post it: > > > >>According to the backtrace the problem is typical of a call to > >>mutex_unlock() on a mutex which hasn't been locked with mutex_lock() > >>before. > >(or was already unlocked.) > I'm not a member of any of any Nvidia forum. I'm more of an advanced > Debian user, with a technical background as a tester. All the searches that > I > just did regarding mutex_unlock() and the driver point back to this post. > > You really are doing the best anaylysis I had found. Unfortunately it's also > the only one I can find. As often this can be also found on the archlinux bug tracking system: https://bugs.archlinux.org/task/46064?project=1 There is even a link to an ugly patch showing that the issue has been understood. Finally according to the last post in this bug entry it seems that nvidia is about to release fix. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
Reply sent
to Aurelien Jarno <aurel32@debian.org>:
You have taken responsibility.
(Fri, 01 Jan 2016 15:51:36 GMT) (full text, mbox, link).
Notification sent
to Henrique de Moraes Holschuh <hmh@debian.org>:
Bug acknowledged by developer.
(Fri, 01 Jan 2016 15:51:36 GMT) (full text, mbox, link).
Message #112 received at 800574-close@bugs.debian.org (full text, mbox, reply):
Source: glibc
Source-Version: 2.19-18+deb8u2
We believe that the bug you reported is fixed in the latest version of
glibc, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 800574@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated glibc package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Mon, 28 Dec 2015 21:39:40 +0100
Source: glibc
Binary: libc-bin libc-dev-bin glibc-doc glibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc libc6-dev-sparc libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mips32 libc6-dev-mips32 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-x32 libc6-dev-x32 libc6-i686 libc6-xen libc0.1-i686 libc0.3-i686 libc0.3-xen libc6.1-alphaev67 libc6-loongson2f libnss-dns-udeb libnss-files-udeb
Architecture: source all
Version: 2.19-18+deb8u2
Distribution: stable
Urgency: medium
Maintainer: Aurelien Jarno <aurel32@debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description:
glibc-doc - GNU C Library: Documentation
glibc-source - GNU C Library: sources
libc-bin - GNU C Library: Binaries
libc-dev-bin - GNU C Library: Development binaries
libc0.1 - GNU C Library: Shared libraries
libc0.1-dbg - GNU C Library: detached debugging symbols
libc0.1-dev - GNU C Library: Development Libraries and Header Files
libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.1-pic - GNU C Library: PIC archive library
libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3 - GNU C Library: Shared libraries
libc0.3-dbg - GNU C Library: detached debugging symbols
libc0.3-dev - GNU C Library: Development Libraries and Header Files
libc0.3-i686 - GNU C Library: Shared libraries [i686 optimized]
libc0.3-pic - GNU C Library: PIC archive library
libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc0.3-xen - GNU C Library: Shared libraries [Xen version]
libc6 - GNU C Library: Shared libraries
libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
libc6-dbg - GNU C Library: detached debugging symbols
libc6-dev - GNU C Library: Development Libraries and Header Files
libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64
libc6-dev-mips32 - GNU C Library: o32 Development Libraries for MIPS
libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
libc6-dev-s390 - GNU C Library: 32bit Development Libraries for IBM zSeries
libc6-dev-sparc - GNU C Library: 32bit Development Libraries for SPARC
libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
libc6-dev-x32 - GNU C Library: X32 ABI Development Libraries for AMD64
libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64
libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
libc6-loongson2f - GNU C Library: Shared libraries (Loongson 2F optimized)
libc6-mips32 - GNU C Library: o32 Shared libraries for MIPS
libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
libc6-pic - GNU C Library: PIC archive library
libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
libc6-s390 - GNU C Library: 32bit Shared libraries for IBM zSeries
libc6-sparc - GNU C Library: 32bit Shared libraries for SPARC
libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
libc6-x32 - GNU C Library: X32 ABI Shared libraries for AMD64
libc6-xen - GNU C Library: Shared libraries [Xen version]
libc6.1 - GNU C Library: Shared libraries
libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
libc6.1-dbg - GNU C Library: detached debugging symbols
libc6.1-dev - GNU C Library: Development Libraries and Header Files
libc6.1-pic - GNU C Library: PIC archive library
libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
locales - GNU C Library: National Language (locale) data [support]
locales-all - GNU C Library: Precompiled locale data
multiarch-support - Transitional package to ensure multiarch compatibility
nscd - GNU C Library: Name Service Cache Daemon
Closes: 779587 798316 798515 799966 800523 800574 801691 802256 803927
Changes:
glibc (2.19-18+deb8u2) stable; urgency=medium
.
[ Aurelien Jarno ]
* Update from upstream stable branch:
- Fix getaddrinfo sometimes returning uninitialized data with nscd.
Closes: #798515.
- Fix data corruption while reading the NSS files database
(CVE-2015-5277). Closes: #799966.
- Fix buffer overflow (read past end of buffer) in internal_fnmatch.
- Fix _IO_wstr_overflow integer overflow.
- Fix unexpected closing of nss_files databases after lookups,
causing denial of service (CVE-2014-8121). Closes: #779587.
- Fix NSCD netgroup cache. Closes: #800523.
* patches/any/cvs-ld_pointer_guard.diff: new patch from upstream to
unconditionally disable LD_POINTER_GUARD. Closes: #798316, #801691.
* patches/any/cvs-mangle-tls_dtor_list.diff: new patch from upstream to
mangle function pointers in tls_dtor_list. Closes: #802256.
* patches/any/cvs-strxfrm-buffer-overflows.diff: new patch from upstream
to fix memory allocations issues that can lead to buffer overflows on
the stack. Closes: #803927.
.
[ Henrique de Moraes Holschuh ]
* Replace patches/amd64/local-blacklist-on-TSX-Haswell.diff by
local-blacklist-for-Intel-TSX.diff also blacklisting some Broadwell
models. Closes: #800574.
Checksums-Sha1:
e4386b9b316fb3366323a25c5626df580b3dd100 8236 glibc_2.19-18+deb8u2.dsc
9a766804327f12ab4424afab959c97d930421f1a 1040948 glibc_2.19-18+deb8u2.debian.tar.xz
bbf48a19e71e8c9367d8514ff2e1131d34f0134e 2267136 glibc-doc_2.19-18+deb8u2_all.deb
35528d07531cc05b48fe0a3405de48e2ab91491b 13976542 glibc-source_2.19-18+deb8u2_all.deb
0b0f9e53d313deb1965e7994c386b5384be66bc2 3954372 locales_2.19-18+deb8u2_all.deb
Checksums-Sha256:
f87e7448c2e460aac9b1a420469b7848b057a5d4e9f716b26d0277446eabac13 8236 glibc_2.19-18+deb8u2.dsc
0e407d1610ba95adfe641d7030ddac13105682f638cf8ff1286dfd1c44d24aa3 1040948 glibc_2.19-18+deb8u2.debian.tar.xz
24366700536fe92feb1570b5ce733d09fac4d1956a5904e330ad7bb642a2a167 2267136 glibc-doc_2.19-18+deb8u2_all.deb
b940f7c54a40513b5915ff6534b89d5f6b2154c2e78980bfe37b08264f55f90d 13976542 glibc-source_2.19-18+deb8u2_all.deb
e7694d8bfafffbf78b3ebb79f9e3218d699f0e13b761e1f4c7848705eebc9fe2 3954372 locales_2.19-18+deb8u2_all.deb
Files:
645a3775c11f5c216a25683b37db0f80 8236 libs required glibc_2.19-18+deb8u2.dsc
f7c75b3bdf661a84abf51420f15b6933 1040948 libs required glibc_2.19-18+deb8u2.debian.tar.xz
80e5c2d6537a71b13c549f628e2fdf71 2267136 doc optional glibc-doc_2.19-18+deb8u2_all.deb
fa2a8d49a5d97782a4f17aaea6edb642 13976542 devel optional glibc-source_2.19-18+deb8u2_all.deb
f3090452ea4d882d1891f265b90a5979 3954372 localization standard locales_2.19-18+deb8u2_all.deb
Package-Type: udeb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBAgAGBQJWgb0OAAoJELqceAYd3Yyb8FcP/3FJ4wWofgVMLI/u8Po9Iq2e
s3YRCwQNyCR7yGPiQS4Ow5OX3z/McXAG9MptMrWJUPetlFYttMqJJ7oW6Sgx5gZq
oZqbU2bI3pvH3qzy/VJfhJSD9r9qYoDRg+5N1LJtpF8D42CbEnKZDNT0KEAFo2qB
5lQcesVhfOGJt8GywiI8W+E10qSaAioWE/qD+D5QSpzoO25suB+9b8spGRZKIT/9
5B36o0DZFfcooPWjjkzab245TKu4SSSmC721whR2HcS4u3mcx9ZdqTEpsEk0DNWm
Hq25r0UJ8nvBffrgBY23odYRWgWeSNQcVml07RFY0dkNyz6FaX1x0917wnBzLvgX
0QAM+gSNs07e6QQV1AnrGzpXRUXsD3KTVklMrkKrKlZ0qmVZjKwzIm3COrIdEXUD
2FU/nSO49zLAvH+kUGMSeDQRDg4pgG2A/uhIq+ty8oBzkDiQvOpZNO8XZ8x2f43O
g1l/RcUF46yzu3WJjKOGoyukKvLMnhywppTHkD4S7fVL+p1mtpBr6p+lNQ9wZuHk
lxYJH4VcmcN1r2mEG6NcR8vdnSWueFIANaFRb/gSiz+oFo0inGLVFgC82a7moD05
yKXLR5BQo5fBNu0upLIrPHK1td9+bAaCyl2O5KlER2YzLtEqVJWcj2J5W/8itYaV
3XIC0DPL18g5+v9LXDpC
=+T4w
-----END PGP SIGNATURE-----
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Sat, 30 Jan 2016 07:41:52 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU General Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.