[PATCH] powerpc/vas: Limit open window failure messages in log bufffer
Michael Ellerman
mpe at ellerman.id.au
Wed Oct 18 21:14:36 AEDT 2023
Haren Myneni <haren at linux.ibm.com> writes:
> The VAS open window call prints error message and returns -EBUSY
> after the migration suspend event initiated and until the resume
> event completed on the destination system. It can cause the log
> buffer filled with these error messages if the user space issues
> continuous open window calls. Similar case even for DLPAR CPU
> remove event when no credits are available until the credits are
> freed or with the other DLPAR CPU add event.
This should probably have a Fixes: tag so it gets backported.
> So changes in the patch to use pr_err_ratelimited() instead of
> pr_err() to display open window failure and not-available credits
> error messages.
>
> Signed-off-by: Haren Myneni <haren at linux.ibm.com>
> ---
> arch/powerpc/platforms/book3s/vas-api.c | 4 ++--
> arch/powerpc/platforms/pseries/vas.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/book3s/vas-api.c b/arch/powerpc/platforms/book3s/vas-api.c
> index 77ea9335fd04..203cfc2fb8ff 100644
> --- a/arch/powerpc/platforms/book3s/vas-api.c
> +++ b/arch/powerpc/platforms/book3s/vas-api.c
> @@ -311,8 +311,8 @@ static int coproc_ioc_tx_win_open(struct file *fp, unsigned long arg)
> txwin = cp_inst->coproc->vops->open_win(uattr.vas_id, uattr.flags,
> cp_inst->coproc->cop_type);
> if (IS_ERR(txwin)) {
> - pr_err("%s() VAS window open failed, %ld\n", __func__,
> - PTR_ERR(txwin));
> + pr_err_ratelimited("%s() VAS window open failed, %ld\n",
> + __func__, PTR_ERR(txwin));
Rather than using __func__ which is a bit over specific for a user
visible error, I'd prefer something like "vas: window open failed rc = %ld".
Probably vas-api.c should use pr_fmt so that all the messages have a
consistent prefix.
cheers
> return PTR_ERR(txwin);
> }
>
> diff --git a/arch/powerpc/platforms/pseries/vas.c b/arch/powerpc/platforms/pseries/vas.c
> index b86f0db08e98..7259e6676503 100644
> --- a/arch/powerpc/platforms/pseries/vas.c
> +++ b/arch/powerpc/platforms/pseries/vas.c
> @@ -341,7 +341,7 @@ static struct vas_window *vas_allocate_window(int vas_id, u64 flags,
>
> if (atomic_inc_return(&cop_feat_caps->nr_used_credits) >
> atomic_read(&cop_feat_caps->nr_total_credits)) {
> - pr_err("Credits are not available to allocate window\n");
> + pr_err_ratelimited("Credits are not available to allocate window\n");
> rc = -EINVAL;
> goto out;
> }
> @@ -439,7 +439,7 @@ static struct vas_window *vas_allocate_window(int vas_id, u64 flags,
>
> put_vas_user_win_ref(&txwin->vas_win.task_ref);
> rc = -EBUSY;
> - pr_err("No credit is available to allocate window\n");
> + pr_err_ratelimited("No credit is available to allocate window\n");
>
> out_free:
> /*
> --
> 2.26.3
More information about the Linuxppc-dev
mailing list