This bug was fixed in the package linux - 4.13.0-12.13

---------------
linux (4.13.0-12.13) artful; urgency=low

  * linux: 4.13.0-12.13 -proposed tracker (LP: #1718980)

  * [Feature] SKX: Support crystall ridge / far / near memory indication in PEBS
    (LP: #1591813)
    - perf/x86: Move Nehalem PEBS code to flag
    - perf/x86: Fix data source decoding for Skylake

  * Upgrade to 4.13.0-11.12 in artful amd64 VM breaks display on wayland
    (LP: #1718679)
    - [Config] CONFIG_DRM_VBOXVIDEO=n

  * ipmmu-vmsa driver breaks arm64 boots (LP: #1718734)
    - [Config] Disable CONFIG_IPMMU_VMSA on arm64

  * Vlun resize request could fail with cxlflash driver (LP: #1713575)
    - scsi: cxlflash: Fix vlun resize failure in the shrink path

  * multipath -ll is not showing the disks which are actually multipath
    (LP: #1718397)
    - fs: aio: fix the increment of aio-nr and counting against aio-max-nr

  * [Feature] Crystal Ridge - BTT - Rework error clearing (LP: #1704350)
    - libnvdimm, btt: fix a missed NVDIMM_IO_ATOMIC case in the write path
    - libnvdimm, btt: refactor map entry operations with macros
    - libnvdimm, btt: ensure that flags were also unchanged during a map_read
    - libnvdimm, btt: cache sector_size in arena_info
    - libnvdimm: fix potential deadlock while clearing errors
    - libnvdimm, btt: rework error clearing

  * [Feature] Crystal Ridge - have 4k DAX faults use a common zero page
    (LP: #1704439)
    - mm: add vm_insert_mixed_mkwrite()
    - dax: relocate some dax functions
    - dax: use common 4k zero page for dax mmap reads
    - dax: remove DAX code from page_cache_tree_insert()
    - dax: move all DAX radix tree defs to fs/dax.c

  * [bug] 17.10: CDP test fail on platform of Purley-2S/4S/Neoncity,BDW-
    de/ep/ex, (LP: #1716843)
    - SAUCE: (no-up) x86/intel_rdt: Fix cdp info directory files issue

  * [featue] GPIO support for Denverton (LP: #1591829)
    - pinctrl: intel: Add Intel Denverton pin controller support

  * ETPS/2 Elantech Touchpad inconsistently detected (Gigabyte P57W laptop)
    (LP: #1594214)
    - Input: i8042 - add Gigabyte P57 to the keyboard reset table

  * autopkgtest profile fails to build on armhf (LP: #1717920)
    - [Packaging] autopkgtest -- disable d-i when dropping flavours

  * Artful update to v4.13.3 stable release (LP: #1718412)
    - Revert "net: use lib/percpu_counter API for fragmentation mem accounting"
    - Revert "net: fix percpu memory leaks"
    - gianfar: Fix Tx flow control deactivation
    - vhost_net: correctly check tx avail during rx busy polling
    - ip6_gre: update mtu properly in ip6gre_err
    - udp: drop head states only when all skb references are gone
    - ipv6: fix memory leak with multiple tables during netns destruction
    - ipv6: fix typo in fib6_net_exit()
    - sctp: fix missing wake ups in some situations
    - tcp: fix a request socket leak
    - ip_tunnel: fix setting ttl and tos value in collect_md mode
    - f2fs: let fill_super handle roll-forward errors
    - f2fs: check hot_data for roll-forward recovery
    - x86/fsgsbase/64: Fully initialize FS and GS state in start_thread_common
    - x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps
    - x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs
    - x86/mm, mm/hwpoison: Clear PRESENT bit for kernel 1:1 mappings of poison
      pages
    - ovl: fix false positive ESTALE on lookup
    - fuse: allow server to run in different pid_ns
    - idr: remove WARN_ON_ONCE() when trying to replace negative ID
    - libnvdimm, btt: check memory allocation failure
    - libnvdimm: fix integer overflow static analysis warning
    - xfs: write unmount record for ro mounts
    - xfs: toggle readonly state around xfs_log_mount_finish
    - xfs: Add infrastructure needed for error propagation during buffer IO
      failure
    - xfs: Properly retry failed inode items in case of error during buffer
      writeback
    - xfs: fix recovery failure when log record header wraps log end
    - xfs: always verify the log tail during recovery
    - xfs: fix log recovery corruption error due to tail overwrite
    - xfs: handle -EFSCORRUPTED during head/tail verification
    - xfs: stop searching for free slots in an inode chunk when there are none
    - xfs: evict all inodes involved with log redo item
    - xfs: check for race with xfs_reclaim_inode() in xfs_ifree_cluster()
    - xfs: open-code xfs_buf_item_dirty()
    - xfs: remove unnecessary dirty bli format check for ordered bufs
    - xfs: ordered buffer log items are never formatted
    - xfs: refactor buffer logging into buffer dirtying helper
    - xfs: don't log dirty ranges for ordered buffers
    - xfs: skip bmbt block ino validation during owner change
    - xfs: move bmbt owner change to last step of extent swap
    - xfs: disallow marking previously dirty buffers as ordered
    - xfs: relog dirty buffers during swapext bmbt owner change
    - xfs: disable per-inode DAX flag
    - xfs: fix incorrect log_flushed on fsync
    - xfs: don't set v3 xflags for v2 inodes
    - xfs: open code end_buffer_async_write in xfs_finish_page_writeback
    - xfs: use kmem_free to free return value of kmem_zalloc
    - md/raid1/10: reset bio allocated from mempool
    - md/raid5: release/flush io in raid5_do_work()
    - xfs: fix compiler warnings
    - Linux 4.13.3

  * Artful update to v4.13.2 stable release (LP: #1717549)
    - mtd: nand: make Samsung SLC NAND usable again
    - mtd: nand: hynix: add support for 20nm NAND chips
    - mtd: nand: mxc: Fix mxc_v1 ooblayout
    - mtd: nand: qcom: fix read failure without complete bootchain
    - mtd: nand: qcom: fix config error for BCH
    - nvme-fabrics: generate spec-compliant UUID NQNs
    - btrfs: resume qgroup rescan on rw remount
    - rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be
    - rtlwifi: btcoexist: Fix antenna selection code
    - radix-tree: must check __radix_tree_preload() return value
    - brcmfmac: feature check for multi-scheduled scan fails on bcm4345 devices
    - kselftests: timers: leap-a-day: Change default arguments to help test runs
    - selftests: timers: Fix run_destructive_tests target to handle skipped 
tests
    - selftests/x86/fsgsbase: Test selectors 1, 2, and 3
    - mm: kvfree the swap cluster info if the swap file is unsatisfactory
    - mm/swapfile.c: fix swapon frontswap_map memory leak on error
    - mm/sparse.c: fix typo in online_mem_sections
    - mm/memory.c: fix mem_cgroup_oom_disable() call missing
    - KVM: SVM: Limit PFERR_NESTED_GUEST_PAGE error_code check to L1 guest
    - Revert "firmware: add sanity check on shutdown/suspend"
    - rt2800: fix TX_PIN_CFG setting for non MT7620 chips
    - ARM64: dts: marvell: armada-37xx: Fix GIC maintenance interrupt
    - ARM: 8692/1: mm: abort uaccess retries upon fatal signal
    - NFS: Fix 2 use after free issues in the I/O code
    - NFS: Sync the correct byte range during synchronous writes
    - NFSv4: Fix up mirror allocation
    - xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
    - Linux 4.13.2

  * [Bug] Thunderbolt-patches: Related to the way the key for secure connection
    is handled (LP: #1717430)
    - thunderbolt: Remove superfluous check
    - thunderbolt: Make key root-only accessible
    - thunderbolt: Allow clearing the key

  * [Bug] Thunderbolt-patches: Fixes the issue regarding the order of ACPI calls
    w.r.t. PCI enumeration (LP: #1717431)
    - ACPICA: Dispatch active GPEs at init time
    - ACPICA: Make it possible to enable runtime GPEs earlier
    - ACPI / scan: Enable GPEs before scanning the namespace

  * Miscellaneous Ubuntu changes
    - ubuntu: vbox -- update to 5.1.28-dfsg-1
    - [Config] CONFIG_PINCTRL_DENVERTON=m
    - [Config] CONFIG_I2C_XLP9XX=m

  * Miscellaneous upstream changes
    - Introduce v3 namespaced file capabilities

 -- Seth Forshee <seth.fors...@canonical.com>  Fri, 22 Sep 2017 12:10:03
-0500

** Changed in: linux (Ubuntu Artful)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1718397

Title:
  multipath -ll is not showing the disks which are actually multipath

Status in The Ubuntu-power-systems project:
  Triaged
Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Xenial:
  Triaged
Status in linux source package in Zesty:
  Triaged
Status in linux source package in Artful:
  Fix Released

Bug description:
  [Impact]

   * The number of available AIO contexts is severely limited
     on systems with a large number of possible CPUs 
     (e.g., IBM POWER8 processors w/ 20ish cores * 8 threads/core,
     and other multithreaded server-class processors).

   * This prevents application such as multipath/directio checker
     to provide all of the available devices to the system.

   * Other applications which depend on AIO can be affected/limited.

   * The patch fixes how aio increments the number of active contexts
     (seen in /proc/sys/fs/aio-nr) and checks that against the global
     limit (seen in /proc/sys/fs/aio-max-nr).

  [Test Case]

   * A synthetic test-case is attached (io_setup_v2.c) and demonstrated
     (original/patched kernels) in comment #4.

   * Trying to perform multipath discovery in debug/verbose mode
     (i.e., "multipath -v3" command) with sufficient number of 
     individual paths using the "directio" path checker should
     demonstrate the problem/solution as well (i.e., presence or
     not of "io_setup failed" messages).

  [Regression Potential]

   * Note the fix is trivial and has been tested by several users,
     even caused the introduction of a new test-case in "libaio";
     (but that can never be a strong enough reason for no more errors).

   * Applications which use aio with small "nr_events" value as argument
     to "io_setup()" now have access to a much larger number of aio contexts;
     but hopefully those apps are already only requesting what they need,
     not trying to get more and more.

   * Applications which relied in the _incorrect_ behavior of 
'/proc/sys/fs/aio-nr'
     being possibly greater than '/proc/sys/fs/aio-max-nr' might have problems,
     but those apps should be fixed.


  Problem Description
  =================================
  I am facing this issue for Texan Flash storage 840 disks which are coming 
from coho and salfish adapter

  coho adapter with 840 storage  is 3G disks and salfish adapter with
  840 is 12G disks

  I am able to see those disks in lsblk o/p but not in multipath -ll
  comamnd

  0004:01:00.0     Coho: Saturn-X          U78C9.001.WZS0060-P1-C6         
0x10000090fa2a51f8      host10                  Online
  0004:01:00.1     Coho: Saturn-X          U78C9.001.WZS0060-P1-C6         
0x10000090fa2a51f9      host11                  Online

  0005:09:00.0     Sailfish: QLogic 8GB    U78C9.001.WZS0060-P1-C9         
0x21000024ff787778      host2           Online
  0005:09:00.1     Sailfish: QLogic 8GB    U78C9.001.WZS0060-P1-C9         
0x21000024ff787779      host4           Online

  root@luckyv1:/dev/disk# multipath -ll | grep "size=3.0G" -B 1
  root@luckyv1:/dev/disk# multipath -ll | grep "size=12G" -B 1
  root@luckyv1:/dev/disk#

  == Comment: #3 - Luciano Chavez <cha...@us.ibm.com> - 2016-09-20 20:22:20 ==
  I edited /etc/multipath.conf and added
  verbosity 6

  to crank up the output and ran multipath -ll and saved it off to a
  text file (attached). All the using the directio checker failed and
  those using the tur checker seem to work.

  Sep 20 20:07:36 | loading //lib/multipath/libcheckdirectio.so checker
  Sep 20 20:07:36 | loading //lib/multipath/libprioconst.so prioritizer
  Sep 20 20:07:36 | Discover device 
/sys/devices/pci0000:00/0000:00:00.0/0000:01:00.0/host3/rport-3:0-2/target3:0:0/3:0:0:0/block/sdai
  Sep 20 20:07:36 | sdai: udev property ID_WWN whitelisted
  Sep 20 20:07:36 | sdai: not found in pathvec
  Sep 20 20:07:36 | sdai: mask = 0x25
  Sep 20 20:07:36 | sdai: dev_t = 66:32
  Sep 20 20:07:36 | open 
'/sys/devices/pci0000:00/0000:00:00.0/0000:01:00.0/host3/rport-3:0-2/target3:0:0/3:0:0:0/block/sdai/size'
  Sep 20 20:07:36 | sdai: size = 20971520
  Sep 20 20:07:36 | sdai: vendor = IBM
  Sep 20 20:07:36 | sdai: product = FlashSystem-9840
  Sep 20 20:07:36 | sdai: rev = 1442
  Sep 20 20:07:36 | sdai: h:b:t:l = 3:0:0:0
  Sep 20 20:07:36 | SCSI target 3:0:0 -> FC rport 3:0-2
  Sep 20 20:07:36 | sdai: tgt_node_name = 0x500507605e839800
  Sep 20 20:07:36 | open 
'/sys/devices/pci0000:00/0000:00:00.0/0000:01:00.0/host3/rport-3:0-2/target3:0:0/3:0:0:0/state'
  Sep 20 20:07:36 | sdai: path state = running
  Sep 20 20:07:36 | sdai: get_state
  Sep 20 20:07:36 | sdai: path_checker = directio (internal default)
  Sep 20 20:07:36 | sdai: checker timeout = 30 ms (internal default)
  Sep 20 20:07:36 | io_setup failed
  Sep 20 20:07:36 | sdai: checker init failed

  == Comment: #7 - Mauricio Faria De Oliveira <mauri...@br.ibm.com> - 
2016-09-27 18:32:57 ==
  The function is failing at the io_setup() system call.

   @ checkers/directio.c

   int libcheck_init (struct checker * c)
   {
    unsigned long pgsize = getpagesize();
    struct directio_context * ct;
    long flags;

    ct = malloc(sizeof(struct directio_context));
    if (!ct)
            return 1;
    memset(ct, 0, sizeof(struct directio_context));

    if (io_setup(1, &ct->ioctx) != 0) {
            condlog(1, "io_setup failed");
            free(ct);
            return 1;
    }
   <...>

  The syscall is failing w/ EAGAIN

   # grep ^io_setup multipath_-v2_-d.strace
   io_setup(1, 0x100163c9130)              = -1 EAGAIN (Resource temporarily 
unavailable)
   io_setup(1, 0x10015bae2c0)              = -1 EAGAIN (Resource temporarily 
unavailable)
   io_setup(1, 0x100164d65a0)              = -1 EAGAIN (Resource temporarily 
unavailable)
   io_setup(1, 0x10016429f20)              = -1 EAGAIN (Resource temporarily 
unavailable)
   io_setup(1, 0x100163535c0)              = -1 EAGAIN (Resource temporarily 
unavailable)
   io_setup(1, 0x10016368510)              = -1 EAGAIN (Resource temporarily 
unavailable)
   <...>

  According to the manpage (man 2 io_setup)

   NAME
          io_setup - create an asynchronous I/O context

   DESCRIPTION
          The io_setup() system call creates an asynchronous I/O context 
suitable for concurrently processing nr_events operations. <...>

   ERRORS
          EAGAIN The specified nr_events exceeds the user's limit of available 
events, as defined in /proc/sys/fs/aio-max-nr.

  On luckyv1:

   root@luckyv1:~/mauricfo/bz146849/sep27# cat /proc/sys/fs/aio-max-nr
   65536

   root@luckyv1:~/mauricfo/bz146849/sep27# cat /proc/sys/fs/aio-nr
   130560

  According to linux's Documentation/sysctl/fs.txt [1]

   aio-nr & aio-max-nr:

   aio-nr is the running total of the number of events specified on the
   io_setup system call for all currently active aio contexts.  If aio-nr
   reaches aio-max-nr then io_setup will fail with EAGAIN.  Note that
   raising aio-max-nr does not result in the pre-allocation or re-sizing
   of any kernel data structures.

  Interestingly, aio-nr is greater than aio-max-nr. Hm.

  Increased aio-max-nr to 262144, and could get some more maps created.

  == Comment: #8 - Mauricio Faria De Oliveira <mauri...@br.ibm.com> - 
2016-09-27 18:56:08 ==
  This attached test-case demonstrates that for each io_setup() request of 1 
nr_event, actually 1280 seem to be allocated.

  root@luckyv1:~/mauricfo/bz146849/sep27# gcc -o io_setup io_setup.c
  -laio

  root@luckyv1:~/mauricfo/bz146849/sep27# cat /proc/sys/fs/aio-nr
  0

  root@luckyv1:~/mauricfo/bz146849/sep27# ./io_setup &
  [1] 12352
  io_setup rc = 0
  sleeping 10 seconds...

  root@luckyv1:~/mauricfo/bz146849/sep27# cat /proc/sys/fs/aio-nr
  1280

  <...>
  io_destroy rc = 0

  [1]+  Done                    ./io_setup

  root@luckyv1:~/mauricfo/bz146849/sep27# cat /proc/sys/fs/aio-nr
  0

  == Comment: #45 - Mauricio Faria De Oliveira <mauri...@br.ibm.com> - 
2017-09-19 18:32:10 ==
  Verification of this commit with the linux-hwe-edge kernel in -proposed,
  using the attached test-case "io_setup_v2.c"

      commit 2a8a98673c13cb2a61a6476153acf8344adfa992
      Author: Mauricio Faria de Oliveira <mauri...@linux.vnet.ibm.com>
      Date:   Wed Jul 5 10:53:16 2017 -0300

          fs: aio: fix the increment of aio-nr and counting against aio-
  max-nr

  Test-case (attached)

      $ sudo apt-get install gcc libaio-dev
      $ gcc -o io_setup_v2 io_setup_v2.c -laio

  Original kernel:

      - Only 409 io_contexts could be allocated,
      but that took 130880 [ div by 2, per bug] = 65440 slots out of 65535

      $ uname -rv
      4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:18 UTC 2017

      $ ./io_setup_v2 1 65536
      nr_events: 1, nr_requests: 65536
      rc = -11, i = 409
      ^Z
      [1]+  Stopped                 ./io_setup_v2 1 65536

      $ cat /proc/sys/fs/aio-nr
      130880

      $ cat /proc/sys/fs/aio-max-nr
      65536

      $ kill %%

  Patched kernel:

      - Now 65515 io_contexts could be allocated out of 65535 (much better)
        (and reporting correctly, without div by 2.)

      $ uname -rv
      4.11.0-140-generic #20~16.04.1+bz146489 SMP Tue Sep 19 17:46:15 CDT 2017

      $ ./io_setup_v2 1 65536
      nr_events: 1, nr_requests: 65536
      rc = -12, i = 65515
      ^Z
      [1]+  Stopped                 ./io_setup_v2 1 65536

      $ cat /proc/sys/fs/aio-nr
      65515

      $ kill %%

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1718397/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~group.of.nepali.translators
Post to     : group.of.nepali.translators@lists.launchpad.net
Unsubscribe : https://launchpad.net/~group.of.nepali.translators
More help   : https://help.launchpad.net/ListHelp

Reply via email to