← Back to team overview

kernel-packages team mailing list archive

[Bug 1572624] Comment bridged from LTC Bugzilla

 

------- Comment From shgwei@xxxxxxxxxx 2016-05-19 22:38 EDT-------
(In reply to comment #7)
> This bug is awaiting verification that the kernel in -proposed solves the
> problem. Please test the kernel and update this bug with the results. If the
> problem is solved, change the tag 'verification-needed-vivid' to
> 'verification-done-vivid'.
>
> If verification is not done by 5 working days from today, this fix will be
> dropped from the source code, and this bug will be closed.
>
> See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to
> enable and use -proposed. Thank you!

We ever tested on Ubuntu 15.04 and there was no hung issue here.
The issue was opened for Ubuntu 14 Trusty.
- Simon

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1572624

Title:
  Backport patch to abort syscalls in active transactions

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Vivid:
  Fix Committed
Status in linux source package in Wily:
  Fix Released
Status in linux source package in Xenial:
  Fix Released
Status in linux source package in Yakkety:
  Fix Released

Bug description:
  == Comment: #0 - Tulio Magno Quites Machado Filho - 2016-02-23 12:47:09 ==
  ---Problem Description---
  This is happening on Ubuntu 14.04.3.
  User is creating stack structure using C++ transactional memory extension:

      int Pop(int)
      {
          int ret = 0;
          __transaction_atomic
          {
                  if(!stack_.empty())
                  {
                          ret = stack_.top();
                          stack_.pop();
                  } else
                          ret = -1;
          }
          return ret;
      }

  While evaluating if(!stack_.empty()), this code calls a libitm function (GCC code), which calls malloc (glibc code) which ends up calling futex (a syscall).
  A syscall inside a transaction is forbidden by the kernel, but there is nothing the user can do to avoid this syscall.

  This will hang the user application inside the malloc(), which would
  be waiting for the futex to return.

  Ubuntu 14.04 provides glibc 2.19, which is too old to know about HTM.
  And this is probably happening with other libraries as well.

  Backporting commit b4b56f9e would solve this issue.
    
  ---uname output---
  Linux 3.13.0-66-generic #108-Ubuntu SMP Wed Oct 7 16:06:09 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux
   
  ---Steps to Reproduce---
   Start a transaction, make a syscall.
   
  == Comment: #1 - Wei Guo - 2016-02-24 02:33:03 ==
  I already verfied that kernel with patch b4b56f9e (on Ubuntu14.04) will work.

  == Comment: #2 - Wei Guo - 2016-02-26 04:20:37 ==
  Backport patch for commit b4b56f9e is attached. The patch is based on tag Ubuntu-lts-3.19.0-25.26_14.04.1.

  Tested based on Ubuntu 14.04.4 LTS ( 3.19.0-25-generic).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1572624/+subscriptions