All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Lobakin <aleksander.lobakin@intel.com>
To: Jian Wen <wenjianhn@gmail.com>
Cc: <edumazet@google.com>, <davem@davemloft.net>,
	Jian Wen <wenjian1@xiaomi.com>, <netdev@vger.kernel.org>
Subject: Re: [PATCH net] devlink: use kvzalloc() to allocate devlink instance resources
Date: Fri, 22 Mar 2024 12:44:59 +0100	[thread overview]
Message-ID: <d415fc40-efbf-4f83-9c4a-4ec7ce333bb1@intel.com> (raw)
In-Reply-To: <20240321123611.380158-1-wenjian1@xiaomi.com>

From: Jian Wen <wenjianhn@gmail.com>
Date: Thu, 21 Mar 2024 20:36:11 +0800

> During live migration of a virtual machine, the SR-IOV VF need to be
> re-registered. It may fail when the memory is badly fragmented.
> 
> The related log is as follows.
> 
> Mar  1 18:54:12  kernel: hv_netvsc 6045bdaa-c0d1-6045-bdaa-c0d16045bdaa eth0: VF slot 1 added
> ...
> Mar  1 18:54:13  kernel: kworker/0:0: page allocation failure: order:7, mode:0x40dc0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0
> Mar  1 18:54:13  kernel: CPU: 0 PID: 24006 Comm: kworker/0:0 Tainted: G            E     5.4...x86_64 #1
> Mar  1 18:54:13  kernel: Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090008  12/07/2018
> Mar  1 18:54:13  kernel: Workqueue: events work_for_cpu_fn
> Mar  1 18:54:13  kernel: Call Trace:
> Mar  1 18:54:13  kernel: dump_stack+0x8b/0xc8
> Mar  1 18:54:13  kernel: warn_alloc+0xff/0x170
> Mar  1 18:54:13  kernel: __alloc_pages_slowpath+0x92c/0xb2b
> Mar  1 18:54:13  kernel: ? get_page_from_freelist+0x1d4/0x1140
> Mar  1 18:54:13  kernel: __alloc_pages_nodemask+0x2f9/0x320
> Mar  1 18:54:13  kernel: alloc_pages_current+0x6a/0xb0
> Mar  1 18:54:13  kernel: kmalloc_order+0x1e/0x70
> Mar  1 18:54:13  kernel: kmalloc_order_trace+0x26/0xb0
> Mar  1 18:54:13  kernel: ? __switch_to_asm+0x34/0x70
> Mar  1 18:54:13  kernel: __kmalloc+0x276/0x280
> Mar  1 18:54:13  kernel: ? _raw_spin_unlock_irqrestore+0x1e/0x40
> Mar  1 18:54:13  kernel: devlink_alloc+0x29/0x110
> Mar  1 18:54:13  kernel: mlx5_devlink_alloc+0x1a/0x20 [mlx5_core]
> Mar  1 18:54:13  kernel: init_one+0x1d/0x650 [mlx5_core]
> Mar  1 18:54:13  kernel: local_pci_probe+0x46/0x90
> Mar  1 18:54:13  kernel: work_for_cpu_fn+0x1a/0x30
> Mar  1 18:54:13  kernel: process_one_work+0x16d/0x390
> Mar  1 18:54:13  kernel: worker_thread+0x1d3/0x3f0
> Mar  1 18:54:13  kernel: kthread+0x105/0x140
> Mar  1 18:54:13  kernel: ? max_active_store+0x80/0x80
> Mar  1 18:54:13  kernel: ? kthread_bind+0x20/0x20
> Mar  1 18:54:13  kernel: ret_from_fork+0x3a/0x50
> 
> Signed-off-by: Jian Wen <wenjian1@xiaomi.com>
> ---
>  net/devlink/core.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/net/devlink/core.c b/net/devlink/core.c
> index 7f0b093208d7..ffbac42918d7 100644
> --- a/net/devlink/core.c
> +++ b/net/devlink/core.c
> @@ -314,7 +314,7 @@ static void devlink_release(struct work_struct *work)
>  	mutex_destroy(&devlink->lock);
>  	lockdep_unregister_key(&devlink->lock_key);
>  	put_device(devlink->dev);
> -	kfree(devlink);
> +	kvfree(devlink);
>  }
>  
>  void devlink_put(struct devlink *devlink)
> @@ -420,7 +420,7 @@ struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,
>  	if (!devlink_reload_actions_valid(ops))
>  		return NULL;
>  
> -	devlink = kzalloc(sizeof(*devlink) + priv_size, GFP_KERNEL);
> +	devlink = kvzalloc(sizeof(*devlink) + priv_size, GFP_KERNEL);

struct_size(devlink, priv, priv_size)?

>  	if (!devlink)
>  		return NULL;
>  
> @@ -455,7 +455,7 @@ struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,
>  	return devlink;
>  
>  err_xa_alloc:
> -	kfree(devlink);
> +	kvfree(devlink);
>  	return NULL;
>  }
>  EXPORT_SYMBOL_GPL(devlink_alloc_ns);

Thanks,
Olek

      parent reply	other threads:[~2024-03-22 11:45 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21 12:36 [PATCH net] devlink: use kvzalloc() to allocate devlink instance resources Jian Wen
2024-03-21 12:59 ` Jiri Pirko
2024-03-22  1:59   ` Jian Wen
2024-03-22 11:44 ` Alexander Lobakin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d415fc40-efbf-4f83-9c4a-4ec7ce333bb1@intel.com \
    --to=aleksander.lobakin@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=wenjian1@xiaomi.com \
    --cc=wenjianhn@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.