kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 0/1] KVM: s390: Fix for 5.8
@ 2020-06-23  9:23 Janosch Frank
  2020-06-23  9:23 ` [GIT PULL 1/1] KVM: s390: reduce number of IO pins to 1 Janosch Frank
  2020-06-24  6:45 ` [GIT PULL 0/1] KVM: s390: Fix for 5.8 Paolo Bonzini
  0 siblings, 2 replies; 3+ messages in thread
From: Janosch Frank @ 2020-06-23  9:23 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

Hi Paolo,

please pull this fix reducing the number of (currently unused) iopins
for kvm/master.


The following changes since commit b3a9e3b9622ae10064826dccb4f7a52bd88c7407:

  Linux 5.8-rc1 (2020-06-14 12:45:04 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git tags/kvm-s390-master-5.8-3

for you to fetch changes up to 774911290c589e98e3638e73b24b0a4d4530e97c:

  KVM: s390: reduce number of IO pins to 1 (2020-06-18 09:48:19 +0200)

----------------------------------------------------------------
The current number of KVM_IRQCHIP_NUM_PINS results in an order 3
allocation (32kb) for each guest start/restart which can result in OOM
killer activity when kernel memory is fragmented enough.

This fix reduces the number of iopins as s390 doesn't use them, hence
reducing the memory footprint.

----------------------------------------------------------------

Christian Borntraeger (1):
  KVM: s390: reduce number of IO pins to 1

 arch/s390/include/asm/kvm_host.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

-- 
2.25.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [GIT PULL 1/1] KVM: s390: reduce number of IO pins to 1
  2020-06-23  9:23 [GIT PULL 0/1] KVM: s390: Fix for 5.8 Janosch Frank
@ 2020-06-23  9:23 ` Janosch Frank
  2020-06-24  6:45 ` [GIT PULL 0/1] KVM: s390: Fix for 5.8 Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Janosch Frank @ 2020-06-23  9:23 UTC (permalink / raw)
  To: pbonzini; +Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

From: Christian Borntraeger <borntraeger@de.ibm.com>

The current number of KVM_IRQCHIP_NUM_PINS results in an order 3
allocation (32kb) for each guest start/restart. This can result in OOM
killer activity even with free swap when the memory is fragmented
enough:

kernel: qemu-system-s39 invoked oom-killer: gfp_mask=0x440dc0(GFP_KERNEL_ACCOUNT|__GFP_COMP|__GFP_ZERO), order=3, oom_score_adj=0
kernel: CPU: 1 PID: 357274 Comm: qemu-system-s39 Kdump: loaded Not tainted 5.4.0-29-generic #33-Ubuntu
kernel: Hardware name: IBM 8562 T02 Z06 (LPAR)
kernel: Call Trace:
kernel: ([<00000001f848fe2a>] show_stack+0x7a/0xc0)
kernel:  [<00000001f8d3437a>] dump_stack+0x8a/0xc0
kernel:  [<00000001f8687032>] dump_header+0x62/0x258
kernel:  [<00000001f8686122>] oom_kill_process+0x172/0x180
kernel:  [<00000001f8686abe>] out_of_memory+0xee/0x580
kernel:  [<00000001f86e66b8>] __alloc_pages_slowpath+0xd18/0xe90
kernel:  [<00000001f86e6ad4>] __alloc_pages_nodemask+0x2a4/0x320
kernel:  [<00000001f86b1ab4>] kmalloc_order+0x34/0xb0
kernel:  [<00000001f86b1b62>] kmalloc_order_trace+0x32/0xe0
kernel:  [<00000001f84bb806>] kvm_set_irq_routing+0xa6/0x2e0
kernel:  [<00000001f84c99a4>] kvm_arch_vm_ioctl+0x544/0x9e0
kernel:  [<00000001f84b8936>] kvm_vm_ioctl+0x396/0x760
kernel:  [<00000001f875df66>] do_vfs_ioctl+0x376/0x690
kernel:  [<00000001f875e304>] ksys_ioctl+0x84/0xb0
kernel:  [<00000001f875e39a>] __s390x_sys_ioctl+0x2a/0x40
kernel:  [<00000001f8d55424>] system_call+0xd8/0x2c8

As far as I can tell s390x does not use the iopins as we bail our for
anything other than KVM_IRQ_ROUTING_S390_ADAPTER and the chip/pin is
only used for KVM_IRQ_ROUTING_IRQCHIP. So let us use a small number to
reduce the memory footprint.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/20200617083620.5409-1-borntraeger@de.ibm.com
---
 arch/s390/include/asm/kvm_host.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index cee3cb6455a2..6ea0820e7c7f 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -31,12 +31,12 @@
 #define KVM_USER_MEM_SLOTS 32
 
 /*
- * These seem to be used for allocating ->chip in the routing table,
- * which we don't use. 4096 is an out-of-thin-air value. If we need
- * to look at ->chip later on, we'll need to revisit this.
+ * These seem to be used for allocating ->chip in the routing table, which we
+ * don't use. 1 is as small as we can get to reduce the needed memory. If we
+ * need to look at ->chip later on, we'll need to revisit this.
  */
 #define KVM_NR_IRQCHIPS 1
-#define KVM_IRQCHIP_NUM_PINS 4096
+#define KVM_IRQCHIP_NUM_PINS 1
 #define KVM_HALT_POLL_NS_DEFAULT 50000
 
 /* s390-specific vcpu->requests bit members */
-- 
2.25.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [GIT PULL 0/1] KVM: s390: Fix for 5.8
  2020-06-23  9:23 [GIT PULL 0/1] KVM: s390: Fix for 5.8 Janosch Frank
  2020-06-23  9:23 ` [GIT PULL 1/1] KVM: s390: reduce number of IO pins to 1 Janosch Frank
@ 2020-06-24  6:45 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2020-06-24  6:45 UTC (permalink / raw)
  To: Janosch Frank
  Cc: kvm, frankja, david, borntraeger, cohuck, linux-s390, imbrenda

On 23/06/20 11:23, Janosch Frank wrote:
> Hi Paolo,
> 
> please pull this fix reducing the number of (currently unused) iopins
> for kvm/master.
> 
> 
> The following changes since commit b3a9e3b9622ae10064826dccb4f7a52bd88c7407:
> 
>   Linux 5.8-rc1 (2020-06-14 12:45:04 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git tags/kvm-s390-master-5.8-3
> 
> for you to fetch changes up to 774911290c589e98e3638e73b24b0a4d4530e97c:
> 
>   KVM: s390: reduce number of IO pins to 1 (2020-06-18 09:48:19 +0200)
> 
> ----------------------------------------------------------------
> The current number of KVM_IRQCHIP_NUM_PINS results in an order 3
> allocation (32kb) for each guest start/restart which can result in OOM
> killer activity when kernel memory is fragmented enough.
> 
> This fix reduces the number of iopins as s390 doesn't use them, hence
> reducing the memory footprint.
> 
> ----------------------------------------------------------------
> 
> Christian Borntraeger (1):
>   KVM: s390: reduce number of IO pins to 1
> 
>  arch/s390/include/asm/kvm_host.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 

Pulled, thanks.  Unfortunately this missed my 5.8-rc3 pull request by a
day, but at least it's safe and sound in kvm/master.

Paolo


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-24  6:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-23  9:23 [GIT PULL 0/1] KVM: s390: Fix for 5.8 Janosch Frank
2020-06-23  9:23 ` [GIT PULL 1/1] KVM: s390: reduce number of IO pins to 1 Janosch Frank
2020-06-24  6:45 ` [GIT PULL 0/1] KVM: s390: Fix for 5.8 Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).