avg 9a178e9c77 6914 kernel virtual memory fragmentation leads to hang
illumos/illumos-gate@af868f46a5
af868f46a5

https://www.illumos.org/issues/6914
  This change allows the kernel to use more virtual address space. This will
  allow us to devote 1.5x physmem for the zio arena, and an additional 1.5x
  physmem for the kernel heap.
  We saw a hang when unable to find any 128K contiguous memory segments. Looking
  at the core file we see many threads in stacks similar to this:
  > ffffff68c9c87c00::findstack -v
  stack pointer for thread ffffff68c9c87c00: ffffff02cd63d8b0
  [ ffffff02cd63d8b0 _resume_from_idle+0xf4() ]
    ffffff02cd63d8e0 swtch+0x141()
    ffffff02cd63d920 cv_wait+0x70(ffffff6009b1b01e, ffffff6009b1b020)
    ffffff02cd63da50 vmem_xalloc+0x640(ffffff6009b1b000, 20000, 1000, 0, 0, 0, 0, ffffff0200000004)
    ffffff02cd63dac0 vmem_alloc+0x135(ffffff6009b1b000, 20000, 4)
    ffffff02cd63db60 segkmem_xalloc+0x171(ffffff6009b1b000, 0, 20000, 4, 0, fffffffffb885fe0, fffffffffbcefa10)
    ffffff02cd63dbc0 segkmem_alloc_vn+0x4a(ffffff6009b1b000, 20000, 4, fffffffffbcefa10)
    ffffff02cd63dbf0 segkmem_zio_alloc+0x20(ffffff6009b1b000, 20000, 4)
    ffffff02cd63dd20 vmem_xalloc+0x5b1(ffffff6009b1c000, 20000, 1000, 0, 0, 0, 0, 4)
    ffffff02cd63dd90 vmem_alloc+0x135(ffffff6009b1c000, 20000, 4)
    ffffff02cd63de20 kmem_slab_create+0x8d(ffffff605fd37008, 4)
    ffffff02cd63de80 kmem_slab_alloc+0x11e(ffffff605fd37008, 4)
    ffffff02cd63dee0 kmem_cache_alloc+0x233(ffffff605fd37008, 4)
    ffffff02cd63df10 zio_data_buf_alloc+0x5b(20000)
    ffffff02cd63df70 arc_get_data_buf+0x92(ffffff6265a70588, 20000, ffffff901fd796f8)
    ffffff02cd63dfb0 arc_buf_alloc_impl+0x9c(ffffff6265a70588, ffffff6d233ab0b8)

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: John Kennedy <john.kennedy@delphix.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Approved by: Garrett D'Amore <garrett@damore.org>
Author: Matthew Ahrens <mahrens@delphix.com>
2017-04-14 18:41:37 +00:00
..