Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp654385pxb; Tue, 2 Feb 2021 14:30:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKE6VVgOeLPYnXOqSFm4mffZ1QugFnYmx+OKLuhDaa8OAwkYoMqVbnCF4TmTprQE/jNAc/ X-Received: by 2002:a17:906:39d0:: with SMTP id i16mr205307eje.18.1612305009409; Tue, 02 Feb 2021 14:30:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612305009; cv=none; d=google.com; s=arc-20160816; b=UgL5FBVC+0isWWKQfs+nVYh1rbo2pAfxzq1UvGPA8iwE8a7RpyJ1bEKo3ERQ+zKdC5 C1F6PIWwkl4HDDu6Zmf428HNlKxecjGDkHVo2xHFFSuytxQNYK1cAnHS91cnDk9Un6gz vIv6t+XpA53EIxnTZk9DjDrn+P+V5xuxxqFfiracINBsbI25e9uYL7K1Ch6CJzXZp8YG h4STVPcN2vt7Ks1baDdl6CCqYbD/cjRvEklr8LlCfOheG/oYQ+Nfh3mDNtTiAuAv84pE 9l4z4t25VbgVxNImm2SRKjvllJNo8LozulTXWaCiDEndXPQcvPtFTZLz47Z3nnhYdLhC R3NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=ywprqr49p03+cfZRBeKphtdcDQnuW/e8IgxGcaB3r4c=; b=z/JKKaXOW2q2Y9dw7DvbP9i+1Kg0Fza9j5IMiwmYPAa70el4pOCbeU7idvDmtebjmm U53FMPLRLSFd+FZ48PMA5ZO4PFExPBLRRlOIBnugv9slvvWz/iXgHM1Pz4Xs8iUjuDfu 9Sw7RIfTebzpQBn8smU6sX1i3bq14Y329pjpz4mzQzMV1xuy+dUg4T+PrRBBLK8VPMSJ uoq028/ZXdoMDlsJ9XNhzdwhKa0nHglcTMMZE5x5fzNIEA8PXmjYaZs7h9LLgPSmE+wu 1HSuGVmk8xRGTzD2C559KBr8JhlYPyBaXroTDdMJtNTEZuhiycUvLMtyGF4Bo+cBg9a2 rkcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aEtV76fg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ca23si63166edb.448.2021.02.02.14.29.39; Tue, 02 Feb 2021 14:30:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=aEtV76fg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234777AbhBBO5R (ORCPT + 99 others); Tue, 2 Feb 2021 09:57:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234851AbhBBO5K (ORCPT ); Tue, 2 Feb 2021 09:57:10 -0500 Received: from mail-io1-xd33.google.com (mail-io1-xd33.google.com [IPv6:2607:f8b0:4864:20::d33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A575C0613D6; Tue, 2 Feb 2021 06:56:30 -0800 (PST) Received: by mail-io1-xd33.google.com with SMTP id u20so7458881iot.9; Tue, 02 Feb 2021 06:56:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ywprqr49p03+cfZRBeKphtdcDQnuW/e8IgxGcaB3r4c=; b=aEtV76fg9VVzGVjBp+L1dWv21UvqsLkrrN5OBin8JGqK5fZDNxkbjBMIparpAb+YAe mMllGtQWZ0d38a2tLIG0BWqY0V21UYnSeSoBfNHdlliTjH8YSXhV46UaY+SFHSOMA5BB iC/rQCvlRADxb7oWsUeA/5fH4j3Br28Apcai3NOOzYVEHkI2KLdC/BKl8iMqPLHDqKP5 F8yn1LI3YXvCMB6mcSUQ/JffxA2QmDHkF3Bfgr56U3XVEv3F+RYsm++yi2hfR1UMMfHg yxy851+gExujpCZ4SIdSch4LPEsCNXxiydoqS03Ok5fTkvhTf5wg7jR1BhiSJEUQXE/n c6Mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ywprqr49p03+cfZRBeKphtdcDQnuW/e8IgxGcaB3r4c=; b=KS3Zme5tqdKpVUYEOchm84dGpXpjXWsGQNMGv70RyYluZTXHFUBhXpkp217UGcvE5H ZM0OCL/cZ8C1RIa2yWnuNEsePtQtbaTy+GDZuKRvgxmIaLIZN/eXG6A+eQSCOsjHbjB6 p/VC3T58Fo05B65nNkUlK15tLMvSRF3GBK+qK1lrlpCK8i6q3NzU0xPmYzI34/Q02caT IyZmwRzwIK6gtiWYrhpWfvCeg/uKziJKrLF1uoyIQ0+bifvreYW0RRcoSEUwl0bpwtQ/ Qhac5Q2m/NC8VSWy5pSdiQKGA1gRdAIlDXzB31rLmSpgdGM4scFPmMnp/AdsOnjp22wx Z0AQ== X-Gm-Message-State: AOAM532CS/MWY4gAHr7LjAj20cZc5s6dxGmy4eteDFOwSY1hKvok2+vw LSV/pf8JUuEOgUSpdiMwxr9ZWVsrXYg1r/2uIpxZXC59O2Q= X-Received: by 2002:a5e:8903:: with SMTP id k3mr17233798ioj.36.1612277789491; Tue, 02 Feb 2021 06:56:29 -0800 (PST) MIME-Version: 1.0 References: <20210123080853.4214-1-dongli.zhang@oracle.com> In-Reply-To: <20210123080853.4214-1-dongli.zhang@oracle.com> From: Pankaj Gupta Date: Tue, 2 Feb 2021 15:56:18 +0100 Message-ID: Subject: Re: [PATCH v2 1/1] vhost scsi: alloc vhost_scsi with kvzalloc() to avoid delay To: Dongli Zhang Cc: virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, netdev@vger.kernel.org, LKML , "Michael S . Tsirkin" , Jason Wang , Paolo Bonzini , Stefan Hajnoczi , joe.jin@oracle.com, aruna.ramakrishna@oracle.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > The size of 'struct vhost_scsi' is order-10 (~2.3MB). It may take long time > delay by kzalloc() to compact memory pages by retrying multiple times when > there is a lack of high-order pages. As a result, there is latency to > create a VM (with vhost-scsi) or to hotadd vhost-scsi-based storage. > > The prior commit 595cb754983d ("vhost/scsi: use vmalloc for order-10 > allocation") prefers to fallback only when really needed, while this patch > allocates with kvzalloc() with __GFP_NORETRY implicitly set to avoid > retrying memory pages compact for multiple times. > > The __GFP_NORETRY is implicitly set if the size to allocate is more than > PAGE_SZIE and when __GFP_RETRY_MAYFAIL is not explicitly set. > > Cc: Aruna Ramakrishna > Cc: Joe Jin > Signed-off-by: Dongli Zhang > --- > Changed since v1: > - To combine kzalloc() and vzalloc() as kvzalloc() > (suggested by Jason Wang) > > drivers/vhost/scsi.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index 4ce9f00ae10e..5de21ad4bd05 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -1814,12 +1814,9 @@ static int vhost_scsi_open(struct inode *inode, struct file *f) > struct vhost_virtqueue **vqs; > int r = -ENOMEM, i; > > - vs = kzalloc(sizeof(*vs), GFP_KERNEL | __GFP_NOWARN | __GFP_RETRY_MAYFAIL); > - if (!vs) { > - vs = vzalloc(sizeof(*vs)); > - if (!vs) > - goto err_vs; > - } > + vs = kvzalloc(sizeof(*vs), GFP_KERNEL); > + if (!vs) > + goto err_vs; > > vqs = kmalloc_array(VHOST_SCSI_MAX_VQ, sizeof(*vqs), GFP_KERNEL); > if (!vqs) Acked-by: Pankaj Gupta