[Bug 1845011] Re: mcontend stressor SIGBUS's on older armhf platforms

Colin Ian King 1845011 at bugs.launchpad.net
Fri Oct 25 08:55:34 UTC 2019


Verified bug is now fixed:

bionic-arhhf$ cat /proc/cpuinfo  | grep model | head -1
model name	: ARMv7 Processor rev 1 (v7l)
bionic-arhhf$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04
Codename:	bionic
bionic-arhhf$ stress-ng --mcontend 1 -t 10 -v
stress-ng: debug: [4816] 4 processors online, 4 processors configured
stress-ng: info:  [4816] dispatching hogs: 1 mcontend
stress-ng: debug: [4816] /sys/devices/system/cpu/cpu0/cache does not exist
stress-ng: info:  [4816] cache allocate: using built-in defaults as unable to determine cache details
stress-ng: debug: [4816] cache allocate: default cache size: 2048K
stress-ng: debug: [4816] starting stressors
stress-ng: debug: [4816] 1 stressor spawned
stress-ng: debug: [4817] stress-ng-mcontend: started [4817] (instance 0)
stress-ng: debug: [4817] stress-ng-mcontend: exited [4817] (instance 0)
stress-ng: debug: [4816] process [4817] terminated
stress-ng: info:  [4816] successful run completed in 10.01s
bionic-arhhf$ dpkg -l | grep stress-ng
ii  stress-ng                        0.09.25-1ubuntu4               armhf        tool to load and stress a computer
bionic-arhhf$ 


** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done verification-done-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1845011

Title:
  mcontend stressor SIGBUS's on older armhf platforms

Status in stress-ng package in Ubuntu:
  Fix Released
Status in stress-ng source package in Bionic:
  Fix Committed
Status in stress-ng source package in Disco:
  Fix Released
Status in stress-ng source package in Eoan:
  Fix Released

Bug description:
  == SRU Justification BIONIC, DISCO ==

  When running the mcontend stressor on slow armhf devices that have
  slow memory backed I/O one can get SIGBUS on a file backed mmap
  because the flush has been slow to allocate the page and we're
  mmapping and accessing a as yet allocated page on the backing store.

  == Test Proceedure ==

  Run:

  
  stress-ng --mcontend 1 -t 10 -v

  without the fix, we get SIGBUS failures because we touch a page that
  has not yet had the backing mmap page allocated and flushed to the
  file system.

  == Fix ==

  commit c3678dadee23f9b8783038f54463cff5741a9cbe
  Author: Colin Ian King <colin.king at canonical.com>
  Date:   Mon Sep 23 15:54:13 2019 +0100

      stress-mcontend: ensure mmap'd file is sync'd with zero data (LP: #1845011)
      
      Write zero's to backing store of at least one page size and sync
      it so that we can be 100% sure that mmap'ing the page into memory
      is backed with data so we don't get BUS errors on some platforms
      such as armhf Raspi2.
      
      Also fix broken sanity check on 2nd mmap out of memory failure.
      
      Signed-off-by: Colin Ian King <colin.king at canonical.com>

  
  == Regression Potential ==

  Minimal. This replaces the more esoteric fallocate() with a direct set
  of file writes and a sync to ensure data is written back before we
  mmap onto it.  The fixed behaviour is slower as we introduce a sync,
  so we have the possibility of the sync blocking for a long time if the
  system has a lot of dirty data, but this is necessary as fsync() is
  less portable and sync guarantees we really have data to mmap onto to
  avoid the SIGBUS.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/1845011/+subscriptions



More information about the Ubuntu-sponsors mailing list