From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Nirmoy Das <nirmoy.das@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>,
<dri-devel@lists.freedesktop.org>,
Andi Shyti <andi.shyti@linux.intel.com>
Subject: Re: [PATCH] drm/i915/gem: Suppress oom warning in favour of ENOMEM to userspace
Date: Wed, 26 Jun 2024 11:50:26 -0400 [thread overview]
Message-ID: <Znw4wjbyUZ20y0mf@intel.com> (raw)
In-Reply-To: <5871ef5e-50f2-4623-b3c2-8275d65aab17@intel.com>
On Wed, Jun 26, 2024 at 05:36:43PM +0200, Nirmoy Das wrote:
> Hi Rodrigo,
>
> On 6/26/2024 5:24 PM, Rodrigo Vivi wrote:
>
> On Wed, Jun 26, 2024 at 04:33:18PM +0200, Nirmoy Das wrote:
>
> >We report object allocation failures to userspace with ENOMEM
> >so add __GFP_NOWARN to remove superfluous oom warnings.
>
> >Closes: [1]https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4936
> >Cc: Andi Shyti [2]<andi.shyti@linux.intel.com>
> >Signed-off-by: Nirmoy Das [3]<nirmoy.das@intel.com>
> >---
> > drivers/gpu/drm/i915/i915_scatterlist.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
>
> >diff --git a/drivers/gpu/drm/i915/i915_scatterlist.c b/drivers/gpu/drm/i915/i915_scatterlist.c
> >index e93d2538f298..4d830740946d 100644
> >--- a/drivers/gpu/drm/i915/i915_scatterlist.c
> >+++ b/drivers/gpu/drm/i915/i915_scatterlist.c
> >@@ -90,7 +90,7 @@ struct i915_refct_sgt *i915_rsgt_from_mm_node(const struct drm_mm_node *node,
> >
> > GEM_BUG_ON(!max_segment);
> >
> >- rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL);
> >+ rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL | __GFP_NOWARN);
> > if (!rsgt)
> > return ERR_PTR(-ENOMEM);
>
> is it really safe?
> I don't believe we can guarantee a good fallback plan here if allocation fails.
> __i915_refct_sgt_init
> might end up in a null dereference, no?!
>
> Kernel is now returning ENOMEM and also throwing a oom warning stack.
> With __GFP_NOWARN
>
> the oom warning stack won't be there in the dmesg but userspace will still
> get ENOMEM as expected.
doh! I had missunderstand the flag. Thanks for the confirmation.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
BTW, what email clients are you using recently?
it is hard to parse your responses lately. Please check if it is really
sending/replying as text-only mode.
>
> Let me know if got your question correctly.
>
> Regards,
>
> Nirmoy
>
>
>
> >
> >@@ -104,7 +104,7 @@ struct i915_refct_sgt *i915_rsgt_from_mm_node(const struct drm_mm_node *node,
> > }
> >
> > if (sg_alloc_table(st, DIV_ROUND_UP_ULL(node->size, segment_pages),
> >- GFP_KERNEL)) {
> >+ GFP_KERNEL | __GFP_NOWARN)) {
> > i915_refct_sgt_put(rsgt);
> > return ERR_PTR(-ENOMEM);
> > }
> >@@ -178,7 +178,7 @@ struct i915_refct_sgt *i915_rsgt_from_buddy_resource(struct ttm_resource *res,
> > GEM_BUG_ON(list_empty(blocks));
> > GEM_BUG_ON(!max_segment);
> >
> >- rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL);
> >+ rsgt = kmalloc(sizeof(*rsgt), GFP_KERNEL | __GFP_NOWARN);
> > if (!rsgt)
> > return ERR_PTR(-ENOMEM);
> >
> >@@ -190,7 +190,7 @@ struct i915_refct_sgt *i915_rsgt_from_buddy_resource(struct ttm_resource *res,
> > return ERR_PTR(-E2BIG);
> > }
> >
> >- if (sg_alloc_table(st, PFN_UP(res->size), GFP_KERNEL)) {
> >+ if (sg_alloc_table(st, PFN_UP(res->size), GFP_KERNEL | __GFP_NOWARN)) {
> > i915_refct_sgt_put(rsgt);
> > return ERR_PTR(-ENOMEM);
> > }
> >--
> >2.42.0
>
> References
>
> Visible links
> 1. https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4936
> 2. mailto:andi.shyti@linux.intel.com
> 3. mailto:nirmoy.das@intel.com
next prev parent reply other threads:[~2024-06-26 15:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 14:33 [PATCH] drm/i915/gem: Suppress oom warning in favour of ENOMEM to userspace Nirmoy Das
2024-06-26 15:24 ` Rodrigo Vivi
2024-06-26 15:36 ` Nirmoy Das
2024-06-26 15:50 ` Rodrigo Vivi [this message]
2024-06-26 21:07 ` Nirmoy Das
2024-06-26 17:02 ` ✓ Fi.CI.BAT: success for " Patchwork
2024-06-27 2:09 ` ✓ Fi.CI.IGT: " Patchwork
2024-06-27 10:04 ` [PATCH] " Andi Shyti
2024-06-27 16:56 ` Nirmoy Das
2024-06-27 22:36 ` Andi Shyti
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=Znw4wjbyUZ20y0mf@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=andi.shyti@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=nirmoy.das@intel.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.