** Changed in: linux (Ubuntu Xenial)
       Status: In Progress => Fix Committed

-- 
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/1649718

Title:
  Linux rtc self test fails in a VM under xenial

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Xenial:
  Fix Committed

Bug description:
  == SRU Justification ==

  Impact: A race in kvm can result in the EOI signal for the rtc irq to
  be lost. After this happens no more rtc interrupts will be delivered
  to the guest.

  Fix: Three upstream cherry picks which fix the problem.

  Regression Potential: These patches have been upstream since 4.6, so
  they're well-tested at this point. Thus regressions are unlikely.

  ---

  ADT testing for the linux package hangs at the kernel's rtc selftest,
  for example:

  
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac
  /autopkgtest-zesty/zesty/amd64/l/linux/20161212_132117_a258d@/log.gz

  Running this test manually, I've observed that this will hang in me
  with various kernel versions going back to 4.4 in a VM on my machine
  which is running xenial. The test runs to completion in a VM on a
  different machine running zesty.

  This is the section of the test which produces the hang:

          /* Turn on update interrupts (one per second) */
          retval = ioctl(fd, RTC_UIE_ON, 0);
          if (retval == -1) {
                  if (errno == EINVAL) {
                          fprintf(stderr,
                                  "\n...Update IRQs not supported.\n");
                          goto test_READ;
                  }
                  perror("RTC_UIE_ON ioctl");
                  exit(errno);
          }

          fprintf(stderr, "Counting 5 update (1/sec) interrupts from reading 
%s:",
                          rtc);
          fflush(stderr);
          for (i=1; i<6; i++) {
                  /* This read will block */
                  retval = read(fd, &data, sizeof(unsigned long));
                  if (retval == -1) {
                          perror("read");
                          exit(errno);
                  }
                  fprintf(stderr, " %d",i);
                  fflush(stderr);
                  irqcount++;
          }

  The read blocks indefinitely most of the time. After boot it might
  return once or twice before it hangs, but running the test
  subsequently always hangs on the first read. I'll attach the full
  source for the test (rtctest.c).

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to