← Back to team overview

kernel-packages team mailing list archive

[Bug 1349028] Re: getitimer returns it_value=0 erroneously

 

SRU Justification:

Impact:

The CONFIG_CONTEXT_TRACKING_FORCE should be disabled for
various reasons:

1. As described in the Kconfig "this option brings an
overhead that you don't want in production" and also
"Say Y only if you're working on the development of an
architecture backend for the context tracking."

Clearly for production kernel we should disable this.

2. Disabling this option also fixes bug LP:#1349028.

Testcase:

According to the getitimer() man page: "The element
it_value is set to the amount of time remaining on
the timer, or zero if the timer is disabled. Similarly,
it_interval is set to the reset value."

The following perl script should never exit:

    use Time::HiRes;
    $SIG{VTALRM} = sub { };
    Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0.5, 0.4);
    while (1) {
        my @t = Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL);
        exit 0 if $t[0] == 0;
    }

With this config change the correct behaviour occurs.

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

Title:
  getitimer returns it_value=0 erroneously

Status in “linux” package in Ubuntu:
  Incomplete

Bug description:
  According to the 'getitimer()' man page: "The element it_value is set
  to the amount of time remaining on the timer, or zero if the  timer is
  disabled.  Similarly, it_interval is set to the reset value."

  As such the following Perl program should never exit:

      use Time::HiRes;
      $SIG{VTALRM} = sub { };
      Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0.5, 0.4);
      while (1) {
          my @t = Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL);
          exit 0 if $t[0] == 0;
      }

  and on linux-image 3.11.0-18-generic (and all other systems tested) it
  loops forever but 3.13.0-32-generic it exits.  Have not bisected
  between those kernels, nor am I likely to be able to do so soon.

  This Perl program shows the timer countdown:

  use Time::HiRes;
  my $r = [Time::HiRes::gettimeofday()];
  sub display {
      my ($desc) = @_;
      my @t = Time::HiRes::getitimer(&Time::HiRes::ITIMER_VIRTUAL);
      my $i = Time::HiRes::tv_interval($r);
      printf "%s: elasped=%.8f; time left=%.6f reset time=%.6f\n", $desc,
      $i,@t;
  }
  $SIG{VTALRM} = sub {
      display('VTALRM');
      exit;
  };
  Time::HiRes::setitimer(&Time::HiRes::ITIMER_VIRTUAL, 0.5, 0.4);
  while (1) {
      display('inloop');
  }

  on other (working) systems it gives:

  inloop: elasped=1.65178400; time left=0.001000 reset time=0.401000
  inloop: elasped=1.65184200; time left=0.001000 reset time=0.401000
  inloop: elasped=1.65186800; time left=0.001000 reset time=0.401000
  inloop: elasped=1.65192300; time left=0.001000 reset time=0.401000
  inloop: elasped=1.65198100; time left=0.001000 reset time=0.401000
  VTALRM: elasped=1.65209800; time left=0.400000 reset time=0.401000
  (end of file)

  but on the 3.13.0-32-generic or later kernel I get:

  inloop: elasped=0.54692100; time left=0.000033 reset time=0.400000
  inloop: elasped=0.54692800; time left=0.000026 reset time=0.400000
  inloop: elasped=0.54693500; time left=0.000020 reset time=0.400000
  inloop: elasped=0.54694100; time left=0.000013 reset time=0.400000
  inloop: elasped=0.54694800; time left=0.000007 reset time=0.400000
  inloop: elasped=0.54695500; time left=0.000000 reset time=0.400000
  inloop: elasped=0.54696200; time left=0.004000 reset time=0.400000
  [...]
  VTALRM: elasped=0.55013600; time left=0.397062 reset time=0.400000
  (end of file)

  The reset time also looks dodgy.

  Hardware is an Intel Core i7-920 on Asus P6T Deluxe v2 (X58)
  motherboard and hasn't changed.

  
  Requested information:

  Ubuntu 3.13.0-32.57-generic 3.13.11.4

  Description:	Ubuntu 14.04.1 LTS
  Release:	14.04

  # apt-cache policy linux-image-generic
  linux-image-generic:
    Installed: 3.13.0.32.38
    Candidate: 3.13.0.32.38
    Version table:
   *** 3.13.0.32.38 0
          500 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
          500 http://us.archive.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
          500 http://us.archive.ubuntu.com/ubuntu/ trusty-proposed/main amd64 Packages
          500 http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/ trusty/main amd64 Packages
          100 /var/lib/dpkg/status
       3.13.0.24.28 0
          500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
  --- 
  ApportVersion: 2.14.1-0ubuntu3.2
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC1:  tivrusky   3009 F.... pulseaudio
   /dev/snd/controlC0:  tivrusky   3009 F.... pulseaudio
  DistroRelease: Ubuntu 14.04
  HibernationDevice: RESUME=UUID=c026abdc-9fee-425c-b5ae-020bf6ea2ad6
  IwConfig:
   eth0      no wireless extensions.
   
   eth1      no wireless extensions.
   
   lo        no wireless extensions.
  MachineType: System manufacturer System Product Name
  Package: linux (not installed)
  ProcFB: 0 radeondrmfb
  ProcKernelCmdLine: root=UUID=3ea7a4cb-eade-4906-b545-5133d8c14080 ro quiet splash
  ProcVersionSignature: Ubuntu 3.13.0-32.57-generic 3.13.11.4
  RelatedPackageVersions:
   linux-restricted-modules-3.13.0-32-generic N/A
   linux-backports-modules-3.13.0-32-generic  N/A
   linux-firmware                             1.127.5
  RfKill:
   0: hci0: Bluetooth
   	Soft blocked: no
   	Hard blocked: no
  Tags:  trusty
  Uname: Linux 3.13.0-32-generic x86_64
  UpgradeStatus: Upgraded to trusty on 2014-06-10 (46 days ago)
  UserGroups: adm admin cdrom dialout lpadmin mythtv plugdev sambashare vboxusers
  WifiSyslog: Jul 26 20:23:08 zwei NetworkManager[1174]: <info> Policy set 'Wired connection 2' (eth1) as default for IPv6 routing and DNS.
  WpaSupplicantLog:
   
  _MarkForUpload: True
  dmi.bios.date: 02/04/2009
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: 0203
  dmi.board.asset.tag: To Be Filled By O.E.M.
  dmi.board.name: P6T DELUXE V2
  dmi.board.vendor: ASUSTeK Computer INC.
  dmi.board.version: Rev 1.xx
  dmi.chassis.asset.tag: Asset-1234567890
  dmi.chassis.type: 3
  dmi.chassis.vendor: Chassis Manufacture
  dmi.chassis.version: Chassis Version
  dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr0203:bd02/04/2009:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnP6TDELUXEV2:rvrRev1.xx:cvnChassisManufacture:ct3:cvrChassisVersion:
  dmi.product.name: System Product Name
  dmi.product.version: System Version
  dmi.sys.vendor: System manufacturer

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


References